From aa093811d9860a9f6e9849589e6c8c07e1b7372f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Mon, 6 Nov 2023 12:26:33 +0100 Subject: [PATCH 01/16] Creating tests to arrive at paths --- .../core/tests/code_gen_for_various_asts.rs | 210 ++++++++++++++++++ .../core/tests/evm_compiler_full_tests.rs | 67 +++--- .../scilla_test_cases/contract103335.rs | 15 ++ .../scilla_test_cases/contract106816.rs | 23 ++ .../scilla_test_cases/contract108180.rs | 19 ++ .../scilla_test_cases/contract14699.rs | 41 ++++ .../scilla_test_cases/contract25028.rs | 18 ++ .../scilla_test_cases/contract46150.rs | 16 ++ .../scilla_test_cases/contract76367.rs | 12 + .../scilla_test_cases/contract93941.rs | 18 ++ 10 files changed, 406 insertions(+), 33 deletions(-) create mode 100644 products/bluebell/core/tests/code_gen_for_various_asts.rs create mode 100644 products/bluebell/scilla_test_cases/contract103335.rs create mode 100644 products/bluebell/scilla_test_cases/contract106816.rs create mode 100644 products/bluebell/scilla_test_cases/contract108180.rs create mode 100644 products/bluebell/scilla_test_cases/contract14699.rs create mode 100644 products/bluebell/scilla_test_cases/contract25028.rs create mode 100644 products/bluebell/scilla_test_cases/contract46150.rs create mode 100644 products/bluebell/scilla_test_cases/contract76367.rs create mode 100644 products/bluebell/scilla_test_cases/contract93941.rs diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs new file mode 100644 index 000000000..fa7483a22 --- /dev/null +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -0,0 +1,210 @@ +#[cfg(test)] +mod tests { + use bluebell::support::{ + evm::EvmCompiler, + modules::{ScillaDebugBuiltins, ScillaDefaultBuiltins, ScillaDefaultTypes}, + }; + use evm_assembly::{executor::ExecutorResult, types::EvmTypeValue}; + use serde_json; + + fn result_to_string(ret: ExecutorResult) -> String { + let mut result = "".to_string(); + let mut sorted_changeset: Vec<(String, Option)> = + ret.changeset.into_iter().collect(); + sorted_changeset.sort_by_key(|(key, _)| key.clone()); + for (k, v) in sorted_changeset { + match v { + Some(v) => { + result.push_str("+"); + result.push_str(&k); + result.push_str("="); + result.push_str(&v); + } + None => { + result.push_str("-"); + result.push_str(&k); + } + } + result.push_str("\n"); + } + + result.trim().to_string() + } + + fn compile_scilla_to_evm(script: &str) -> Result<(), String> { + let mut compiler = EvmCompiler::new(); + let default_types = ScillaDefaultTypes {}; + let default_builtins = ScillaDefaultBuiltins {}; + let debug = ScillaDebugBuiltins {}; + + compiler.attach(&default_types); + compiler.attach(&default_builtins); + compiler.attach(&debug); + let executable = compiler.executable_from_script(script.to_string())?; + + Ok(()) + } + + macro_rules! test_compilation_and_evm_code_generation { + ( $source:expr) => { + match compile_scilla_to_evm($source) { + Err(err) => panic!("{}", err), + _ => (), + } + }; + } + // This test is intended to verify the capability of the Scilla to Rust compiler + // to handle import statements, library declarations and contract declaration with + // functions. It minimizes the Scilla code used, focusing mainly on the components that could + // trigger the `emit_import_declarations` error, including "import" statements. + #[test] + fn test_import_handling() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + import ListUtils + library TestLib + contract TestContract() + "# + ); + assert!(false); + } + + /* + #[test] + // Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. + fn test_event_type_not_implemented() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library DummyRefinery + + contract DummyRefinery() + + transition Register(claimer : ByStr20) + end + + transition Refine(to: ByStr20, amount: Uint128) + end + "#); + } + */ + /* + #[test] + // This test runs the Scilla compilation and evm code generation with an `Empty` transition function + // It's useful for testing how the compiler handles empty blocks + fn test_empty_function_body() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Dummy + + contract Dummy() + + transition Dummy() + end + "#); + } + */ + /* + #[test] + // This test case is used to generate an unimplemented error for the contract_type_arguments of + // the ConstructorCall enum in the NodeFullExpression. A contract of this nature forces the program + // to enter the unimplemented!() block. + fn test_unimplemented_constructor_call() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library ProductLibrary + + contract ProductContract () + field products: Map String (ProductType) = Emp String (ProductType) + "#); + } + */ + + /* + #[test] + fn test_type_arg_error() { + // This test is meant to reproduce the `TemplateFunction` error + // by involving a function that uses `Option` Enum and pattern-matching in Scilla + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library TestTypeArgument + + let option_value = + tfun 'A => + fun (default: 'A) => + fun (opt_val: Option 'A) => + match opt_val with + | Some v => v + | None => default + end + + contract TestTypeArgument() + "# + ); + } + */ + /* + #[test] + fn test_emit_library_single_definition_unimplemented() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library TestLibrary + + let zero = Uint32 0 + + contract TestContract() + "#); + + // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition + // It does this by defining a library with a single let definition. + // The let definition will cause the emit_library_single_definition method to be called during contract compilation. + // Since the current implementation of this function cannot handle let definitions, it should trigger the unimplemented error. + } + */ + /* + #[test] + // This test is meant to reproduce the error caused by the unimplemented match case in the + // emit_full_expression function. + fn test_unimplemented_match_case() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Test + + type Error = + | CodeNotAuthorized + + let make_error = + fun (result : Error) => + let result_code = + match result with + | CodeNotAuthorized => Int32 -2 + end + in + { _exception : "Error"; code : result_code } + + contract Test(contract_owner: ByStr20) + procedure ThrowError(err : Error) + e = make_error err; + throw e + end + procedure IsContractOwner() + is_contract_owner = builtin eq _sender contract_owner; + match is_contract_owner with + | True => + | False => + err = CodeNotAuthorized; + ThrowError err + end + end + transition BlockAddress (wallet: ByStr20) + IsContractOwner + end + "#); + } + */ +} diff --git a/products/bluebell/core/tests/evm_compiler_full_tests.rs b/products/bluebell/core/tests/evm_compiler_full_tests.rs index a7bf3a497..28bf95a9e 100644 --- a/products/bluebell/core/tests/evm_compiler_full_tests.rs +++ b/products/bluebell/core/tests/evm_compiler_full_tests.rs @@ -136,37 +136,38 @@ end "+0x1000000000000000000000000000000000000000.0x0000000000000000000000000000000000000000000000000000000000001337=0x000000000000000000000000000000000000000000000000000000000000002a" ); } - - #[test] - fn test_conditional_set_state_combined_logic() { - // TODO: Test case not working - - test_compile_and_execute_full_evm!( - "HelloWorld::setHello", - "[42]", - r#"scilla_version 0 - - library HelloWorld - - contract HelloWorld() - field welcome_msg : Uint64 = Uint64 0 - - transition setHello (msg: Uint64) - zero = Uint64 0; - test = Uint64 42; - is_owner = builtin eq msg test; - test2 = False; - is_false = builtin eq test2 is_owner; - match is_false with - | True => - welcome_msg := zero - | _ => - welcome_msg := msg - end - end - -"#, - "+0x1000000000000000000000000000000000000000.0x0000000000000000000000000000000000000000000000000000000000001337=0x000000000000000000000000000000000000000000000000000000000000002a" - ); - } + /* + #[test] + fn test_conditional_set_state_combined_logic() { + // TODO: Test case not working + + test_compile_and_execute_full_evm!( + "HelloWorld::setHello", + "[42]", + r#"scilla_version 0 + + library HelloWorld + + contract HelloWorld() + field welcome_msg : Uint64 = Uint64 0 + + transition setHello (msg: Uint64) + zero = Uint64 0; + test = Uint64 42; + is_owner = builtin eq msg test; + test2 = False; + is_false = builtin eq test2 is_owner; + match is_false with + | True => + welcome_msg := zero + | _ => + welcome_msg := msg + end + end + + "#, + "+0x1000000000000000000000000000000000000000.0x0000000000000000000000000000000000000000000000000000000000001337=0x000000000000000000000000000000000000000000000000000000000000002a" + ); + } + */ } diff --git a/products/bluebell/scilla_test_cases/contract103335.rs b/products/bluebell/scilla_test_cases/contract103335.rs new file mode 100644 index 000000000..a44a632a8 --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract103335.rs @@ -0,0 +1,15 @@ +#[test] +// This test is intended to verify the capability of the Scilla to Rust compiler +// to handle import statements, library declarations and contract declaration with +// functions. It minimizes the Scilla code used, focusing mainly on the components that could +// trigger the `emit_import_declarations` error, including "import" statements. +fn test_import_handling() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + import ListUtils + library TestLib + contract TestContract() + end + "# + ); +} diff --git a/products/bluebell/scilla_test_cases/contract106816.rs b/products/bluebell/scilla_test_cases/contract106816.rs new file mode 100644 index 000000000..d07577541 --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract106816.rs @@ -0,0 +1,23 @@ +#[test] +fn test_type_arg_error() { + // This test is meant to reproduce the `EnclosedTypeArgument` error + // by involving a function that uses `Option` Enum and pattern-matching in Scilla + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library TestTypeArgument + + let option_value = + tfun 'A => + fun (default: 'A) => + fun (opt_val: Option 'A) => + match opt_val with + | Some v => v + | None => default + end + + contract TestTypeArgument() + end + "# + ); +} diff --git a/products/bluebell/scilla_test_cases/contract108180.rs b/products/bluebell/scilla_test_cases/contract108180.rs new file mode 100644 index 000000000..8ccc1ecdf --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract108180.rs @@ -0,0 +1,19 @@ +#[test] +fn test_emit_library_single_definition_unimplemented() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library TestLibrary + + let zero = Uint32 0 + + contract TestContract() + end + "# + ); + + // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition + // It does this by defining a library with a single let definition. + // The let definition will cause the emit_library_single_definition method to be called during contract compilation. + // Since the current implementation of this function cannot handle let definitions, it should trigger the unimplemented error. +} diff --git a/products/bluebell/scilla_test_cases/contract14699.rs b/products/bluebell/scilla_test_cases/contract14699.rs new file mode 100644 index 000000000..add66d8b6 --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract14699.rs @@ -0,0 +1,41 @@ +#[test] +// This test is meant to reproduce the error caused by the unimplemented match case in the +// emit_full_expression function. +fn test_unimplemented_match_case() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Test + + type Error = + | CodeNotAuthorized + + let make_error = + fun (result : Error) => + let result_code = + match result with + | CodeNotAuthorized => Int32 -2 + end + in + { _exception : "Error"; code : result_code } + + contract Test(contract_owner: ByStr20) + procedure ThrowError(err : Error) + e = make_error err; + throw e + end + procedure IsContractOwner() + is_contract_owner = builtin eq _sender contract_owner; + match is_contract_owner with + | True => + | False => + err = CodeNotAuthorized; + ThrowError err + end + end + transition BlockAddress (wallet: ByStr20) + IsContractOwner; + end +"# + ); +} diff --git a/products/bluebell/scilla_test_cases/contract25028.rs b/products/bluebell/scilla_test_cases/contract25028.rs new file mode 100644 index 000000000..970306d74 --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract25028.rs @@ -0,0 +1,18 @@ +#[test] +// Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. +fn test_event_type_not_implemented() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library DummyRefinery + + contract DummyRefinery() + + transition Register(claimer : ByStr20) + end + + transition Refine(to: ByStr20, amount: Uint128) + end +"# + ); +} diff --git a/products/bluebell/scilla_test_cases/contract46150.rs b/products/bluebell/scilla_test_cases/contract46150.rs new file mode 100644 index 000000000..0d4fe392c --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract46150.rs @@ -0,0 +1,16 @@ +#[test] +// This test runs the Scilla compilation and evm code generation with an `Empty` transition function +// It's useful for testing how the compiler handles empty blocks +fn test_empty_function_body() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Dummy + + contract Dummy() + + transition Dummy() + end +"# + ); +} diff --git a/products/bluebell/scilla_test_cases/contract76367.rs b/products/bluebell/scilla_test_cases/contract76367.rs new file mode 100644 index 000000000..f3a7f5f1f --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract76367.rs @@ -0,0 +1,12 @@ +#[test] +// Test the handling of a Map type in field declarations +fn test_map_field_type() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Dummy + contract Dummy() + field _map : Map Uint256 Uint256 = Emp Uint256 Uint256 +"# + ); +} diff --git a/products/bluebell/scilla_test_cases/contract93941.rs b/products/bluebell/scilla_test_cases/contract93941.rs new file mode 100644 index 000000000..440fa81cb --- /dev/null +++ b/products/bluebell/scilla_test_cases/contract93941.rs @@ -0,0 +1,18 @@ +#[test] +// This test case is used to generate an unimplemented error for the contract_type_arguments of +// the ConstructorCall enum in the NodeFullExpression. A contract of this nature forces the program +// to enter the unimplemented!() block. +fn test_unimplemented_constructor_call() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library ProductLibrary + + contract ProductContract () + field products: Map String (ProductType) = Emp String (ProductType) + + end + + "# + ); +} From d56c1ab2d1229f8c3d73fab8ec69f11a85254ee0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Mon, 6 Nov 2023 14:44:55 +0100 Subject: [PATCH 02/16] Adding source loader --- .../intermediate_representation/ast_queue.rs | 9 +++ .../intermediate_representation/emitter.rs | 31 +++++--- .../src/intermediate_representation/mod.rs | 1 + products/bluebell/core/src/support/evm.rs | 71 ++++++++++++++++++- .../core/tests/code_gen_for_various_asts.rs | 15 +++- 5 files changed, 116 insertions(+), 11 deletions(-) create mode 100644 products/bluebell/core/src/intermediate_representation/ast_queue.rs diff --git a/products/bluebell/core/src/intermediate_representation/ast_queue.rs b/products/bluebell/core/src/intermediate_representation/ast_queue.rs new file mode 100644 index 000000000..52b8cae37 --- /dev/null +++ b/products/bluebell/core/src/intermediate_representation/ast_queue.rs @@ -0,0 +1,9 @@ +use crate::ast::nodes::NodeProgram; + +/// Trait for a queue that lists the next Ast to be compiled. +pub trait AstQueue { + /// Add a library to the queue. + fn enqueue(&mut self, library_name: &str) -> Result<(), String>; + /// Get the next Ast to be converted to the IR. + fn pop_front(&mut self) -> Option; +} diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index 493d2142d..d6db5bda5 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -5,7 +5,7 @@ use log::info; use crate::{ ast::{converting::AstConverting, nodes::*, visitor::AstVisitor}, constants::{TraversalResult, TreeTraversalMode}, - intermediate_representation::{primitives::*, symbol_table::SymbolTable}, + intermediate_representation::{ast_queue::AstQueue, primitives::*, symbol_table::SymbolTable}, parser::lexer::SourcePosition, }; @@ -67,7 +67,7 @@ enum StackObject { /// The `IrEmitter` struct is used for bookkeeping during the conversion of a Scilla AST to an intermediate representation. /// It implements the `AstConverting` trait, which is a generic trait for AST conversions. -pub struct IrEmitter { +pub struct IrEmitter<'a> { /// Stack of objects used during the conversion process. stack: Vec, @@ -88,10 +88,13 @@ pub struct IrEmitter { /// Source positions of the AST nodes. source_positions: Vec<(SourcePosition, SourcePosition)>, + + /// Queue with imported libraries + ast_queue: &'a mut dyn AstQueue, } -impl IrEmitter { - pub fn new(symbol_table: SymbolTable) -> Self { +impl<'a> IrEmitter<'a> { + pub fn new(symbol_table: SymbolTable, ast_queue: &'a mut dyn AstQueue) -> Self { let current_block = FunctionBlock::new("dummy".to_string()); let current_body = FunctionBody::new(); let ns = IrIdentifier { @@ -119,6 +122,7 @@ impl IrEmitter { SourcePosition::invalid_position(), )] .to_vec(), // TODO: this should not be necessary + ast_queue, } } @@ -286,7 +290,7 @@ impl IrEmitter { } } -impl AstConverting for IrEmitter { +impl<'a> AstConverting for IrEmitter<'a> { fn push_source_position(&mut self, start: &SourcePosition, end: &SourcePosition) { self.source_positions.push((start.clone(), end.clone())); } @@ -335,16 +339,27 @@ impl AstConverting for IrEmitter { fn emit_imported_name( &mut self, _mode: TreeTraversalMode, - _node: &NodeImportedName, + node: &NodeImportedName, ) -> Result { - unimplemented!(); + match node { + NodeImportedName::RegularImport(value) => { + value.node.visit(self)?; + let identifier = self.pop_ir_identifier()?; + self.ast_queue.enqueue(&identifier.unresolved)?; + } + NodeImportedName::AliasedImport(_alias, _name) => { + unimplemented!() + } + } + Ok(TraversalResult::SkipChildren) } fn emit_import_declarations( &mut self, _mode: TreeTraversalMode, _node: &NodeImportDeclarations, ) -> Result { - unimplemented!(); + // Nothing to do here - we will deal with the specific kind of import, futher down the tree + Ok(TraversalResult::Continue) } fn emit_meta_identifier( &mut self, diff --git a/products/bluebell/core/src/intermediate_representation/mod.rs b/products/bluebell/core/src/intermediate_representation/mod.rs index baad823bc..1195d1360 100644 --- a/products/bluebell/core/src/intermediate_representation/mod.rs +++ b/products/bluebell/core/src/intermediate_representation/mod.rs @@ -1,3 +1,4 @@ +pub mod ast_queue; pub mod emitter; pub mod name_generator; pub mod pass; diff --git a/products/bluebell/core/src/support/evm.rs b/products/bluebell/core/src/support/evm.rs index b32252292..9324d7757 100644 --- a/products/bluebell/core/src/support/evm.rs +++ b/products/bluebell/core/src/support/evm.rs @@ -1,21 +1,84 @@ use evm_assembly::{ compiler_context::EvmCompilerContext, executable::EvmExecutable, executor::EvmExecutor, }; +use std::collections::HashMap; use crate::{ ast::nodes::NodeProgram, evm_bytecode_generator::EvmBytecodeGenerator, intermediate_representation::{ - emitter::IrEmitter, pass_manager::PassManager, symbol_table::SymbolTableConstructor, + ast_queue::AstQueue, emitter::IrEmitter, pass_manager::PassManager, + symbol_table::SymbolTableConstructor, }, parser::{lexer, lexer::Lexer, parser}, support::modules::BluebellModule, }; +/// Example implementation of AstQueue. +pub struct SourceImporter { + queue: Vec, + preloaded_scripts: HashMap, +} + +impl AstQueue for SourceImporter { + fn enqueue(&mut self, filename: &str) -> Result<(), String> { + let script = self.load_script_from_filename(filename)?; + self.load_script(script) + } + + fn pop_front(&mut self) -> Option { + self.queue.pop() + } +} + +impl SourceImporter { + fn new() -> Self { + let mut preloaded_scripts = HashMap::new(); + // TODO: Move this such that it is defined in the module. + preloaded_scripts.insert( + "ListUtils".to_string(), + r#"scilla_version 0 + library ListUtils + contract ListUtils() + "# + .to_string(), + ); + SourceImporter { + queue: Vec::new(), + preloaded_scripts, + } + } + + fn load_script_from_filename(&self, filename: &str) -> Result { + if let Some(script) = self.preloaded_scripts.get(filename) { + Ok(script.clone()) + } else { + std::fs::read_to_string(filename).map_err(|err| format!("{}: {}", err, filename)) + } + } + + fn load_script(&mut self, script: String) -> Result<(), String> { + let mut errors: Vec = [].to_vec(); + let lexer = Lexer::new(&script); + let parser = parser::ProgramParser::new(); + let ast = match parser.parse(&mut errors, lexer) { + Ok(ast) => ast, + Err(error) => { + let message = format!("Syntax error {:?}", error); + return Err(message.to_string()); + } + }; + + self.queue.push(ast); + Ok(()) + } +} + pub struct EvmCompiler { pub context: EvmCompilerContext, pass_manager: PassManager, abi_support: bool, + source_importer: SourceImporter, } impl EvmCompiler { @@ -24,6 +87,7 @@ impl EvmCompiler { context: EvmCompilerContext::new(), pass_manager: PassManager::default_pipeline(), abi_support: true, + source_importer: SourceImporter::new(), } } @@ -32,6 +96,7 @@ impl EvmCompiler { context: EvmCompilerContext::new(), pass_manager: PassManager::default_pipeline(), abi_support: false, + source_importer: SourceImporter::new(), } } @@ -61,7 +126,9 @@ impl EvmCompiler { // TODO: Remove &mut self - needs to be removed from a number of places first pub fn compile_ast(&mut self, ast: &NodeProgram) -> Result { let symbol_table = self.context.new_symbol_table(); - let mut ir_emitter = IrEmitter::new(symbol_table); + let mut ast_queue = &mut self.source_importer; + + let mut ir_emitter = IrEmitter::new(symbol_table, ast_queue); let mut ir = ir_emitter.emit(ast)?; self.pass_manager.run(&mut ir)?; diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index fa7483a22..b229d7698 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -66,9 +66,22 @@ mod tests { contract TestContract() "# ); - assert!(false); } + /* + TODO: Not handled yet + #[test] + fn test_alias_import_handling() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + import ListUtils as HelloWorld + library TestLib + contract TestContract() + "# + ); + } + */ + /* #[test] // Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. From 287bfc5fd136de5627a5f31dadf019bff3878906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Mon, 6 Nov 2023 14:55:49 +0100 Subject: [PATCH 03/16] Preparing for multi file loading --- products/bluebell/core/src/support/evm.rs | 26 ++++++++++++----------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/products/bluebell/core/src/support/evm.rs b/products/bluebell/core/src/support/evm.rs index 9324d7757..e95180347 100644 --- a/products/bluebell/core/src/support/evm.rs +++ b/products/bluebell/core/src/support/evm.rs @@ -109,24 +109,26 @@ impl EvmCompiler { } pub fn compile(&mut self, script: String) -> Result { - let mut errors: Vec = [].to_vec(); - let lexer = Lexer::new(&script); - let parser = parser::ProgramParser::new(); - let ast = match parser.parse(&mut errors, lexer) { - Ok(ast) => ast, - Err(error) => { - let message = format!("Syntax error {:?}", error); - return Err(message.to_string()); - } - }; + self.source_importer.load_script(script)?; + let symbol_table = self.context.new_symbol_table(); - self.compile_ast(&ast) + // TODO: Change to while loop. This requires that IRs can be merged + if let Some(ast) = self.source_importer.pop_front() { + let ast_queue = &mut self.source_importer; + let mut ir_emitter = IrEmitter::new(symbol_table, ast_queue); + let mut ir = ir_emitter.emit(&ast)?; + self.pass_manager.run(&mut ir)?; + let mut generator = EvmBytecodeGenerator::new(&mut self.context, ir, self.abi_support); + generator.build_executable() + } else { + Err("No AST found.".to_string()) + } } // TODO: Remove &mut self - needs to be removed from a number of places first pub fn compile_ast(&mut self, ast: &NodeProgram) -> Result { let symbol_table = self.context.new_symbol_table(); - let mut ast_queue = &mut self.source_importer; + let ast_queue = &mut self.source_importer; let mut ir_emitter = IrEmitter::new(symbol_table, ast_queue); let mut ir = ir_emitter.emit(ast)?; From e2ef4260008b837881bbf9305232ee7c6c221e53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Mon, 6 Nov 2023 15:51:55 +0100 Subject: [PATCH 04/16] Fixing failure on empty function block --- .../intermediate_representation/emitter.rs | 48 +++++++++++++++++-- .../core/tests/code_gen_for_various_asts.rs | 33 ++++++------- 2 files changed, 61 insertions(+), 20 deletions(-) diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index d6db5bda5..3ddefbd57 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -186,6 +186,25 @@ impl<'a> IrEmitter<'a> { Ok(ret) } + fn pop_function_block_or_empty_block(&mut self) -> Result, String> { + let ret = if let Some(candidate) = self.stack.last() { + match candidate { + StackObject::FunctionBlock(n) => { + if let StackObject::FunctionBlock(n) = self.stack.pop().unwrap() { + n + } else { + panic!("This will never happen"); + } + } + _ => FunctionBlock::new("empty_block".to_string()), + } + } else { + return Err("Expected function block, but found nothing.".to_string()); + }; + + Ok(ret) + } + fn pop_ir_identifier(&mut self) -> Result { let ret = if let Some(candidate) = self.stack.pop() { match candidate { @@ -267,6 +286,25 @@ impl<'a> IrEmitter<'a> { Ok(ret) } + fn pop_function_body_or_empty(&mut self) -> Result, String> { + let ret = if let Some(candidate) = self.stack.last() { + match candidate { + StackObject::FunctionBody(n) => { + if let StackObject::FunctionBody(n) = self.stack.pop().unwrap() { + n + } else { + panic!("This will never happen"); + } + } + _ => FunctionBody::new(), + } + } else { + return Err("Expected function body, but found nothing.".to_string()); + }; + + Ok(ret) + } + pub fn emit(&mut self, node: &NodeProgram) -> Result, String> { // Copying original symbol table to create a new instance of the IR at the end // of traversing @@ -1383,10 +1421,10 @@ impl<'a> AstConverting for IrEmitter<'a> { if let Some(block) = &node.statement_block { let _ = block.visit(self)?; } - - let last_block = self.pop_function_block()?; + // BOOK + let last_block = self.pop_function_block_or_empty_block()?; // Restoring the old body as current - let mut body = self.pop_function_body()?; + let mut body = self.pop_function_body_or_empty()?; mem::swap(&mut body, &mut self.current_body); // Pushing the current body onto the stack @@ -1645,7 +1683,8 @@ impl<'a> AstConverting for IrEmitter<'a> { let ir_arg = self.pop_variable_declaration()?; arguments.push(ir_arg); } - + println!("Stacl:{:#?}", self.stack); + println!("{:#?}", node); // Function body let _ = node.body.visit(self)?; @@ -1665,6 +1704,7 @@ impl<'a> AstConverting for IrEmitter<'a> { last_block.terminated = true; } } + println!("Stacl:{:#?}", self.stack); let mut function_name = self.pop_ir_identifier()?; assert!(function_name.kind == IrIndentifierKind::ComponentName); diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index b229d7698..d2923099b 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -68,6 +68,23 @@ mod tests { ); } + #[test] + // This test runs the Scilla compilation and evm code generation with an `Empty` transition function + // It's useful for testing how the compiler handles empty blocks + fn test_empty_function_body() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Dummy + + contract Dummy() + + transition Dummy() + end + "# + ); + } + /* TODO: Not handled yet #[test] @@ -101,23 +118,7 @@ mod tests { "#); } */ - /* - #[test] - // This test runs the Scilla compilation and evm code generation with an `Empty` transition function - // It's useful for testing how the compiler handles empty blocks - fn test_empty_function_body() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library Dummy - - contract Dummy() - transition Dummy() - end - "#); - } - */ /* #[test] // This test case is used to generate an unimplemented error for the contract_type_arguments of From 9b9df7d3857a5d7f71e3d96e64b66e35aeb4be57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Tue, 7 Nov 2023 16:44:05 +0100 Subject: [PATCH 05/16] Fixing issue with ByteStr --- .../intermediate_representation/emitter.rs | 21 ++++++++++++++----- .../bluebell/core/src/parser/parser.lalrpop | 6 +++++- products/bluebell/core/src/support/evm.rs | 3 ++- .../core/tests/code_gen_for_various_asts.rs | 10 ++++----- products/bluebell/evm_assembly/src/block.rs | 5 ++++- 5 files changed, 31 insertions(+), 14 deletions(-) diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index 3ddefbd57..8be0effa1 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -340,10 +340,18 @@ impl<'a> AstConverting for IrEmitter<'a> { fn emit_byte_str( &mut self, _mode: TreeTraversalMode, - _node: &NodeByteStr, + node: &NodeByteStr, ) -> Result { - unimplemented!(); + let symbol = IrIdentifier::new( + node.to_string(), + IrIndentifierKind::Unknown, // TODO: Should be revised to TypeName + self.current_location(), + ); + + self.stack.push(StackObject::IrIdentifier(symbol)); + Ok(TraversalResult::SkipChildren) } + fn emit_type_name_identifier( &mut self, mode: TreeTraversalMode, @@ -351,7 +359,9 @@ impl<'a> AstConverting for IrEmitter<'a> { ) -> Result { match mode { TreeTraversalMode::Enter => match node { - NodeTypeNameIdentifier::ByteStringType(_) => (), + NodeTypeNameIdentifier::ByteStringType(_) => { + // Ignored as it is handled by emit_byte_str + } NodeTypeNameIdentifier::EventType => { /* self.stack.push(StackObject::Identifier(Identifier::Event( @@ -363,7 +373,7 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeTypeNameIdentifier::TypeOrEnumLikeIdentifier(name) => { let symbol = IrIdentifier::new( name.to_string(), - IrIndentifierKind::Unknown, + IrIndentifierKind::Unknown, // TODO: Should be revised to TypeName self.current_location(), ); @@ -374,6 +384,7 @@ impl<'a> AstConverting for IrEmitter<'a> { } Ok(TraversalResult::Continue) } + fn emit_imported_name( &mut self, _mode: TreeTraversalMode, @@ -1704,7 +1715,7 @@ impl<'a> AstConverting for IrEmitter<'a> { last_block.terminated = true; } } - println!("Stacl:{:#?}", self.stack); + println!("Stack: {:#?}", self.stack); let mut function_name = self.pop_ir_identifier()?; assert!(function_name.kind == IrIndentifierKind::ComponentName); diff --git a/products/bluebell/core/src/parser/parser.lalrpop b/products/bluebell/core/src/parser/parser.lalrpop index 9c8033c8d..50af105d4 100644 --- a/products/bluebell/core/src/parser/parser.lalrpop +++ b/products/bluebell/core/src/parser/parser.lalrpop @@ -111,7 +111,11 @@ pub ByteString : NodeByteStr = { // @return An identifier type name as a custom type name, a byte string type name, or an event type name. pub TypeNameIdentifier: WithMetaData = { => WithMetaData:: { - node: NodeTypeNameIdentifier::EventType, + node: NodeTypeNameIdentifier::ByteStringType(WithMetaData:: { + node, + start: start.clone(), + end: end.clone() + }), start, end }, diff --git a/products/bluebell/core/src/support/evm.rs b/products/bluebell/core/src/support/evm.rs index e95180347..f04bd3737 100644 --- a/products/bluebell/core/src/support/evm.rs +++ b/products/bluebell/core/src/support/evm.rs @@ -1,7 +1,8 @@ +use std::collections::HashMap; + use evm_assembly::{ compiler_context::EvmCompilerContext, executable::EvmExecutable, executor::EvmExecutor, }; -use std::collections::HashMap; use crate::{ ast::nodes::NodeProgram, diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index d2923099b..58d1bdb0e 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -99,10 +99,9 @@ mod tests { } */ - /* #[test] // Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. - fn test_event_type_not_implemented() { + fn test_byte_str_not_implemented() { test_compilation_and_evm_code_generation!( r#"scilla_version 0 @@ -111,13 +110,12 @@ mod tests { contract DummyRefinery() transition Register(claimer : ByStr20) + x = claimer end - transition Refine(to: ByStr20, amount: Uint128) - end - "#); + "# + ); } - */ /* #[test] diff --git a/products/bluebell/evm_assembly/src/block.rs b/products/bluebell/evm_assembly/src/block.rs index 0d425f120..bac4f960d 100644 --- a/products/bluebell/evm_assembly/src/block.rs +++ b/products/bluebell/evm_assembly/src/block.rs @@ -385,7 +385,10 @@ impl EvmBlock { _ => panic!("{}", "Stack overflow.".to_string()), } } - None => Err(format!("Failed to find SSA name {} on stack", name)), + None => { + println!("{:#?}", self.scope.name_location); + Err(format!("Failed to find SSA name {} on stack", name)) + } } } From ba3af3c44ac3fc0d1692407eceffeea3be3e9fa0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Tue, 7 Nov 2023 16:54:06 +0100 Subject: [PATCH 06/16] Minor update --- .../intermediate_representation/emitter.rs | 2 +- .../core/tests/code_gen_for_various_asts.rs | 37 ++++++++++--------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index 8be0effa1..c6a312579 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -1570,7 +1570,7 @@ impl<'a> AstConverting for IrEmitter<'a> { // TODO: self.current_function } */ - + println!("{:#?}", expression); expression.visit(self)?; unimplemented!(); } diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index 58d1bdb0e..8db202a94 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -117,6 +117,25 @@ mod tests { ); } + #[test] + fn test_emit_library_single_definition_unimplemented() { + // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition + // It does this by defining a library with a single let definition. + // The let definition will cause the emit_library_single_definition method to be called during contract compilation. + // Since the current implementation of this function cannot handle let definitions, it should trigger the unimplemented error. + + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library TestLibrary + + let zero = Uint32 0 + + contract TestContract() + "# + ); + } + /* #[test] // This test case is used to generate an unimplemented error for the contract_type_arguments of @@ -158,25 +177,7 @@ mod tests { ); } */ - /* - #[test] - fn test_emit_library_single_definition_unimplemented() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library TestLibrary - - let zero = Uint32 0 - contract TestContract() - "#); - - // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition - // It does this by defining a library with a single let definition. - // The let definition will cause the emit_library_single_definition method to be called during contract compilation. - // Since the current implementation of this function cannot handle let definitions, it should trigger the unimplemented error. - } - */ /* #[test] // This test is meant to reproduce the error caused by the unimplemented match case in the From 456487ad36eec822e2302e05ab2e7ccd25ab116d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Wed, 8 Nov 2023 10:01:56 +0100 Subject: [PATCH 07/16] Updating test cases with more paths of unimplemented emitters --- .../intermediate_representation/emitter.rs | 4 - products/bluebell/core/src/support/evm.rs | 27 +++ .../core/tests/code_gen_for_various_asts.rs | 173 +++++++++++++++++- .../scilla_test_cases/contract103335.rs | 15 -- .../scilla_test_cases/contract106816.rs | 23 --- .../scilla_test_cases/contract108180.rs | 19 -- .../scilla_test_cases/contract14699.rs | 41 ----- .../scilla_test_cases/contract25028.rs | 18 -- .../scilla_test_cases/contract46150.rs | 16 -- .../scilla_test_cases/contract76367.rs | 12 -- .../scilla_test_cases/contract93941.rs | 18 -- 11 files changed, 192 insertions(+), 174 deletions(-) delete mode 100644 products/bluebell/scilla_test_cases/contract103335.rs delete mode 100644 products/bluebell/scilla_test_cases/contract106816.rs delete mode 100644 products/bluebell/scilla_test_cases/contract108180.rs delete mode 100644 products/bluebell/scilla_test_cases/contract14699.rs delete mode 100644 products/bluebell/scilla_test_cases/contract25028.rs delete mode 100644 products/bluebell/scilla_test_cases/contract46150.rs delete mode 100644 products/bluebell/scilla_test_cases/contract76367.rs delete mode 100644 products/bluebell/scilla_test_cases/contract93941.rs diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index c6a312579..22a9deaf5 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -1570,7 +1570,6 @@ impl<'a> AstConverting for IrEmitter<'a> { // TODO: self.current_function } */ - println!("{:#?}", expression); expression.visit(self)?; unimplemented!(); } @@ -1694,8 +1693,6 @@ impl<'a> AstConverting for IrEmitter<'a> { let ir_arg = self.pop_variable_declaration()?; arguments.push(ir_arg); } - println!("Stacl:{:#?}", self.stack); - println!("{:#?}", node); // Function body let _ = node.body.visit(self)?; @@ -1715,7 +1712,6 @@ impl<'a> AstConverting for IrEmitter<'a> { last_block.terminated = true; } } - println!("Stack: {:#?}", self.stack); let mut function_name = self.pop_ir_identifier()?; assert!(function_name.kind == IrIndentifierKind::ComponentName); diff --git a/products/bluebell/core/src/support/evm.rs b/products/bluebell/core/src/support/evm.rs index f04bd3737..2ef932569 100644 --- a/products/bluebell/core/src/support/evm.rs +++ b/products/bluebell/core/src/support/evm.rs @@ -44,6 +44,33 @@ impl SourceImporter { "# .to_string(), ); + + preloaded_scripts.insert( + "BoolUtils".to_string(), + r#"scilla_version 0 + library BoolUtils + contract BoolUtils() + "# + .to_string(), + ); + + preloaded_scripts.insert( + "IntUtils".to_string(), + r#"scilla_version 0 + library IntUtils + contract IntUtils() + "# + .to_string(), + ); + + preloaded_scripts.insert( + "IntUtils".to_string(), + r#"scilla_version 0 + library IntUtils + contract IntUtils() + "# + .to_string(), + ); SourceImporter { queue: Vec::new(), preloaded_scripts, diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index 8db202a94..fb79b6cdd 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -136,7 +136,167 @@ mod tests { ); } - /* + #[test] + // This test case is designed to reproduce a "not implemented" error about 'EnclosedTypeArguments' in Emitter. + fn test_enclosed_type_argument_error() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library TestLibrary + + type ExampleType = + | ExampleType of ByStr20 Uint128 + + let zero = Uint128 0 + contract TestLibrary() + + transition TestTransition(item: ExampleType) + match item with + | ExampleType account amount => + msg = {_tag : "TestTag"; _recipient : account; _amount : zero; + account : account; amount: amount} + end + end + "# + ); + } + + #[test] + // This test is trying to compile a scilla contract with an address argument type. + // The Scilla code we are testing with has a piece instance `None {ByStr20}` which + // is processed as an `AddressTypeArgument` in the Rust intermediary representation of Scilla. + // Currently, in Rust our Scilla interpreter/compiler doesn't support `AddressTypeArgument`s + // hence it should panic with a `not implemented` error. + fn test_address_argument_type() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + library Test + contract Test() + field owner : Option ByStr20 = None {ByStr20} + "# + ); + // Here we are expecting the test to panic hence we don't have any assertions + } + + #[test] + fn test_map_key_type_not_implemented() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + contract TestContract( + init_owner: ByStr20 + ) + field administrators : Map ByStr20 String = Emp ByStr20 String + "# + ); + // This test is validating the panic caused by unimplemented handling + // of Map types declared in the field of a contract + } + + #[test] + fn test_generic_constructor_call() { + test_compilation_and_evm_code_generation!( + r#" + scilla_version 0 + + library TestLibrary + let zero_msg = Nil {Message} + + contract Test() + "# + ); + + // Tests that the compiler can handle a constructor call that + // uses generic type arguments. + } + + #[test] + fn test_unimplemented_message_error() { + // This test checks an exception which is thrown + // when a Message literal is encountered in AST + // TODO: Not working + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Example + + contract Example() + field message : Uint64 = Uint64 0 + + transition setMessage (msg: Uint64) + zero = Uint64 0; + test = Uint64 42; + is_owner = builtin eq msg test; + test2 = False; + is_false = builtin eq test2 is_owner; + match is_false with + | True => + msg = {_recipient : zero; _tag: "Error1"; _amount: zero}; + message := zero + | _ => + msg = {_recipient : zero; _tag: "Error2"; _amount: zero}; + message := msg + end + end + "# + ); + } + + #[test] + // This test case is testing the handling of aliased imports (a feature not yet implemented), + // which cause a panic in our Scilla compiler written in Rust. + fn test_aliased_import() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + import BoolUtils as BoolU + library Test + + contract Test() + field test_field : Uint64 = Uint64 0 + + transition testTransition (msg: Uint64) + zero = Uint64 0; + test = Uint64 42; + is_owner = BoolU.eq msg test; + test2 = False; + is_false = BoolU.eq test2 is_owner; + match is_false with + | True => + test_field := zero + | _ => + test_field := msg + end + end + "# + ); + + // Expected output: a defined behaviour about how to handle aliased imports. + // Current output: thread 'main' panicked at core/src/intermediate_representation/emitter.rs:400:17: + // not implemented + // note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace + } + + #[test] + // This test is to check how Rust handles an unimplemented feature: + // Generic types with arguments (GenericTypeWithArgs) using Scilla's "Option" and "Uint128" types + fn test_generic_type_with_args() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + + library Test + + let get_var_value = + fun( var : Option Uint128) => + match var with + | Some x => x + | None => Uint128 0 + end + + contract Test() + "# + ); + } + #[test] // This test case is used to generate an unimplemented error for the contract_type_arguments of // the ConstructorCall enum in the NodeFullExpression. A contract of this nature forces the program @@ -149,11 +309,10 @@ mod tests { contract ProductContract () field products: Map String (ProductType) = Emp String (ProductType) - "#); + "# + ); } - */ - /* #[test] fn test_type_arg_error() { // This test is meant to reproduce the `TemplateFunction` error @@ -176,9 +335,7 @@ mod tests { "# ); } - */ - /* #[test] // This test is meant to reproduce the error caused by the unimplemented match case in the // emit_full_expression function. @@ -217,7 +374,7 @@ mod tests { transition BlockAddress (wallet: ByStr20) IsContractOwner end - "#); + "# + ); } - */ } diff --git a/products/bluebell/scilla_test_cases/contract103335.rs b/products/bluebell/scilla_test_cases/contract103335.rs deleted file mode 100644 index a44a632a8..000000000 --- a/products/bluebell/scilla_test_cases/contract103335.rs +++ /dev/null @@ -1,15 +0,0 @@ -#[test] -// This test is intended to verify the capability of the Scilla to Rust compiler -// to handle import statements, library declarations and contract declaration with -// functions. It minimizes the Scilla code used, focusing mainly on the components that could -// trigger the `emit_import_declarations` error, including "import" statements. -fn test_import_handling() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - import ListUtils - library TestLib - contract TestContract() - end - "# - ); -} diff --git a/products/bluebell/scilla_test_cases/contract106816.rs b/products/bluebell/scilla_test_cases/contract106816.rs deleted file mode 100644 index d07577541..000000000 --- a/products/bluebell/scilla_test_cases/contract106816.rs +++ /dev/null @@ -1,23 +0,0 @@ -#[test] -fn test_type_arg_error() { - // This test is meant to reproduce the `EnclosedTypeArgument` error - // by involving a function that uses `Option` Enum and pattern-matching in Scilla - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library TestTypeArgument - - let option_value = - tfun 'A => - fun (default: 'A) => - fun (opt_val: Option 'A) => - match opt_val with - | Some v => v - | None => default - end - - contract TestTypeArgument() - end - "# - ); -} diff --git a/products/bluebell/scilla_test_cases/contract108180.rs b/products/bluebell/scilla_test_cases/contract108180.rs deleted file mode 100644 index 8ccc1ecdf..000000000 --- a/products/bluebell/scilla_test_cases/contract108180.rs +++ /dev/null @@ -1,19 +0,0 @@ -#[test] -fn test_emit_library_single_definition_unimplemented() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library TestLibrary - - let zero = Uint32 0 - - contract TestContract() - end - "# - ); - - // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition - // It does this by defining a library with a single let definition. - // The let definition will cause the emit_library_single_definition method to be called during contract compilation. - // Since the current implementation of this function cannot handle let definitions, it should trigger the unimplemented error. -} diff --git a/products/bluebell/scilla_test_cases/contract14699.rs b/products/bluebell/scilla_test_cases/contract14699.rs deleted file mode 100644 index add66d8b6..000000000 --- a/products/bluebell/scilla_test_cases/contract14699.rs +++ /dev/null @@ -1,41 +0,0 @@ -#[test] -// This test is meant to reproduce the error caused by the unimplemented match case in the -// emit_full_expression function. -fn test_unimplemented_match_case() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library Test - - type Error = - | CodeNotAuthorized - - let make_error = - fun (result : Error) => - let result_code = - match result with - | CodeNotAuthorized => Int32 -2 - end - in - { _exception : "Error"; code : result_code } - - contract Test(contract_owner: ByStr20) - procedure ThrowError(err : Error) - e = make_error err; - throw e - end - procedure IsContractOwner() - is_contract_owner = builtin eq _sender contract_owner; - match is_contract_owner with - | True => - | False => - err = CodeNotAuthorized; - ThrowError err - end - end - transition BlockAddress (wallet: ByStr20) - IsContractOwner; - end -"# - ); -} diff --git a/products/bluebell/scilla_test_cases/contract25028.rs b/products/bluebell/scilla_test_cases/contract25028.rs deleted file mode 100644 index 970306d74..000000000 --- a/products/bluebell/scilla_test_cases/contract25028.rs +++ /dev/null @@ -1,18 +0,0 @@ -#[test] -// Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. -fn test_event_type_not_implemented() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library DummyRefinery - - contract DummyRefinery() - - transition Register(claimer : ByStr20) - end - - transition Refine(to: ByStr20, amount: Uint128) - end -"# - ); -} diff --git a/products/bluebell/scilla_test_cases/contract46150.rs b/products/bluebell/scilla_test_cases/contract46150.rs deleted file mode 100644 index 0d4fe392c..000000000 --- a/products/bluebell/scilla_test_cases/contract46150.rs +++ /dev/null @@ -1,16 +0,0 @@ -#[test] -// This test runs the Scilla compilation and evm code generation with an `Empty` transition function -// It's useful for testing how the compiler handles empty blocks -fn test_empty_function_body() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library Dummy - - contract Dummy() - - transition Dummy() - end -"# - ); -} diff --git a/products/bluebell/scilla_test_cases/contract76367.rs b/products/bluebell/scilla_test_cases/contract76367.rs deleted file mode 100644 index f3a7f5f1f..000000000 --- a/products/bluebell/scilla_test_cases/contract76367.rs +++ /dev/null @@ -1,12 +0,0 @@ -#[test] -// Test the handling of a Map type in field declarations -fn test_map_field_type() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library Dummy - contract Dummy() - field _map : Map Uint256 Uint256 = Emp Uint256 Uint256 -"# - ); -} diff --git a/products/bluebell/scilla_test_cases/contract93941.rs b/products/bluebell/scilla_test_cases/contract93941.rs deleted file mode 100644 index 440fa81cb..000000000 --- a/products/bluebell/scilla_test_cases/contract93941.rs +++ /dev/null @@ -1,18 +0,0 @@ -#[test] -// This test case is used to generate an unimplemented error for the contract_type_arguments of -// the ConstructorCall enum in the NodeFullExpression. A contract of this nature forces the program -// to enter the unimplemented!() block. -fn test_unimplemented_constructor_call() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - - library ProductLibrary - - contract ProductContract () - field products: Map String (ProductType) = Emp String (ProductType) - - end - - "# - ); -} From 5f3beef472cc646663cc32090d099792d354281e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Wed, 8 Nov 2023 10:04:36 +0100 Subject: [PATCH 08/16] Enabling outcommented test --- products/bluebell/core/tests/code_gen_for_various_asts.rs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index fb79b6cdd..be5db88f7 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -85,8 +85,6 @@ mod tests { ); } - /* - TODO: Not handled yet #[test] fn test_alias_import_handling() { test_compilation_and_evm_code_generation!( @@ -97,7 +95,6 @@ mod tests { "# ); } - */ #[test] // Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. @@ -214,7 +211,6 @@ mod tests { fn test_unimplemented_message_error() { // This test checks an exception which is thrown // when a Message literal is encountered in AST - // TODO: Not working test_compilation_and_evm_code_generation!( r#"scilla_version 0 From 676f3486537b7d326a579cd1983464b865e68989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Fri, 10 Nov 2023 10:08:15 +0100 Subject: [PATCH 09/16] Preparing refactor --- .../core/src/evm_bytecode_generator.rs | 1 + .../intermediate_representation/emitter.rs | 32 ++++++++++++++++--- .../pass_executor.rs | 2 ++ .../intermediate_representation/primitives.rs | 3 ++ .../core/src/passes/annotate_base_types.rs | 2 ++ .../bluebell/core/src/passes/debug_printer.rs | 1 + .../core/tests/code_gen_for_various_asts.rs | 25 ++++++++------- 7 files changed, 49 insertions(+), 17 deletions(-) diff --git a/products/bluebell/core/src/evm_bytecode_generator.rs b/products/bluebell/core/src/evm_bytecode_generator.rs index 03f8ec48c..1988dac4f 100644 --- a/products/bluebell/core/src/evm_bytecode_generator.rs +++ b/products/bluebell/core/src/evm_bytecode_generator.rs @@ -479,6 +479,7 @@ impl<'ctx> EvmBytecodeGenerator<'ctx> { ref name, owner: _, ref arguments, + template_type_arguments: _ } => { if arguments.len() > 0 { // TODO: Pack data diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index 22a9deaf5..172694e2f 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -1,4 +1,4 @@ -use std::mem; +use std::{fmt::Arguments, mem}; use log::info; @@ -514,8 +514,23 @@ impl<'a> AstConverting for IrEmitter<'a> { match node { NodeScillaType::GenericTypeWithArgs(lead, args) => { let _ = lead.visit(self)?; + // Checking if it is a template type if args.len() > 0 { - // TODO: Deal with arguments + let mut template_type = self.pop_ir_identifier()?; + assert!(template_type.kind == IrIndentifierKind::Unknown); + template_type.kind = IrIndentifierKind::TypeName; + + let mut arguments = Vec::new(); + for arg in args { + let _ = arg.visit(self)?; + let mut typename = self.pop_ir_identifier()?; + assert!(typename.kind == IrIndentifierKind::Unknown); + typename.kind = IrIndentifierKind::TypeName; + arguments.push(typename); + } + println!("{:#?}", template_type); + println!("{:#?}", arguments); + unimplemented!() } } @@ -817,19 +832,26 @@ impl<'a> AstConverting for IrEmitter<'a> { assert!(name.kind == IrIndentifierKind::Unknown); name.kind = IrIndentifierKind::FunctionName; - let arguments: Vec = [].to_vec(); + let mut template_type_arguments: Vec = [].to_vec(); - if let Some(_test) = contract_type_arguments { - unimplemented!() + if let Some(args) = contract_type_arguments { + for arg in &args.node.type_arguments { + arg.visit(self)?; + let arg = self.pop_ir_identifier()?; + template_type_arguments.push(arg); + } } if argument_list.len() > 0 { unimplemented!() } + let mut arguments: Vec = [].to_vec(); + let operation = Operation::CallStaticFunction { name, owner: None, // We cannot deduce the type from the AST arguments, + template_type_arguments, }; let instr = Box::new(Instruction { diff --git a/products/bluebell/core/src/intermediate_representation/pass_executor.rs b/products/bluebell/core/src/intermediate_representation/pass_executor.rs index 8af941ee9..a09d4f11b 100644 --- a/products/bluebell/core/src/intermediate_representation/pass_executor.rs +++ b/products/bluebell/core/src/intermediate_representation/pass_executor.rs @@ -239,11 +239,13 @@ impl PassExecutor for Operation { name, owner, arguments, + template_type_arguments: _, } | Operation::CallMemberFunction { name, owner, arguments, + // template_type_arguments: _ } => { if let Some(owner) = owner { owner.visit(pass, symbol_table)?; diff --git a/products/bluebell/core/src/intermediate_representation/primitives.rs b/products/bluebell/core/src/intermediate_representation/primitives.rs index 8c7ce5887..343e6b028 100644 --- a/products/bluebell/core/src/intermediate_representation/primitives.rs +++ b/products/bluebell/core/src/intermediate_representation/primitives.rs @@ -15,6 +15,7 @@ pub enum IrIndentifierKind { ExternalFunctionName, TypeName, + // TemplateTypeName(Vec), ComponentName, Event, Namespace, @@ -222,11 +223,13 @@ pub enum Operation { CallStaticFunction { name: IrIdentifier, owner: Option, + template_type_arguments: Vec, arguments: Vec, }, CallMemberFunction { name: IrIdentifier, owner: Option, + // template_type_arguments: Vec, arguments: Vec, }, ResolveSymbol { diff --git a/products/bluebell/core/src/passes/annotate_base_types.rs b/products/bluebell/core/src/passes/annotate_base_types.rs index 09d3b27fd..b35699b90 100644 --- a/products/bluebell/core/src/passes/annotate_base_types.rs +++ b/products/bluebell/core/src/passes/annotate_base_types.rs @@ -266,6 +266,7 @@ impl IrPass for AnnotateBaseTypes { operation: Operation::CallStaticFunction { name: symbol.clone(), owner: None, // TODO: + template_type_arguments: Vec::new(), arguments: Vec::new(), }, source_location: ( @@ -534,6 +535,7 @@ impl IrPass for AnnotateBaseTypes { name, owner: _, arguments, + template_type_arguments: _ } => { name.visit(self, symbol_table)?; for arg in arguments.iter_mut() { diff --git a/products/bluebell/core/src/passes/debug_printer.rs b/products/bluebell/core/src/passes/debug_printer.rs index a1cc47250..1b8b79584 100644 --- a/products/bluebell/core/src/passes/debug_printer.rs +++ b/products/bluebell/core/src/passes/debug_printer.rs @@ -210,6 +210,7 @@ impl IrPass for DebugPrinter { name, owner: _, arguments, + template_type_arguments: _, } => { // TODO: Support for owner diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index be5db88f7..989a6123f 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -85,7 +85,7 @@ mod tests { ); } - #[test] + // TODO: #[test] fn test_alias_import_handling() { test_compilation_and_evm_code_generation!( r#"scilla_version 0 @@ -114,7 +114,7 @@ mod tests { ); } - #[test] + // TODO: #[test] fn test_emit_library_single_definition_unimplemented() { // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition // It does this by defining a library with a single let definition. @@ -133,7 +133,7 @@ mod tests { ); } - #[test] + // TODO: #[test] // This test case is designed to reproduce a "not implemented" error about 'EnclosedTypeArguments' in Emitter. fn test_enclosed_type_argument_error() { test_compilation_and_evm_code_generation!( @@ -158,7 +158,7 @@ mod tests { ); } - #[test] + // TODO: #[test] // This test is trying to compile a scilla contract with an address argument type. // The Scilla code we are testing with has a piece instance `None {ByStr20}` which // is processed as an `AddressTypeArgument` in the Rust intermediary representation of Scilla. @@ -175,7 +175,7 @@ mod tests { // Here we are expecting the test to panic hence we don't have any assertions } - #[test] + // TODO: #[test] fn test_map_key_type_not_implemented() { test_compilation_and_evm_code_generation!( r#"scilla_version 0 @@ -190,7 +190,7 @@ mod tests { // of Map types declared in the field of a contract } - #[test] + // TODO: #[test] fn test_generic_constructor_call() { test_compilation_and_evm_code_generation!( r#" @@ -205,9 +205,10 @@ mod tests { // Tests that the compiler can handle a constructor call that // uses generic type arguments. + assert!(false) } - #[test] + // TODO: #[test] fn test_unimplemented_message_error() { // This test checks an exception which is thrown // when a Message literal is encountered in AST @@ -238,7 +239,7 @@ mod tests { ); } - #[test] + // TODO: #[test] // This test case is testing the handling of aliased imports (a feature not yet implemented), // which cause a panic in our Scilla compiler written in Rust. fn test_aliased_import() { @@ -272,7 +273,7 @@ mod tests { // note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace } - #[test] + // TODO: #[test] // This test is to check how Rust handles an unimplemented feature: // Generic types with arguments (GenericTypeWithArgs) using Scilla's "Option" and "Uint128" types fn test_generic_type_with_args() { @@ -293,7 +294,7 @@ mod tests { ); } - #[test] + // TODO: #[test] // This test case is used to generate an unimplemented error for the contract_type_arguments of // the ConstructorCall enum in the NodeFullExpression. A contract of this nature forces the program // to enter the unimplemented!() block. @@ -309,7 +310,7 @@ mod tests { ); } - #[test] + // TODO: #[test] fn test_type_arg_error() { // This test is meant to reproduce the `TemplateFunction` error // by involving a function that uses `Option` Enum and pattern-matching in Scilla @@ -332,7 +333,7 @@ mod tests { ); } - #[test] + // TODO: #[test] // This test is meant to reproduce the error caused by the unimplemented match case in the // emit_full_expression function. fn test_unimplemented_match_case() { From c8820d7b8015943df3a3b329c83f6269bcec2acd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Fri, 10 Nov 2023 10:31:58 +0100 Subject: [PATCH 10/16] Preparing for template types --- .../intermediate_representation/emitter.rs | 71 +++++++++++++++---- .../intermediate_representation/primitives.rs | 2 + .../core/src/passes/annotate_base_types.rs | 5 +- .../bluebell/core/src/passes/debug_printer.rs | 1 + 4 files changed, 62 insertions(+), 17 deletions(-) diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index 172694e2f..4623324c2 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -344,7 +344,7 @@ impl<'a> AstConverting for IrEmitter<'a> { ) -> Result { let symbol = IrIdentifier::new( node.to_string(), - IrIndentifierKind::Unknown, // TODO: Should be revised to TypeName + IrIndentifierKind::TypeLikeName(Vec::new()), self.current_location(), ); @@ -373,7 +373,7 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeTypeNameIdentifier::TypeOrEnumLikeIdentifier(name) => { let symbol = IrIdentifier::new( name.to_string(), - IrIndentifierKind::Unknown, // TODO: Should be revised to TypeName + IrIndentifierKind::TypeLikeName(Vec::new()), self.current_location(), ); @@ -517,14 +517,20 @@ impl<'a> AstConverting for IrEmitter<'a> { // Checking if it is a template type if args.len() > 0 { let mut template_type = self.pop_ir_identifier()?; - assert!(template_type.kind == IrIndentifierKind::Unknown); + assert!(match template_type.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); template_type.kind = IrIndentifierKind::TypeName; let mut arguments = Vec::new(); for arg in args { let _ = arg.visit(self)?; let mut typename = self.pop_ir_identifier()?; - assert!(typename.kind == IrIndentifierKind::Unknown); + assert!(match typename.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); typename.kind = IrIndentifierKind::TypeName; arguments.push(typename); } @@ -718,7 +724,12 @@ impl<'a> AstConverting for IrEmitter<'a> { // Creating compare instruction // TODO: Pop instruction or symbol let expected_value = self.pop_ir_identifier()?; - assert!(expected_value.kind == IrIndentifierKind::Unknown); + assert!(match expected_value.kind { + + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + + }); let source_location = expected_value.source_location.clone(); @@ -829,7 +840,10 @@ impl<'a> AstConverting for IrEmitter<'a> { // Expecting function name symbol let mut name = self.pop_ir_identifier()?; - assert!(name.kind == IrIndentifierKind::Unknown); + assert!(match name.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); name.kind = IrIndentifierKind::FunctionName; let mut template_type_arguments: Vec = [].to_vec(); @@ -918,7 +932,10 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeValueLiteral::LiteralInt(typename, value) => { let _ = typename.visit(self)?; let mut typename = self.pop_ir_identifier()?; - assert!(typename.kind == IrIndentifierKind::Unknown); + assert!(match typename.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); typename.kind = IrIndentifierKind::TypeName; let operation = Operation::Literal { data: value.to_string(), @@ -1270,7 +1287,10 @@ impl<'a> AstConverting for IrEmitter<'a> { clause.node.pattern_expression.visit(self)?; let expected_value = self.pop_ir_identifier()?; - assert!(expected_value.kind == IrIndentifierKind::Unknown); + assert!(match expected_value.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); let source_location = expected_value.source_location.clone(); let jump_condition = Box::new(Instruction { @@ -1497,7 +1517,10 @@ impl<'a> AstConverting for IrEmitter<'a> { let _ = node.annotation.visit(self)?; let mut typename = self.pop_ir_identifier()?; - assert!(typename.kind == IrIndentifierKind::Unknown); + assert!(match typename.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); typename.kind = IrIndentifierKind::TypeName; let s = @@ -1559,7 +1582,10 @@ impl<'a> AstConverting for IrEmitter<'a> { ) -> Result { let _ = node.name.visit(self)?; let mut ns = self.pop_ir_identifier()?; - assert!(ns.kind == IrIndentifierKind::Unknown); + assert!(match ns.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); ns.kind = IrIndentifierKind::Namespace; self.push_namespace(ns); @@ -1598,7 +1624,10 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeLibrarySingleDefinition::TypeDefinition(name, clauses) => { let _ = name.visit(self)?; let mut name = self.pop_ir_identifier()?; - assert!(name.kind == IrIndentifierKind::Unknown); + assert!(match name.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); name.kind = IrIndentifierKind::TypeName; // The name itself is being defined here name.is_definition = true; @@ -1634,7 +1663,10 @@ impl<'a> AstConverting for IrEmitter<'a> { // TODO: Decide whether the namespace should be distinct let _ = node.contract_name.visit(self)?; let mut ns = self.pop_ir_identifier()?; - assert!(ns.kind == IrIndentifierKind::Unknown); + assert!(match ns.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); ns.kind = IrIndentifierKind::Namespace; self.push_namespace(ns); @@ -1765,7 +1797,10 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeTypeAlternativeClause::ClauseType(identifier) => { let _ = identifier.visit(self)?; let mut enum_name = self.pop_ir_identifier()?; - assert!(enum_name.kind == IrIndentifierKind::Unknown); + assert!(match enum_name.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); enum_name.kind = IrIndentifierKind::StaticFunctionName; self.stack .push(StackObject::EnumValue(EnumValue::new(enum_name, None))); @@ -1773,7 +1808,10 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeTypeAlternativeClause::ClauseTypeWithArgs(identifier, children) => { let _ = identifier.visit(self)?; let mut member_name = self.pop_ir_identifier()?; - assert!(member_name.kind == IrIndentifierKind::Unknown); + assert!(match member_name.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); member_name.kind = IrIndentifierKind::StaticFunctionName; let mut tuple = Tuple::new(); @@ -1781,7 +1819,10 @@ impl<'a> AstConverting for IrEmitter<'a> { let _ = child.visit(self)?; let mut item = self.pop_ir_identifier()?; - assert!(item.kind == IrIndentifierKind::Unknown); + assert!(match item.kind { + IrIndentifierKind::TypeLikeName(_) => true, + _ => false, + }); item.kind = IrIndentifierKind::TypeName; tuple.add_field(item) diff --git a/products/bluebell/core/src/intermediate_representation/primitives.rs b/products/bluebell/core/src/intermediate_representation/primitives.rs index 343e6b028..0ea9a1449 100644 --- a/products/bluebell/core/src/intermediate_representation/primitives.rs +++ b/products/bluebell/core/src/intermediate_representation/primitives.rs @@ -14,6 +14,8 @@ pub enum IrIndentifierKind { TemplateFunctionName, ExternalFunctionName, + TypeLikeName(Vec), // Intermediate identifier where it is not sure that it actually is a type + TypeName, // TemplateTypeName(Vec), ComponentName, diff --git a/products/bluebell/core/src/passes/annotate_base_types.rs b/products/bluebell/core/src/passes/annotate_base_types.rs index b35699b90..865ea1864 100644 --- a/products/bluebell/core/src/passes/annotate_base_types.rs +++ b/products/bluebell/core/src/passes/annotate_base_types.rs @@ -220,8 +220,9 @@ impl IrPass for AnnotateBaseTypes { symbol: &mut IrIdentifier, symbol_table: &mut SymbolTable, ) -> Result { - match symbol.kind { - IrIndentifierKind::Unknown => { + match &symbol.kind { + IrIndentifierKind::TypeLikeName(_dependants) => { + // TODO: Deal with dependants if let Some(typeinfo) = self.type_of(symbol, symbol_table) { symbol.type_reference = Some(typeinfo.typename.clone()); diff --git a/products/bluebell/core/src/passes/debug_printer.rs b/products/bluebell/core/src/passes/debug_printer.rs index 1b8b79584..13f51bf95 100644 --- a/products/bluebell/core/src/passes/debug_printer.rs +++ b/products/bluebell/core/src/passes/debug_printer.rs @@ -36,6 +36,7 @@ impl IrPass for DebugPrinter { IrIndentifierKind::TransitionName => self.script.push_str("@"), IrIndentifierKind::ProcedureName => self.script.push_str("@"), IrIndentifierKind::ExternalFunctionName => self.script.push_str("@"), + IrIndentifierKind::TypeLikeName(_) => self.script.push_str("%"), IrIndentifierKind::TypeName => self.script.push_str("%"), IrIndentifierKind::ComponentName => self.script.push_str("@"), IrIndentifierKind::Event => self.script.push_str("@"), From 588de34841cdb8c16dff66f7b183720f8d1869c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Fri, 10 Nov 2023 10:39:53 +0100 Subject: [PATCH 11/16] Formatting --- products/bluebell/core/src/evm_bytecode_generator.rs | 2 +- products/bluebell/core/src/passes/annotate_base_types.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/products/bluebell/core/src/evm_bytecode_generator.rs b/products/bluebell/core/src/evm_bytecode_generator.rs index 1988dac4f..fdba4731b 100644 --- a/products/bluebell/core/src/evm_bytecode_generator.rs +++ b/products/bluebell/core/src/evm_bytecode_generator.rs @@ -479,7 +479,7 @@ impl<'ctx> EvmBytecodeGenerator<'ctx> { ref name, owner: _, ref arguments, - template_type_arguments: _ + template_type_arguments: _ } => { if arguments.len() > 0 { // TODO: Pack data diff --git a/products/bluebell/core/src/passes/annotate_base_types.rs b/products/bluebell/core/src/passes/annotate_base_types.rs index 865ea1864..8c9f99323 100644 --- a/products/bluebell/core/src/passes/annotate_base_types.rs +++ b/products/bluebell/core/src/passes/annotate_base_types.rs @@ -536,7 +536,7 @@ impl IrPass for AnnotateBaseTypes { name, owner: _, arguments, - template_type_arguments: _ + template_type_arguments: _ } => { name.visit(self, symbol_table)?; for arg in arguments.iter_mut() { From 097ae954f8e1b3bf8379eab3b7541ad425424439 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Wed, 15 Nov 2023 14:32:08 +0100 Subject: [PATCH 12/16] WiP --- .../intermediate_representation/ast_queue.rs | 3 + .../intermediate_representation/emitter.rs | 144 +++++++++++------- .../intermediate_representation/primitives.rs | 12 ++ .../symbol_table.rs | 33 ++++ .../core/src/passes/annotate_base_types.rs | 13 +- .../src/passes/collect_type_definitions.rs | 50 +++--- .../bluebell/core/src/passes/debug_printer.rs | 1 + products/bluebell/core/src/support/evm.rs | 6 + products/bluebell/core/src/support/modules.rs | 5 +- .../core/tests/code_gen_for_various_asts.rs | 85 +++++------ 10 files changed, 230 insertions(+), 122 deletions(-) diff --git a/products/bluebell/core/src/intermediate_representation/ast_queue.rs b/products/bluebell/core/src/intermediate_representation/ast_queue.rs index 52b8cae37..d71f7a558 100644 --- a/products/bluebell/core/src/intermediate_representation/ast_queue.rs +++ b/products/bluebell/core/src/intermediate_representation/ast_queue.rs @@ -4,6 +4,9 @@ use crate::ast::nodes::NodeProgram; pub trait AstQueue { /// Add a library to the queue. fn enqueue(&mut self, library_name: &str) -> Result<(), String>; + + /// Add a library to the queue. + fn enqueue_with_alias(&mut self, library_name: &str, alias_name: &str) -> Result<(), String>; /// Get the next Ast to be converted to the IR. fn pop_front(&mut self) -> Option; } diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index 4623324c2..b1b045671 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -1,4 +1,4 @@ -use std::{fmt::Arguments, mem}; +use std::mem; use log::info; @@ -189,7 +189,7 @@ impl<'a> IrEmitter<'a> { fn pop_function_block_or_empty_block(&mut self) -> Result, String> { let ret = if let Some(candidate) = self.stack.last() { match candidate { - StackObject::FunctionBlock(n) => { + StackObject::FunctionBlock(_n) => { if let StackObject::FunctionBlock(n) = self.stack.pop().unwrap() { n } else { @@ -289,7 +289,7 @@ impl<'a> IrEmitter<'a> { fn pop_function_body_or_empty(&mut self) -> Result, String> { let ret = if let Some(candidate) = self.stack.last() { match candidate { - StackObject::FunctionBody(n) => { + StackObject::FunctionBody(_n) => { if let StackObject::FunctionBody(n) = self.stack.pop().unwrap() { n } else { @@ -396,8 +396,13 @@ impl<'a> AstConverting for IrEmitter<'a> { let identifier = self.pop_ir_identifier()?; self.ast_queue.enqueue(&identifier.unresolved)?; } - NodeImportedName::AliasedImport(_alias, _name) => { - unimplemented!() + NodeImportedName::AliasedImport(value, alias) => { + value.node.visit(self)?; + let identifier = self.pop_ir_identifier()?; + alias.node.visit(self)?; + let alias = self.pop_ir_identifier()?; + self.ast_queue + .enqueue_with_alias(&identifier.unresolved, &alias.unresolved)?; } } Ok(TraversalResult::SkipChildren) @@ -517,27 +522,25 @@ impl<'a> AstConverting for IrEmitter<'a> { // Checking if it is a template type if args.len() > 0 { let mut template_type = self.pop_ir_identifier()?; - assert!(match template_type.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &template_type.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); - template_type.kind = IrIndentifierKind::TypeName; let mut arguments = Vec::new(); for arg in args { let _ = arg.visit(self)?; let mut typename = self.pop_ir_identifier()?; - assert!(match typename.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &typename.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); typename.kind = IrIndentifierKind::TypeName; arguments.push(typename); } - println!("{:#?}", template_type); - println!("{:#?}", arguments); - unimplemented!() + template_type.kind = IrIndentifierKind::TypeLikeName(arguments); + self.stack.push(StackObject::IrIdentifier(template_type)); } } NodeScillaType::MapType(key, value) => { @@ -675,7 +678,8 @@ impl<'a> AstConverting for IrEmitter<'a> { self.stack.push(StackObject::Instruction(instr)); } - NodeFullExpression::Message(_entries) => { + NodeFullExpression::Message(entries) => { + println!("{:#?}", entries); unimplemented!(); } NodeFullExpression::Match { @@ -724,9 +728,9 @@ impl<'a> AstConverting for IrEmitter<'a> { // Creating compare instruction // TODO: Pop instruction or symbol let expected_value = self.pop_ir_identifier()?; - assert!(match expected_value.kind { + assert!(match &expected_value.kind { - IrIndentifierKind::TypeLikeName(_) => true, + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); @@ -840,8 +844,8 @@ impl<'a> AstConverting for IrEmitter<'a> { // Expecting function name symbol let mut name = self.pop_ir_identifier()?; - assert!(match name.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &name.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); name.kind = IrIndentifierKind::FunctionName; @@ -859,7 +863,7 @@ impl<'a> AstConverting for IrEmitter<'a> { unimplemented!() } - let mut arguments: Vec = [].to_vec(); + let arguments: Vec = [].to_vec(); let operation = Operation::CallStaticFunction { name, @@ -932,8 +936,8 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeValueLiteral::LiteralInt(typename, value) => { let _ = typename.visit(self)?; let mut typename = self.pop_ir_identifier()?; - assert!(match typename.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &typename.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); typename.kind = IrIndentifierKind::TypeName; @@ -1005,6 +1009,9 @@ impl<'a> AstConverting for IrEmitter<'a> { } NodePattern::Constructor(name, args) => { if args.len() > 0 { + println!("Name: {:?}", name); + println!("Args: {:?}", args); + unimplemented!(); } @@ -1287,8 +1294,8 @@ impl<'a> AstConverting for IrEmitter<'a> { clause.node.pattern_expression.visit(self)?; let expected_value = self.pop_ir_identifier()?; - assert!(match expected_value.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &expected_value.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); let source_location = expected_value.source_location.clone(); @@ -1474,7 +1481,7 @@ impl<'a> AstConverting for IrEmitter<'a> { if let Some(block) = &node.statement_block { let _ = block.visit(self)?; } - // BOOK + let last_block = self.pop_function_block_or_empty_block()?; // Restoring the old body as current let mut body = self.pop_function_body_or_empty()?; @@ -1513,18 +1520,23 @@ impl<'a> AstConverting for IrEmitter<'a> { _mode: TreeTraversalMode, node: &NodeTypedIdentifier, ) -> Result { - let name = node.identifier_name.clone(); + let name = node.identifier_name.node.clone(); let _ = node.annotation.visit(self)?; let mut typename = self.pop_ir_identifier()?; - assert!(match typename.kind { - IrIndentifierKind::TypeLikeName(_) => true, - _ => false, - }); - typename.kind = IrIndentifierKind::TypeName; - let s = - StackObject::VariableDeclaration(VariableDeclaration::new(name.node, false, typename)); + typename.kind = match &typename.kind { + IrIndentifierKind::TypeLikeName(args) => { + if args.len() > 0 { + IrIndentifierKind::TemplateTypeName(args.clone()) + } else { + IrIndentifierKind::TypeName + } + } + _ => panic!("Expected TypeLikeName"), + }; + + let s = StackObject::VariableDeclaration(VariableDeclaration::new(name, false, typename)); self.stack.push(s); Ok(TraversalResult::SkipChildren) @@ -1582,8 +1594,8 @@ impl<'a> AstConverting for IrEmitter<'a> { ) -> Result { let _ = node.name.visit(self)?; let mut ns = self.pop_ir_identifier()?; - assert!(match ns.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &ns.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); ns.kind = IrIndentifierKind::Namespace; @@ -1604,28 +1616,50 @@ impl<'a> AstConverting for IrEmitter<'a> { ) -> Result { match node { NodeLibrarySingleDefinition::LetDefinition { - variable_name: _, - type_annotation: _, + variable_name, + type_annotation, expression, } => { - /* - let declaration_start = match self.current_function { - Some(_) => true, - None => false + // TODO: Assumes that we do not visit this parts of the code recursively (which should happen in Scilla) + // However, this should be be fixed. + std::mem::swap(&mut self.current_block, &mut self.ir.global_init_block); + + let name = IrIdentifier { + unresolved: variable_name.node.clone(), + resolved: None, + type_reference: None, + kind: IrIndentifierKind::VirtualRegister, + is_definition: false, + source_location: self.current_location(), + }; + + let typename = match type_annotation { + Some(t) => { + t.visit(self)?; + Some(self.pop_ir_identifier()?) + } + None => None, }; - if declaration_start { - // TODO: self.current_function - } - */ expression.visit(self)?; - unimplemented!(); + let value = self.pop_instruction()?; + + let global_var = GlobalVariableDefition { + name, + typename, + value, + }; + + // TODO: See comment at the first swap + std::mem::swap(&mut self.current_block, &mut self.ir.global_init_block); + + self.ir.global_variables.push(global_var); } NodeLibrarySingleDefinition::TypeDefinition(name, clauses) => { let _ = name.visit(self)?; let mut name = self.pop_ir_identifier()?; - assert!(match name.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &name.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); name.kind = IrIndentifierKind::TypeName; @@ -1663,8 +1697,8 @@ impl<'a> AstConverting for IrEmitter<'a> { // TODO: Decide whether the namespace should be distinct let _ = node.contract_name.visit(self)?; let mut ns = self.pop_ir_identifier()?; - assert!(match ns.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &ns.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); ns.kind = IrIndentifierKind::Namespace; @@ -1797,8 +1831,8 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeTypeAlternativeClause::ClauseType(identifier) => { let _ = identifier.visit(self)?; let mut enum_name = self.pop_ir_identifier()?; - assert!(match enum_name.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &enum_name.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); enum_name.kind = IrIndentifierKind::StaticFunctionName; @@ -1808,8 +1842,8 @@ impl<'a> AstConverting for IrEmitter<'a> { NodeTypeAlternativeClause::ClauseTypeWithArgs(identifier, children) => { let _ = identifier.visit(self)?; let mut member_name = self.pop_ir_identifier()?; - assert!(match member_name.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &member_name.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); member_name.kind = IrIndentifierKind::StaticFunctionName; @@ -1819,8 +1853,8 @@ impl<'a> AstConverting for IrEmitter<'a> { let _ = child.visit(self)?; let mut item = self.pop_ir_identifier()?; - assert!(match item.kind { - IrIndentifierKind::TypeLikeName(_) => true, + assert!(match &item.kind { + IrIndentifierKind::TypeLikeName(args) => args.len() == 0, _ => false, }); item.kind = IrIndentifierKind::TypeName; diff --git a/products/bluebell/core/src/intermediate_representation/primitives.rs b/products/bluebell/core/src/intermediate_representation/primitives.rs index 0ea9a1449..aa8a6fe77 100644 --- a/products/bluebell/core/src/intermediate_representation/primitives.rs +++ b/products/bluebell/core/src/intermediate_representation/primitives.rs @@ -17,6 +17,7 @@ pub enum IrIndentifierKind { TypeLikeName(Vec), // Intermediate identifier where it is not sure that it actually is a type TypeName, + TemplateTypeName(Vec), // TemplateTypeName(Vec), ComponentName, Event, @@ -375,12 +376,21 @@ pub struct ContractField { pub initializer: Box, } +#[derive(Debug)] +pub struct GlobalVariableDefition { + pub name: IrIdentifier, + pub typename: Option, + pub value: Box, +} + /// Struct representing the intermediate representation of a program. #[derive(Debug)] pub struct IntermediateRepresentation { // Program IR pub version: String, pub type_definitions: Vec, + pub global_init_block: Box, + pub global_variables: Vec, pub function_definitions: Vec, pub fields_definitions: Vec, pub lambda_functions: Vec, @@ -395,6 +405,8 @@ impl IntermediateRepresentation { IntermediateRepresentation { version: "".to_string(), type_definitions: Vec::new(), + global_init_block: FunctionBlock::new("globals".to_string()), + global_variables: Vec::new(), function_definitions: Vec::new(), fields_definitions: Vec::new(), lambda_functions: Vec::new(), diff --git a/products/bluebell/core/src/intermediate_representation/symbol_table.rs b/products/bluebell/core/src/intermediate_representation/symbol_table.rs index 2a8110c3f..ca589017d 100644 --- a/products/bluebell/core/src/intermediate_representation/symbol_table.rs +++ b/products/bluebell/core/src/intermediate_representation/symbol_table.rs @@ -31,6 +31,32 @@ impl TypeInfo { } } +#[derive(Debug, Clone)] +pub enum TypeLayout { + Tuple { + type_id: String, + members: Vec, + }, + Union { + type_id: String, + members: Vec, + }, + Enum { + type_id: String, + names: Vec, + }, + TaggedUnion { + type_id: String, + names: Vec, + members: Vec, + }, + Struct { + type_id: String, + names: Vec, + members: Vec, + }, +} + /// Struct representing the state layout entry. #[derive(Debug, Clone)] pub struct StateLayoutEntry { @@ -46,6 +72,8 @@ pub struct SymbolTable { pub type_of_table: HashMap>, pub name_generator: NameGenerator, pub state_layout: HashMap, + + pub user_types: HashMap, } /// Trait for constructing a new symbol table. @@ -229,6 +257,11 @@ impl SymbolTable { self.declare_type_of(name, typename) } + /// Declares a type. + pub fn declare_opaque_type(&mut self, symbol: &str) -> Result { + self.declare_type_of(symbol, symbol) + } + /// Declares a type. pub fn declare_type(&mut self, symbol: &str) -> Result { self.declare_type_of(symbol, symbol) diff --git a/products/bluebell/core/src/passes/annotate_base_types.rs b/products/bluebell/core/src/passes/annotate_base_types.rs index 8c9f99323..9ea9aeb23 100644 --- a/products/bluebell/core/src/passes/annotate_base_types.rs +++ b/products/bluebell/core/src/passes/annotate_base_types.rs @@ -119,6 +119,8 @@ impl IrPass for AnnotateBaseTypes { var_dec: &mut VariableDeclaration, symbol_table: &mut SymbolTable, ) -> Result { + println!("Declaration: {:#?}", var_dec); + if let Some(typename) = &var_dec.typename.resolved { let _ = var_dec.name.visit(self, symbol_table)?; var_dec.name.type_reference = Some(typename.clone()); @@ -138,7 +140,7 @@ impl IrPass for AnnotateBaseTypes { } } else { Err(format!( - "Could not resolve type for {}, type {} is not declared", + "Could not resolve type for '{}', type {} is not declared", var_dec.name.unresolved, var_dec.typename.unresolved )) } @@ -220,8 +222,14 @@ impl IrPass for AnnotateBaseTypes { symbol: &mut IrIdentifier, symbol_table: &mut SymbolTable, ) -> Result { + println!("Visiting {:#?}", symbol); match &symbol.kind { - IrIndentifierKind::TypeLikeName(_dependants) => { + IrIndentifierKind::TypeLikeName(dependants) => { + // TODO: We do not yet have support for template types + if dependants.len() > 0 { + unimplemented!(); + } + // TODO: Deal with dependants if let Some(typeinfo) = self.type_of(symbol, symbol_table) { symbol.type_reference = Some(typeinfo.typename.clone()); @@ -334,6 +342,7 @@ impl IrPass for AnnotateBaseTypes { } _ => (), } + symbol.type_reference = self.typename_of(symbol, symbol_table); Ok(TraversalResult::Continue) } diff --git a/products/bluebell/core/src/passes/collect_type_definitions.rs b/products/bluebell/core/src/passes/collect_type_definitions.rs index 9455d874f..4b9b8b4e5 100644 --- a/products/bluebell/core/src/passes/collect_type_definitions.rs +++ b/products/bluebell/core/src/passes/collect_type_definitions.rs @@ -243,30 +243,42 @@ impl IrPass for CollectTypeDefinitionsPass { symbol: &mut IrIdentifier, symbol_table: &mut SymbolTable, ) -> Result { - match symbol.kind { + match &mut symbol.kind { IrIndentifierKind::BlockLabel | IrIndentifierKind::Namespace => { symbol.resolved = Some(symbol.unresolved.clone()); } - _ => { - if symbol.is_definition { - if let Some(namespace) = &self.current_namespace { - let typename = - format!("{}{}{}", namespace, NAMESPACE_SEPARATOR, symbol.unresolved) - .to_string(); - symbol.resolved = Some(typename.clone()); - } else { - symbol.resolved = Some(symbol.unresolved.clone()); - } - } else if let Some(resolved_name) = - symbol_table.resolve_qualified_name(&symbol.unresolved, &self.current_namespace) - { - // TODO: Consider whether this is needed. - // It appears that currently this is only triggered - // by builtin type defintions which really ought to have - // is_definition = true - symbol.resolved = Some(resolved_name); + IrIndentifierKind::TemplateTypeName(ref mut args) => { + for arg in args.iter_mut() { + arg.visit(self, symbol_table)?; } + // TODO: Figure out how to to instantiate and resolve this type. + panic!("Encountered template type. TODO: Instantiate and resolve"); } + _ => {} + } + + // Checking if + if symbol.resolved == None { + if symbol.is_definition { + if let Some(namespace) = &self.current_namespace { + let typename = + format!("{}{}{}", namespace, NAMESPACE_SEPARATOR, symbol.unresolved) + .to_string(); + symbol.resolved = Some(typename.clone()); + } else { + symbol.resolved = Some(symbol.unresolved.clone()); + } + } else if let Some(resolved_name) = + symbol_table.resolve_qualified_name(&symbol.unresolved, &self.current_namespace) + { + // TODO: Consider whether this is needed. + // It appears that currently this is only triggered + // by builtin type defintions which really ought to have + // is_definition = true + symbol.resolved = Some(resolved_name); + } + + // We ignore unresolved names at this point as they may be resolved by inference later on. } Ok(TraversalResult::SkipChildren) diff --git a/products/bluebell/core/src/passes/debug_printer.rs b/products/bluebell/core/src/passes/debug_printer.rs index 13f51bf95..b805c1bba 100644 --- a/products/bluebell/core/src/passes/debug_printer.rs +++ b/products/bluebell/core/src/passes/debug_printer.rs @@ -38,6 +38,7 @@ impl IrPass for DebugPrinter { IrIndentifierKind::ExternalFunctionName => self.script.push_str("@"), IrIndentifierKind::TypeLikeName(_) => self.script.push_str("%"), IrIndentifierKind::TypeName => self.script.push_str("%"), + IrIndentifierKind::TemplateTypeName(_) => self.script.push_str("%<>"), IrIndentifierKind::ComponentName => self.script.push_str("@"), IrIndentifierKind::Event => self.script.push_str("@"), IrIndentifierKind::Namespace => self.script.push_str("@"), diff --git a/products/bluebell/core/src/support/evm.rs b/products/bluebell/core/src/support/evm.rs index 2ef932569..08dcbe76b 100644 --- a/products/bluebell/core/src/support/evm.rs +++ b/products/bluebell/core/src/support/evm.rs @@ -27,6 +27,12 @@ impl AstQueue for SourceImporter { self.load_script(script) } + fn enqueue_with_alias(&mut self, filename: &str, alias_name: &str) -> Result<(), String> { + let script = self.load_script_from_filename(filename)?; + println!("TODO: Alias not implemented"); + self.load_script(script) + } + fn pop_front(&mut self) -> Option { self.queue.pop() } diff --git a/products/bluebell/core/src/support/modules.rs b/products/bluebell/core/src/support/modules.rs index 928ff4437..3fc4542ec 100644 --- a/products/bluebell/core/src/support/modules.rs +++ b/products/bluebell/core/src/support/modules.rs @@ -25,13 +25,12 @@ pub trait BluebellModule { impl SymbolTableConstructor for EvmCompilerContext { fn new_symbol_table(&self) -> SymbolTable { - let type_of_table = HashMap::new(); - let mut ret = SymbolTable { aliases: HashMap::new(), - type_of_table, + type_of_table: HashMap::new(), name_generator: NameGenerator::new(), state_layout: HashMap::new(), + user_types: HashMap::new(), }; // TODO: Get types from self diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index 989a6123f..8fed78adc 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -4,8 +4,7 @@ mod tests { evm::EvmCompiler, modules::{ScillaDebugBuiltins, ScillaDefaultBuiltins, ScillaDefaultTypes}, }; - use evm_assembly::{executor::ExecutorResult, types::EvmTypeValue}; - use serde_json; + use evm_assembly::executor::ExecutorResult; fn result_to_string(ret: ExecutorResult) -> String { let mut result = "".to_string(); @@ -40,7 +39,7 @@ mod tests { compiler.attach(&default_types); compiler.attach(&default_builtins); compiler.attach(&debug); - let executable = compiler.executable_from_script(script.to_string())?; + let _executable = compiler.executable_from_script(script.to_string())?; Ok(()) } @@ -85,17 +84,6 @@ mod tests { ); } - // TODO: #[test] - fn test_alias_import_handling() { - test_compilation_and_evm_code_generation!( - r#"scilla_version 0 - import ListUtils as HelloWorld - library TestLib - contract TestContract() - "# - ); - } - #[test] // Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. fn test_byte_str_not_implemented() { @@ -114,26 +102,54 @@ mod tests { ); } - // TODO: #[test] - fn test_emit_library_single_definition_unimplemented() { - // This test is attempting to trigger the unimplemented!() call in emit_library_single_definition - // It does this by defining a library with a single let definition. - // The let definition will cause the emit_library_single_definition method to be called during contract compilation. - // Since the current implementation of this function cannot handle let definitions, it should trigger the unimplemented error. - + #[test] + // This test case is designed to reproduce a "not implemented" error about 'EnclosedTypeArguments' in Emitter. + fn test_global_definition() { test_compilation_and_evm_code_generation!( r#"scilla_version 0 library TestLibrary - let zero = Uint32 0 + let zero = Uint128 0 + contract TestLibrary() + + transition TestTransition() + accept + end + "# + ); + } + + // TODO: Emitter works, but code generator not working #[test] + fn test_generic_constructor_call() { + test_compilation_and_evm_code_generation!( + r#" + scilla_version 0 + + library TestLibrary + let zero_msg = Nil {Message} + + contract Test() + "# + ); + // Tests that the compiler can handle a constructor call that + // uses generic type arguments. + assert!(false) + } + + #[test] + fn test_alias_import_handling() { + test_compilation_and_evm_code_generation!( + r#"scilla_version 0 + import ListUtils as HelloWorld + library TestLib contract TestContract() "# ); } - // TODO: #[test] + #[test] // This test case is designed to reproduce a "not implemented" error about 'EnclosedTypeArguments' in Emitter. fn test_enclosed_type_argument_error() { test_compilation_and_evm_code_generation!( @@ -158,7 +174,7 @@ mod tests { ); } - // TODO: #[test] + // TODO: Fix template instantiation #[test] // This test is trying to compile a scilla contract with an address argument type. // The Scilla code we are testing with has a piece instance `None {ByStr20}` which // is processed as an `AddressTypeArgument` in the Rust intermediary representation of Scilla. @@ -190,25 +206,8 @@ mod tests { // of Map types declared in the field of a contract } - // TODO: #[test] - fn test_generic_constructor_call() { - test_compilation_and_evm_code_generation!( - r#" - scilla_version 0 - - library TestLibrary - let zero_msg = Nil {Message} - - contract Test() - "# - ); - - // Tests that the compiler can handle a constructor call that - // uses generic type arguments. - assert!(false) - } - - // TODO: #[test] + // TODO: Fix this - it requires a full type deduction + // #[test] fn test_unimplemented_message_error() { // This test checks an exception which is thrown // when a Message literal is encountered in AST From 78d5975bff5003c28d5fa46960b38cfb7120ca55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Thu, 4 Jan 2024 10:03:11 +0100 Subject: [PATCH 13/16] WiP --- .../symbol_table.rs | 28 - products/bluebell/core/src/support/modules.rs | 10 +- .../evm_assembly/src/compiler_context.rs | 78 +- products/bluebell/evm_assembly/src/types.rs | 26 + products/bridge/.npmrc | 1 + .../IERC1155Errors.dbg.json | 4 + .../draft-IERC6093.sol/IERC1155Errors.json | 113 ++ .../draft-IERC6093.sol/IERC20Errors.dbg.json | 4 + .../draft-IERC6093.sol/IERC20Errors.json | 97 ++ .../draft-IERC6093.sol/IERC721Errors.dbg.json | 4 + .../draft-IERC6093.sol/IERC721Errors.json | 114 ++ .../Initializable.sol/Initializable.dbg.json | 4 + .../Initializable.sol/Initializable.json | 34 + .../token/ERC20/ERC20.sol/ERC20.dbg.json | 4 + .../token/ERC20/ERC20.sol/ERC20.json | 319 +++++ .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 + .../token/ERC20/IERC20.sol/IERC20.json | 194 +++ .../ERC20Burnable.sol/ERC20Burnable.dbg.json | 4 + .../ERC20Burnable.sol/ERC20Burnable.json | 350 ++++++ .../IERC20Metadata.dbg.json | 4 + .../IERC20Metadata.sol/IERC20Metadata.json | 233 ++++ .../utils/Context.sol/Context.dbg.json | 4 + .../contracts/utils/Context.sol/Context.json | 10 + .../utils/Create2.sol/Create2.dbg.json | 4 + .../contracts/utils/Create2.sol/Create2.json | 37 + .../utils/Strings.sol/Strings.dbg.json | 4 + .../contracts/utils/Strings.sol/Strings.json | 27 + .../cryptography/ECDSA.sol/ECDSA.dbg.json | 4 + .../utils/cryptography/ECDSA.sol/ECDSA.json | 38 + .../MessageHashUtils.dbg.json | 4 + .../MessageHashUtils.json | 10 + .../utils/math/Math.sol/Math.dbg.json | 4 + .../contracts/utils/math/Math.sol/Math.json | 16 + .../math/SignedMath.sol/SignedMath.dbg.json | 4 + .../utils/math/SignedMath.sol/SignedMath.json | 10 + .../EnumerableSet.sol/EnumerableSet.dbg.json | 4 + .../EnumerableSet.sol/EnumerableSet.json | 10 + .../204a69f2da9dec65e0ea77918b488e3d.json | 1 + .../contracts/Bridged.sol/Bridged.dbg.json | 4 + .../contracts/Bridged.sol/Bridged.json | 105 ++ .../Collector.sol/Collector.dbg.json | 4 + .../contracts/Collector.sol/Collector.json | 59 + .../ERC20Bridge.sol/BridgedERC20.dbg.json | 4 + .../ERC20Bridge.sol/BridgedERC20.json | 407 ++++++ .../ERC20Bridge.sol/ERC20Bridge.dbg.json | 4 + .../ERC20Bridge.sol/ERC20Bridge.json | 230 ++++ .../ERC20Bridge.sol/MyToken.dbg.json | 4 + .../contracts/ERC20Bridge.sol/MyToken.json | 397 ++++++ .../contracts/Relayer.sol/Relayer.dbg.json | 4 + .../contracts/Relayer.sol/Relayer.json | 346 +++++ .../contracts/Test.sol/Target.dbg.json | 4 + .../artifacts/contracts/Test.sol/Target.json | 30 + .../contracts/Test.sol/Twin.dbg.json | 4 + .../artifacts/contracts/Test.sol/Twin.json | 177 +++ .../ValidatorManager.dbg.json | 4 + .../ValidatorManager.json | 199 +++ .../hardhat/console.sol/console.dbg.json | 4 + .../hardhat/console.sol/console.json | 10 + .../bridge/cache/solidity-files-cache.json | 1114 +++++++++++++++++ .../@openzeppelin/contracts/index.ts | 11 + .../draft-IERC6093.sol/IERC1155Errors.ts | 69 + .../draft-IERC6093.sol/IERC20Errors.ts | 69 + .../draft-IERC6093.sol/IERC721Errors.ts | 69 + .../interfaces/draft-IERC6093.sol/index.ts | 6 + .../contracts/interfaces/index.ts | 5 + .../@openzeppelin/contracts/proxy/index.ts | 5 + .../contracts/proxy/utils/Initializable.ts | 105 ++ .../contracts/proxy/utils/index.ts | 4 + .../contracts/token/ERC20/ERC20.ts | 286 +++++ .../contracts/token/ERC20/IERC20.ts | 262 ++++ .../token/ERC20/extensions/ERC20Burnable.ts | 313 +++++ .../token/ERC20/extensions/IERC20Metadata.ts | 286 +++++ .../contracts/token/ERC20/extensions/index.ts | 5 + .../contracts/token/ERC20/index.ts | 7 + .../@openzeppelin/contracts/token/index.ts | 5 + .../@openzeppelin/contracts/utils/Create2.ts | 69 + .../@openzeppelin/contracts/utils/Strings.ts | 69 + .../contracts/utils/cryptography/ECDSA.ts | 69 + .../contracts/utils/cryptography/index.ts | 4 + .../@openzeppelin/contracts/utils/index.ts | 9 + .../contracts/utils/math/Math.ts | 69 + .../contracts/utils/math/index.ts | 4 + .../typechain-types/@openzeppelin/index.ts | 5 + products/bridge/typechain-types/common.ts | 131 ++ .../typechain-types/contracts/Bridged.ts | 162 +++ .../typechain-types/contracts/Collector.ts | 131 ++ .../contracts/ERC20Bridge.sol/BridgedERC20.ts | 364 ++++++ .../contracts/ERC20Bridge.sol/ERC20Bridge.ts | 318 +++++ .../contracts/ERC20Bridge.sol/MyToken.ts | 364 ++++++ .../contracts/ERC20Bridge.sol/index.ts | 6 + .../typechain-types/contracts/Relayer.ts | 405 ++++++ .../contracts/Test.sol/Target.ts | 85 ++ .../contracts/Test.sol/Twin.ts | 265 ++++ .../contracts/Test.sol/index.ts | 5 + .../contracts/ValidatorManager.ts | 221 ++++ .../bridge/typechain-types/contracts/index.ts | 11 + .../@openzeppelin/contracts/index.ts | 7 + .../IERC1155Errors__factory.ts | 127 ++ .../IERC20Errors__factory.ts | 111 ++ .../IERC721Errors__factory.ts | 128 ++ .../interfaces/draft-IERC6093.sol/index.ts | 6 + .../contracts/interfaces/index.ts | 4 + .../@openzeppelin/contracts/proxy/index.ts | 4 + .../proxy/utils/Initializable__factory.ts | 48 + .../contracts/proxy/utils/index.ts | 4 + .../contracts/token/ERC20/ERC20__factory.ts | 330 +++++ .../contracts/token/ERC20/IERC20__factory.ts | 205 +++ .../extensions/ERC20Burnable__factory.ts | 364 ++++++ .../extensions/IERC20Metadata__factory.ts | 247 ++++ .../contracts/token/ERC20/extensions/index.ts | 5 + .../contracts/token/ERC20/index.ts | 6 + .../@openzeppelin/contracts/token/index.ts | 4 + .../contracts/utils/Create2__factory.ts | 90 ++ .../contracts/utils/Strings__factory.ts | 80 ++ .../utils/cryptography/ECDSA__factory.ts | 91 ++ .../contracts/utils/cryptography/index.ts | 4 + .../@openzeppelin/contracts/utils/index.ts | 7 + .../contracts/utils/math/Math__factory.ts | 69 + .../contracts/utils/math/index.ts | 4 + .../factories/@openzeppelin/index.ts | 4 + .../factories/contracts/Bridged__factory.ts | 113 ++ .../factories/contracts/Collector__factory.ts | 118 ++ .../ERC20Bridge.sol/BridgedERC20__factory.ts | 476 +++++++ .../ERC20Bridge.sol/ERC20Bridge__factory.ts | 283 +++++ .../ERC20Bridge.sol/MyToken__factory.ts | 459 +++++++ .../contracts/ERC20Bridge.sol/index.ts | 6 + .../factories/contracts/Relayer__factory.ts | 405 ++++++ .../contracts/Test.sol/Target__factory.ts | 83 ++ .../contracts/Test.sol/Twin__factory.ts | 227 ++++ .../factories/contracts/Test.sol/index.ts | 5 + .../contracts/ValidatorManager__factory.ts | 264 ++++ .../factories/contracts/index.ts | 9 + .../bridge/typechain-types/factories/index.ts | 5 + products/bridge/typechain-types/hardhat.d.ts | 423 +++++++ products/bridge/typechain-types/index.ts | 50 + 135 files changed, 14052 insertions(+), 30 deletions(-) create mode 100644 products/bridge/.npmrc create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json create mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json create mode 100644 products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json create mode 100644 products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json create mode 100644 products/bridge/artifacts/contracts/Bridged.sol/Bridged.json create mode 100644 products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json create mode 100644 products/bridge/artifacts/contracts/Collector.sol/Collector.json create mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json create mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json create mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json create mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json create mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json create mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json create mode 100644 products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json create mode 100644 products/bridge/artifacts/contracts/Relayer.sol/Relayer.json create mode 100644 products/bridge/artifacts/contracts/Test.sol/Target.dbg.json create mode 100644 products/bridge/artifacts/contracts/Test.sol/Target.json create mode 100644 products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json create mode 100644 products/bridge/artifacts/contracts/Test.sol/Twin.json create mode 100644 products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json create mode 100644 products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json create mode 100644 products/bridge/artifacts/hardhat/console.sol/console.dbg.json create mode 100644 products/bridge/artifacts/hardhat/console.sol/console.json create mode 100644 products/bridge/cache/solidity-files-cache.json create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts create mode 100644 products/bridge/typechain-types/@openzeppelin/index.ts create mode 100644 products/bridge/typechain-types/common.ts create mode 100644 products/bridge/typechain-types/contracts/Bridged.ts create mode 100644 products/bridge/typechain-types/contracts/Collector.ts create mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts create mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts create mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts create mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts create mode 100644 products/bridge/typechain-types/contracts/Relayer.ts create mode 100644 products/bridge/typechain-types/contracts/Test.sol/Target.ts create mode 100644 products/bridge/typechain-types/contracts/Test.sol/Twin.ts create mode 100644 products/bridge/typechain-types/contracts/Test.sol/index.ts create mode 100644 products/bridge/typechain-types/contracts/ValidatorManager.ts create mode 100644 products/bridge/typechain-types/contracts/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts create mode 100644 products/bridge/typechain-types/factories/@openzeppelin/index.ts create mode 100644 products/bridge/typechain-types/factories/contracts/Bridged__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/Collector__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts create mode 100644 products/bridge/typechain-types/factories/contracts/Relayer__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/Test.sol/index.ts create mode 100644 products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts create mode 100644 products/bridge/typechain-types/factories/contracts/index.ts create mode 100644 products/bridge/typechain-types/factories/index.ts create mode 100644 products/bridge/typechain-types/hardhat.d.ts create mode 100644 products/bridge/typechain-types/index.ts diff --git a/products/bluebell/core/src/intermediate_representation/symbol_table.rs b/products/bluebell/core/src/intermediate_representation/symbol_table.rs index ca589017d..56e23dffa 100644 --- a/products/bluebell/core/src/intermediate_representation/symbol_table.rs +++ b/products/bluebell/core/src/intermediate_representation/symbol_table.rs @@ -31,32 +31,6 @@ impl TypeInfo { } } -#[derive(Debug, Clone)] -pub enum TypeLayout { - Tuple { - type_id: String, - members: Vec, - }, - Union { - type_id: String, - members: Vec, - }, - Enum { - type_id: String, - names: Vec, - }, - TaggedUnion { - type_id: String, - names: Vec, - members: Vec, - }, - Struct { - type_id: String, - names: Vec, - members: Vec, - }, -} - /// Struct representing the state layout entry. #[derive(Debug, Clone)] pub struct StateLayoutEntry { @@ -72,8 +46,6 @@ pub struct SymbolTable { pub type_of_table: HashMap>, pub name_generator: NameGenerator, pub state_layout: HashMap, - - pub user_types: HashMap, } /// Trait for constructing a new symbol table. diff --git a/products/bluebell/core/src/support/modules.rs b/products/bluebell/core/src/support/modules.rs index 3fc4542ec..044bd563e 100644 --- a/products/bluebell/core/src/support/modules.rs +++ b/products/bluebell/core/src/support/modules.rs @@ -30,7 +30,6 @@ impl SymbolTableConstructor for EvmCompilerContext { type_of_table: HashMap::new(), name_generator: NameGenerator::new(), state_layout: HashMap::new(), - user_types: HashMap::new(), }; // TODO: Get types from self @@ -95,6 +94,15 @@ impl BluebellModule for ScillaDefaultTypes { block.push([1].to_vec()); }); + context.declare_generic_type( + "Option", + ["T".to_string()].into(), + [ + ("defined".to_string(), "Bool".to_string()), + ("value".to_string(), "T".to_string()), + ] + .into(), + ); // TODO: Functions to be moved out to another } } diff --git a/products/bluebell/evm_assembly/src/compiler_context.rs b/products/bluebell/evm_assembly/src/compiler_context.rs index 76e4cf65a..b0606e64e 100644 --- a/products/bluebell/evm_assembly/src/compiler_context.rs +++ b/products/bluebell/evm_assembly/src/compiler_context.rs @@ -10,7 +10,7 @@ use crate::{ block::EvmBlock, evm_bytecode_builder::EvmByteCodeBuilder, function_signature::{AssemblyBuilderFn, EvmFunctionSignature}, - types::EvmType, + types::{EvmType, UserType}, }; type InlineGenericsFn = @@ -18,6 +18,12 @@ type InlineGenericsFn = type SpecialVariableFn = fn(&mut EvmCompilerContext, &mut EvmBlock) -> Result, String>; +pub struct GenericDeclaration { + pub name: String, + pub parameters: Vec, + pub layout: Vec<(String, String)>, +} + pub struct EvmCompilerContext { pub raw_function_declarations: HashMap, String)>, @@ -27,6 +33,9 @@ pub struct EvmCompilerContext { pub inline_generics: HashMap, pub special_variables: HashMap, + pub user_types: HashMap>, + pub generic_types: HashMap, + /// Scilla types -> EVM types precompiles: BTreeMap, precompile_addresses: HashMap, @@ -91,6 +100,10 @@ impl EvmCompilerContext { function_declarations: HashMap::new(), inline_generics: HashMap::new(), special_variables: HashMap::new(), + + user_types: HashMap::new(), + generic_types: HashMap::new(), + precompile_addresses: HashMap::new(), precompiles: BTreeMap::new(), contract_offset: 5, @@ -133,6 +146,69 @@ impl EvmCompilerContext { // .insert(name.to_string(), EvmType::Opaque); } + pub fn declare_user_struct(&mut self, name: &str, properties: Vec<(String, String)>) { + let mut layout: Vec<(String, EvmType)> = Vec::new(); + for (field_name, type_name) in properties.iter() { + let evm_type = self + .type_declarations + .get(type_name) + .expect("Type not found") + .clone(); + layout.push((field_name.clone(), evm_type)); + } + + // TODO: Add support for namespace + let type_id = format!("user_struct::{}", name); + + let strct = UserType::Struct { + type_id: type_id.clone(), + layout, + }; + + self.user_types.insert(type_id, Box::new(strct)); + } + + pub fn declare_generic_type( + &mut self, + name: &str, + parameters: Vec, + fields: Vec<(String, String)>, + ) { + let decl = GenericDeclaration { + name: name.to_string(), + parameters, + layout: fields, + }; + + self.generic_types.insert(name.to_string(), decl); + } + + pub fn instantiate_generic_type(&mut self, name: &str, actual_parameters: Vec) { + let generic_declaration = self + .generic_types + .get(name) + .expect("Generic type not found"); + + let mut parameter_map: HashMap = HashMap::new(); + for (i, parameter) in generic_declaration.parameters.iter().enumerate() { + parameter_map.insert(parameter.clone(), actual_parameters[i].clone()); + } + + let actual_layout: Vec<(String, String)> = generic_declaration + .layout + .iter() + .map(|(field_name, type_id)| { + ( + field_name.clone(), + parameter_map.get(type_id).unwrap_or(type_id).clone(), + ) + }) + .collect(); + + let name = format!("{}::<{}>", name, actual_parameters.join(",")); + self.declare_user_struct(&name, actual_layout); + } + pub fn declare_special_variable( &mut self, name: &str, diff --git a/products/bluebell/evm_assembly/src/types.rs b/products/bluebell/evm_assembly/src/types.rs index f8f96b617..224b7c9ec 100644 --- a/products/bluebell/evm_assembly/src/types.rs +++ b/products/bluebell/evm_assembly/src/types.rs @@ -89,6 +89,31 @@ pub enum EvmType { Address, Bool, String, + UserType(Box), +} + +#[derive(Clone, Debug)] +pub enum UserType { + Struct { + type_id: String, + layout: Vec<(String, EvmType)>, + }, + Tuple { + type_id: String, + layout: Vec, + }, + TaggedUnion { + type_id: String, + layout: Vec<(String, EvmType)>, + }, + Union { + type_id: String, + layout: Vec, + }, + Enum { + type_id: String, + layout: Vec, + }, } impl EvmType { @@ -100,6 +125,7 @@ impl EvmType { EvmType::Address => "address".to_string(), EvmType::Bool => "bool".to_string(), EvmType::String => "string".to_string(), + EvmType::UserType(_) => "user_type".to_string(), } } } diff --git a/products/bridge/.npmrc b/products/bridge/.npmrc new file mode 100644 index 000000000..f87a04434 --- /dev/null +++ b/products/bridge/.npmrc @@ -0,0 +1 @@ +auto-install-peers=true \ No newline at end of file diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json new file mode 100644 index 000000000..0f04c9986 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json new file mode 100644 index 000000000..107d16fe0 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json @@ -0,0 +1,113 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC1155Errors", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC1155InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC1155InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "idsLength", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "valuesLength", + "type": "uint256" + } + ], + "name": "ERC1155InvalidArrayLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC1155InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC1155InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC1155InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC1155MissingApprovalForAll", + "type": "error" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json new file mode 100644 index 000000000..0f04c9986 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json new file mode 100644 index 000000000..f77ad64ee --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json @@ -0,0 +1,97 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20Errors", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json new file mode 100644 index 000000000..0f04c9986 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json new file mode 100644 index 000000000..6ccf3a73b --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json @@ -0,0 +1,114 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC721Errors", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721IncorrectOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721InsufficientApproval", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC721InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "ERC721InvalidOperator", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ERC721InvalidOwner", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC721InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC721InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ERC721NonexistentToken", + "type": "error" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json b/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json new file mode 100644 index 000000000..a945c51cd --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json @@ -0,0 +1,34 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Initializable", + "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json new file mode 100644 index 000000000..81e661fa6 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json @@ -0,0 +1,319 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC20", + "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json new file mode 100644 index 000000000..12e0777f7 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json @@ -0,0 +1,194 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json new file mode 100644 index 000000000..050e23616 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json new file mode 100644 index 000000000..6d6b5eaaa --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json @@ -0,0 +1,350 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC20Burnable", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json new file mode 100644 index 000000000..050e23616 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json new file mode 100644 index 000000000..a7d8b6ae3 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json @@ -0,0 +1,233 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IERC20Metadata", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json new file mode 100644 index 000000000..0f04c9986 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json new file mode 100644 index 000000000..8fe86fc78 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Context", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "abi": [], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json new file mode 100644 index 000000000..0f04c9986 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json new file mode 100644 index 000000000..b1d1b3136 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json @@ -0,0 +1,37 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Create2", + "sourceName": "@openzeppelin/contracts/utils/Create2.sol", + "abi": [ + { + "inputs": [], + "name": "Create2EmptyBytecode", + "type": "error" + }, + { + "inputs": [], + "name": "Create2FailedDeployment", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "Create2InsufficientBalance", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json new file mode 100644 index 000000000..0f04c9986 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json new file mode 100644 index 000000000..1b1999932 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json @@ -0,0 +1,27 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Strings", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "StringsInsufficientHexLength", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json new file mode 100644 index 000000000..c6bd23d5d --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json @@ -0,0 +1,38 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ECDSA", + "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "abi": [ + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json new file mode 100644 index 000000000..56155649d --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MessageHashUtils", + "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json new file mode 100644 index 000000000..3e52ef1d4 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json @@ -0,0 +1,16 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Math", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "abi": [ + { + "inputs": [], + "name": "MathOverflowedMulDiv", + "type": "error" + } + ], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json new file mode 100644 index 000000000..8277c9254 --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "SignedMath", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json new file mode 100644 index 000000000..f0467dd7e --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json new file mode 100644 index 000000000..7d2312a5a --- /dev/null +++ b/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "EnumerableSet", + "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json b/products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json new file mode 100644 index 000000000..74ccae77e --- /dev/null +++ b/products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json @@ -0,0 +1 @@ +{"id":"204a69f2da9dec65e0ea77918b488e3d","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\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 proxied contracts do not make use of 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 * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\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 prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reininitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n assembly {\n $.slot := INITIALIZABLE_STORAGE\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n * ```\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/ERC20Burnable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC20} from \"../ERC20.sol\";\nimport {Context} from \"../../../utils/Context.sol\";\n\n/**\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\n * tokens and those that they have an allowance for, in a way that can be\n * recognized off-chain (via event analysis).\n */\nabstract contract ERC20Burnable is Context, ERC20 {\n /**\n * @dev Destroys a `value` amount of tokens from the caller.\n *\n * See {ERC20-_burn}.\n */\n function burn(uint256 value) public virtual {\n _burn(_msgSender(), value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, deducting from\n * the caller's allowance.\n *\n * See {ERC20-_burn} and {ERC20-allowance}.\n *\n * Requirements:\n *\n * - the caller must have allowance for ``accounts``'s tokens of at least\n * `value`.\n */\n function burnFrom(address account, uint256 value) public virtual {\n _spendAllowance(account, _msgSender(), value);\n _burn(account, value);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)\n\npragma solidity ^0.8.20;\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/Create2.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Create2.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n * `CREATE2` can be used to compute in advance the address where a smart\n * contract will be deployed, which allows for interesting new mechanisms known\n * as 'counterfactual interactions'.\n *\n * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n * information.\n */\nlibrary Create2 {\n /**\n * @dev Not enough balance for performing a CREATE2 deploy.\n */\n error Create2InsufficientBalance(uint256 balance, uint256 needed);\n\n /**\n * @dev There's no code to deploy.\n */\n error Create2EmptyBytecode();\n\n /**\n * @dev The deployment failed.\n */\n error Create2FailedDeployment();\n\n /**\n * @dev Deploys a contract using `CREATE2`. The address where the contract\n * will be deployed can be known in advance via {computeAddress}.\n *\n * The bytecode for a contract can be obtained from Solidity with\n * `type(contractName).creationCode`.\n *\n * Requirements:\n *\n * - `bytecode` must not be empty.\n * - `salt` must have not been used for `bytecode` already.\n * - the factory must have a balance of at least `amount`.\n * - if `amount` is non-zero, `bytecode` must have a `payable` constructor.\n */\n function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) {\n if (address(this).balance < amount) {\n revert Create2InsufficientBalance(address(this).balance, amount);\n }\n if (bytecode.length == 0) {\n revert Create2EmptyBytecode();\n }\n /// @solidity memory-safe-assembly\n assembly {\n addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)\n }\n if (addr == address(0)) {\n revert Create2FailedDeployment();\n }\n }\n\n /**\n * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n * `bytecodeHash` or `salt` will result in a new destination address.\n */\n function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {\n return computeAddress(salt, bytecodeHash, address(this));\n }\n\n /**\n * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.\n */\n function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40) // Get free memory pointer\n\n // | | ↓ ptr ... ↓ ptr + 0x0B (start) ... ↓ ptr + 0x20 ... ↓ ptr + 0x40 ... |\n // |-------------------|---------------------------------------------------------------------------|\n // | bytecodeHash | CCCCCCCCCCCCC...CC |\n // | salt | BBBBBBBBBBBBB...BB |\n // | deployer | 000000...0000AAAAAAAAAAAAAAAAAAA...AA |\n // | 0xFF | FF |\n // |-------------------|---------------------------------------------------------------------------|\n // | memory | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |\n // | keccak(start, 85) | ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |\n\n mstore(add(ptr, 0x40), bytecodeHash)\n mstore(add(ptr, 0x20), salt)\n mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes\n let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff\n mstore8(start, 0xff)\n addr := keccak256(start, 85)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n /// @solidity memory-safe-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n */\n function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address, RecoverError, bytes32) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\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 unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\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 unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\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 uint256 localValue = value;\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_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/EnumerableSet.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n * unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n // Position is the index of the value in the `values` array plus 1.\n // Position 0 is used to mean a value is not in the set.\n mapping(bytes32 value => uint256) _positions;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._positions[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We cache the value's position to prevent multiple reads from the same storage slot\n uint256 position = set._positions[value];\n\n if (position != 0) {\n // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 valueIndex = position - 1;\n uint256 lastIndex = set._values.length - 1;\n\n if (valueIndex != lastIndex) {\n bytes32 lastValue = set._values[lastIndex];\n\n // Move the lastValue to the index where the value to delete is\n set._values[valueIndex] = lastValue;\n // Update the tracked position of the lastValue (that was just moved)\n set._positions[lastValue] = position;\n }\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the tracked position for the deleted slot\n delete set._positions[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._positions[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n return set._values[index];\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function _values(Set storage set) private view returns (bytes32[] memory) {\n return set._values;\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n bytes32[] memory store = _values(set._inner);\n bytes32[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(AddressSet storage set) internal view returns (address[] memory) {\n bytes32[] memory store = _values(set._inner);\n address[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(UintSet storage set) internal view returns (uint256[] memory) {\n bytes32[] memory store = _values(set._inner);\n uint256[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n}\n"},"contracts/Bridged.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"hardhat/console.sol\";\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"./Relayer.sol\";\n\nabstract contract Bridged is Initializable {\n Relayer private _relayer;\n\n function initialize(Relayer relayer) public initializer {\n _relayer = relayer;\n }\n\n modifier onlyRelayer() {\n require(msg.sender == address(_relayer), \"Must be called by relayer\");\n _;\n }\n\n function dispatched(\n address target,\n bytes memory call\n ) public payable onlyRelayer returns (bool success, bytes memory response) {\n console.log(\"dispatched()\");\n (success, response) = target.call{value: msg.value, gas: 100000}(call);\n }\n\n function queried(\n address target,\n bytes memory call\n ) public view onlyRelayer returns (bool success, bytes memory response) {\n console.log(\"queried()\");\n (success, response) = target.staticcall{gas: 100000}(call);\n }\n\n function relay(\n address target,\n bytes memory call,\n bool readonly,\n bytes4 callback\n ) internal returns (uint nonce) {\n nonce = _relayer.relay(target, call, readonly, callback);\n }\n}\n"},"contracts/Collector.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"./ValidatorManager.sol\";\n\ncontract Collector {\n ValidatorManager private validatorManager;\n event Echoed(bytes32 indexed hash, bytes signature);\n\n constructor(ValidatorManager _validatorManager) {\n validatorManager = _validatorManager;\n }\n\n function echo(bytes32 hash, bytes memory signature) public {\n require(\n validatorManager.validateSignature(hash, signature),\n \"Wrong validator\"\n );\n emit Echoed(hash, signature);\n }\n}\n"},"contracts/ERC20Bridge.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n\nimport \"./Bridged.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\";\n\ncontract BridgedERC20 is ERC20, ERC20Burnable {\n address _bridge;\n\n constructor(\n string memory name_,\n string memory symbol_,\n address bridge_\n ) ERC20(name_, symbol_) {\n _bridge = bridge_;\n _mint(msg.sender, 1000);\n }\n\n modifier onlyBridge() {\n require(msg.sender == _bridge, \"Not the bridge\");\n _;\n }\n\n function mint(address to, uint256 amount) public onlyBridge {\n _mint(to, amount);\n }\n\n function burn(address from, uint256 amount) public onlyBridge {\n burnFrom(from, amount);\n }\n}\n\ncontract MyToken is BridgedERC20 {\n constructor(address bridge_) BridgedERC20(\"MyToken\", \"MTK\", bridge_) {}\n}\n\ncontract ERC20Bridge is Bridged {\n event Started(address, address, uint);\n\n function bridge(\n address token,\n address owner,\n uint value\n ) public returns (uint nonce) {\n MyToken(token).transferFrom(owner, address(this), value);\n nonce = relay(\n token,\n abi.encodeWithSignature(\"mint(address,uint256)\", owner, value),\n false,\n this.finish.selector\n );\n emit Started(token, owner, value);\n }\n\n function exit(\n address token,\n address owner,\n uint value\n ) public returns (uint nonce) {\n MyToken(token).burn(owner, value);\n nonce = relay(\n token,\n abi.encodeWithSignature(\"transfer(address,uint256)\", owner, value),\n false,\n this.finish.selector\n );\n emit Started(token, owner, value);\n }\n\n event Succeeded();\n event Failed(string);\n\n function finish(\n bool success,\n bytes calldata res,\n uint nonce\n ) public onlyRelayer {\n if (success) {\n emit Succeeded();\n } else {\n bytes4 sig = bytes4(res[:4]);\n bytes memory err = bytes(res[4:]);\n emit Failed(abi.decode(err, (string)));\n }\n }\n}\n"},"contracts/Relayer.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"hardhat/console.sol\";\n\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\nimport \"@openzeppelin/contracts/utils/Create2.sol\";\nimport \"./ValidatorManager.sol\";\nimport \"./Bridged.sol\";\n\nusing ECDSA for bytes32;\nusing MessageHashUtils for bytes;\n\ncontract Relayer {\n ValidatorManager private validatorManager;\n\n event TwinDeployment(address indexed twin);\n\n function deployTwin(\n bytes32 salt,\n bytes calldata bytecode\n ) public returns (address) {\n address bridgedContract = Create2.deploy(0, salt, bytecode);\n Bridged(bridgedContract).initialize(this);\n emit TwinDeployment(bridgedContract);\n return bridgedContract;\n }\n\n constructor(ValidatorManager _validatorManager) {\n validatorManager = _validatorManager;\n }\n\n mapping(address => uint) nonces;\n mapping(address => mapping(uint => bool)) dispatched;\n mapping(address => mapping(uint => bool)) resumed;\n\n event Relayed(\n address caller,\n address target,\n bytes call,\n bool readonly,\n bytes4 callback,\n uint nonce\n );\n\n function relay(\n address target,\n bytes memory call,\n bool readonly,\n bytes4 callback\n ) public returns (uint) {\n emit Relayed(\n msg.sender,\n target,\n call,\n readonly,\n callback,\n nonces[msg.sender]\n );\n nonces[msg.sender]++;\n return nonces[msg.sender];\n }\n\n event Dispatched(\n address indexed caller,\n bytes4 callback,\n bool success,\n bytes response,\n uint indexed nonce\n );\n\n function validateRequest(\n bytes memory encodedMessage,\n bytes[] memory signatures\n ) private view {\n bytes32 hash = encodedMessage.toEthSignedMessageHash();\n require(\n validatorManager.validateUniqueSignatures(hash, signatures),\n \"Invalid signatures\"\n );\n require(\n validatorManager.hasSupermajority(signatures.length),\n \"No supermajority\"\n );\n }\n\n function dispatch(\n address caller,\n address target,\n bytes memory call,\n bytes4 callback,\n uint nonce,\n bytes[] memory signatures\n ) public {\n require(!dispatched[caller][nonce], \"Already dispatched\");\n\n bytes memory message = abi.encode(\n caller,\n target,\n call,\n false,\n callback,\n nonce\n );\n validateRequest(message, signatures);\n\n require(caller.code.length > 0, \"code length\");\n (bool success, bytes memory response) = Bridged(caller).dispatched(\n target,\n call\n );\n emit Dispatched(caller, callback, success, response, nonce);\n dispatched[caller][nonce] = true;\n }\n\n function query(\n address caller,\n address target,\n bytes memory call\n ) public view returns (bool success, bytes memory response) {\n require(caller.code.length > 0, \"code length\");\n (success, response) = Bridged(caller).queried(target, call);\n }\n\n event Resumed(\n address indexed caller,\n bytes call,\n bool success,\n bytes response,\n uint indexed nonce\n );\n\n // Ensure signatures are submitted in the order of their addresses\n function resume(\n address caller,\n bytes4 callback,\n bool success,\n bytes memory response,\n uint nonce,\n bytes[] memory signatures\n ) public payable {\n require(!resumed[caller][nonce], \"Already resumed\");\n bytes memory message = abi.encode(\n caller,\n callback,\n success,\n response,\n nonce\n );\n validateRequest(message, signatures);\n\n bytes memory call = abi.encodeWithSelector(\n callback,\n success,\n response,\n nonce\n );\n (bool success2, bytes memory response2) = caller.call{\n value: msg.value,\n gas: 100000\n }(call);\n\n emit Resumed(caller, call, success2, response2, nonce);\n resumed[caller][nonce] = true;\n }\n}\n"},"contracts/Test.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n\nimport \"./Bridged.sol\";\n\ncontract Twin is Bridged {\n function start(address target, uint num, bool readonly) public {\n uint nonce = relay(\n target,\n abi.encodeWithSignature(\"test(uint256)\", num),\n readonly,\n this.finish.selector\n );\n console.log(\"start()\", nonce);\n }\n\n event Succeeded(uint);\n event Failed(string);\n\n function finish(\n bool success,\n bytes calldata res,\n uint nonce\n ) public onlyRelayer {\n console.log(\"finish()\", nonce);\n if (success) {\n uint num = abi.decode(res, (uint));\n emit Succeeded(num);\n } else {\n bytes4 sig = bytes4(res[:4]);\n bytes memory err = bytes(res[4:]);\n emit Failed(abi.decode(err, (string)));\n }\n }\n}\n\ncontract Target {\n function test(uint num) public pure returns (uint) {\n console.log(\"test()\");\n require(num < 1000, \"Too large\");\n return num + 1;\n }\n}\n"},"contracts/ValidatorManager.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\n\ncontract ValidatorManager {\n using ECDSA for bytes32;\n using MessageHashUtils for bytes;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n EnumerableSet.AddressSet private _validators;\n\n constructor(address[] memory validators) {\n for (uint i = 0; i < validators.length; i++) {\n addValidator(validators[i]);\n }\n }\n\n // TODO: add restriction\n function addValidator(address user) public returns (bool) {\n return _validators.add(user);\n }\n\n // TODO: add restriction\n function removeValidator(address user) public returns (bool) {\n return _validators.remove(user);\n }\n\n // Expensive function, avoid calling on-chain\n function getValidators() public view returns (address[] memory) {\n return _validators.values();\n }\n\n function isValidator(address user) public view returns (bool) {\n return _validators.contains(user);\n }\n\n function validatorsCount() public view returns (uint) {\n return _validators.length();\n }\n\n function validateUniqueSignatures(\n bytes32 ethSignedMessageHash,\n bytes[] memory signatures\n ) public view returns (bool) {\n address lastSigner = address(0);\n\n for (uint i = 0; i < signatures.length; i++) {\n address signer = ethSignedMessageHash.recover(signatures[i]);\n require(\n signer > lastSigner,\n \"Signatures must be unique and in increasing order\"\n );\n if (!isValidator(signer)) {\n return false;\n }\n lastSigner = signer;\n }\n return true;\n }\n\n function hasSupermajority(uint count) public view returns (bool) {\n return count * 3 > validatorsCount() * 2;\n }\n\n function validateSignature(\n bytes32 ethSignedMessageHash,\n bytes memory signature\n ) public view returns (bool) {\n address signer = ethSignedMessageHash.recover(signature);\n return isValidator(signer);\n }\n}\n"},"hardhat/console.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nlibrary console {\n address constant CONSOLE_ADDRESS =\n 0x000000000000000000636F6e736F6c652e6c6f67;\n\n function _sendLogPayloadImplementation(bytes memory payload) internal view {\n address consoleAddress = CONSOLE_ADDRESS;\n /// @solidity memory-safe-assembly\n assembly {\n pop(\n staticcall(\n gas(),\n consoleAddress,\n add(payload, 32),\n mload(payload),\n 0,\n 0\n )\n )\n }\n }\n\n function _castToPure(\n function(bytes memory) internal view fnIn\n ) internal pure returns (function(bytes memory) pure fnOut) {\n assembly {\n fnOut := fnIn\n }\n }\n\n function _sendLogPayload(bytes memory payload) internal pure {\n _castToPure(_sendLogPayloadImplementation)(payload);\n }\n\n function log() internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log()\"));\n }\n function logInt(int256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(int256)\", p0));\n }\n\n function logUint(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function logString(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function logBool(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function logAddress(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function logBytes(bytes memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n }\n\n function logBytes1(bytes1 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n }\n\n function logBytes2(bytes2 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n }\n\n function logBytes3(bytes3 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n }\n\n function logBytes4(bytes4 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n }\n\n function logBytes5(bytes5 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n }\n\n function logBytes6(bytes6 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n }\n\n function logBytes7(bytes7 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n }\n\n function logBytes8(bytes8 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n }\n\n function logBytes9(bytes9 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n }\n\n function logBytes10(bytes10 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n }\n\n function logBytes11(bytes11 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n }\n\n function logBytes12(bytes12 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n }\n\n function logBytes13(bytes13 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n }\n\n function logBytes14(bytes14 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n }\n\n function logBytes15(bytes15 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n }\n\n function logBytes16(bytes16 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n }\n\n function logBytes17(bytes17 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n }\n\n function logBytes18(bytes18 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n }\n\n function logBytes19(bytes19 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n }\n\n function logBytes20(bytes20 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n }\n\n function logBytes21(bytes21 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n }\n\n function logBytes22(bytes22 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n }\n\n function logBytes23(bytes23 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n }\n\n function logBytes24(bytes24 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n }\n\n function logBytes25(bytes25 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n }\n\n function logBytes26(bytes26 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n }\n\n function logBytes27(bytes27 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n }\n\n function logBytes28(bytes28 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n }\n\n function logBytes29(bytes29 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n }\n\n function logBytes30(bytes30 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n }\n\n function logBytes31(bytes31 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n }\n\n function logBytes32(bytes32 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n }\n\n function log(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function log(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function log(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function log(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function log(uint256 p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256)\", p0, p1));\n }\n\n function log(uint256 p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string)\", p0, p1));\n }\n\n function log(uint256 p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool)\", p0, p1));\n }\n\n function log(uint256 p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address)\", p0, p1));\n }\n\n function log(string memory p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256)\", p0, p1));\n }\n\n function log(string memory p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n }\n\n function log(string memory p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n }\n\n function log(string memory p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n }\n\n function log(bool p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256)\", p0, p1));\n }\n\n function log(bool p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n }\n\n function log(bool p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n }\n\n function log(bool p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n }\n\n function log(address p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256)\", p0, p1));\n }\n\n function log(address p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n }\n\n function log(address p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n }\n\n function log(address p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n }\n\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/ERC20Bridge.sol:78:9:\n |\n78 | uint nonce\n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1951,"file":"contracts/ERC20Bridge.sol","start":1941},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/ERC20Bridge.sol:83:13:\n |\n83 | bytes4 sig = bytes4(res[:4]);\n | ^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":2071,"file":"contracts/ERC20Bridge.sol","start":2061},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/Test.sol:30:13:\n |\n30 | bytes4 sig = bytes4(res[:4]);\n | ^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":759,"file":"contracts/Test.sol","start":749},"type":"Warning"}],"sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[136],"IERC20Errors":[41],"IERC721Errors":[89]},"id":137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"138:139:0","text":" @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens."},"fullyImplemented":true,"id":41,"linearizedBaseContracts":[41],"name":"IERC20Errors","nameLocation":"288:12:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"307:309:0","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":11,"name":"ERC20InsufficientBalance","nameLocation":"627:24:0","nodeType":"ErrorDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"sender","nameLocation":"660:6:0","nodeType":"VariableDeclaration","scope":11,"src":"652:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"balance","nameLocation":"676:7:0","nodeType":"VariableDeclaration","scope":11,"src":"668:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"mutability":"mutable","name":"needed","nameLocation":"693:6:0","nodeType":"VariableDeclaration","scope":11,"src":"685:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"651:49:0"},"src":"621:80:0"},{"documentation":{"id":12,"nodeType":"StructuredDocumentation","src":"707:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":16,"name":"ERC20InvalidSender","nameLocation":"870:18:0","nodeType":"ErrorDefinition","parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"sender","nameLocation":"897:6:0","nodeType":"VariableDeclaration","scope":16,"src":"889:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"888:16:0"},"src":"864:41:0"},{"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"911:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":21,"name":"ERC20InvalidReceiver","nameLocation":"1081:20:0","nodeType":"ErrorDefinition","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"receiver","nameLocation":"1110:8:0","nodeType":"VariableDeclaration","scope":21,"src":"1102:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"1102:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1101:18:0"},"src":"1075:45:0"},{"documentation":{"id":22,"nodeType":"StructuredDocumentation","src":"1126:345:0","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":30,"name":"ERC20InsufficientAllowance","nameLocation":"1482:26:0","nodeType":"ErrorDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"mutability":"mutable","name":"spender","nameLocation":"1517:7:0","nodeType":"VariableDeclaration","scope":30,"src":"1509:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26,"mutability":"mutable","name":"allowance","nameLocation":"1534:9:0","nodeType":"VariableDeclaration","scope":30,"src":"1526:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28,"mutability":"mutable","name":"needed","nameLocation":"1553:6:0","nodeType":"VariableDeclaration","scope":30,"src":"1545:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1508:52:0"},"src":"1476:85:0"},{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"1567:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":35,"name":"ERC20InvalidApprover","nameLocation":"1752:20:0","nodeType":"ErrorDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"approver","nameLocation":"1781:8:0","nodeType":"VariableDeclaration","scope":35,"src":"1773:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1772:18:0"},"src":"1746:45:0"},{"documentation":{"id":36,"nodeType":"StructuredDocumentation","src":"1797:195:0","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":40,"name":"ERC20InvalidSpender","nameLocation":"2003:19:0","nodeType":"ErrorDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"spender","nameLocation":"2031:7:0","nodeType":"VariableDeclaration","scope":40,"src":"2023:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2022:17:0"},"src":"1997:43:0"}],"scope":137,"src":"278:1764:0","usedErrors":[11,16,21,30,35,40],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":42,"nodeType":"StructuredDocumentation","src":"2044:141:0","text":" @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens."},"fullyImplemented":true,"id":89,"linearizedBaseContracts":[89],"name":"IERC721Errors","nameLocation":"2196:13:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":43,"nodeType":"StructuredDocumentation","src":"2216:219:0","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":47,"name":"ERC721InvalidOwner","nameLocation":"2446:18:0","nodeType":"ErrorDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"owner","nameLocation":"2473:5:0","nodeType":"VariableDeclaration","scope":47,"src":"2465:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:15:0"},"src":"2440:40:0"},{"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"2486:132:0","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":52,"name":"ERC721NonexistentToken","nameLocation":"2629:22:0","nodeType":"ErrorDefinition","parameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"tokenId","nameLocation":"2660:7:0","nodeType":"VariableDeclaration","scope":52,"src":"2652:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2651:17:0"},"src":"2623:46:0"},{"documentation":{"id":53,"nodeType":"StructuredDocumentation","src":"2675:289:0","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":61,"name":"ERC721IncorrectOwner","nameLocation":"2975:20:0","nodeType":"ErrorDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55,"mutability":"mutable","name":"sender","nameLocation":"3004:6:0","nodeType":"VariableDeclaration","scope":61,"src":"2996:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54,"name":"address","nodeType":"ElementaryTypeName","src":"2996:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"tokenId","nameLocation":"3020:7:0","nodeType":"VariableDeclaration","scope":61,"src":"3012:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"owner","nameLocation":"3037:5:0","nodeType":"VariableDeclaration","scope":61,"src":"3029:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2995:48:0"},"src":"2969:75:0"},{"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"3050:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":66,"name":"ERC721InvalidSender","nameLocation":"3213:19:0","nodeType":"ErrorDefinition","parameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"sender","nameLocation":"3241:6:0","nodeType":"VariableDeclaration","scope":66,"src":"3233:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63,"name":"address","nodeType":"ElementaryTypeName","src":"3233:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3232:16:0"},"src":"3207:42:0"},{"documentation":{"id":67,"nodeType":"StructuredDocumentation","src":"3255:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":71,"name":"ERC721InvalidReceiver","nameLocation":"3425:21:0","nodeType":"ErrorDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"receiver","nameLocation":"3455:8:0","nodeType":"VariableDeclaration","scope":71,"src":"3447:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"3447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3446:18:0"},"src":"3419:46:0"},{"documentation":{"id":72,"nodeType":"StructuredDocumentation","src":"3471:247:0","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":78,"name":"ERC721InsufficientApproval","nameLocation":"3729:26:0","nodeType":"ErrorDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"operator","nameLocation":"3764:8:0","nodeType":"VariableDeclaration","scope":78,"src":"3756:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"tokenId","nameLocation":"3782:7:0","nodeType":"VariableDeclaration","scope":78,"src":"3774:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3755:35:0"},"src":"3723:68:0"},{"documentation":{"id":79,"nodeType":"StructuredDocumentation","src":"3797:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":83,"name":"ERC721InvalidApprover","nameLocation":"3982:21:0","nodeType":"ErrorDefinition","parameters":{"id":82,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81,"mutability":"mutable","name":"approver","nameLocation":"4012:8:0","nodeType":"VariableDeclaration","scope":83,"src":"4004:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"4004:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4003:18:0"},"src":"3976:46:0"},{"documentation":{"id":84,"nodeType":"StructuredDocumentation","src":"4028:197:0","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":88,"name":"ERC721InvalidOperator","nameLocation":"4236:21:0","nodeType":"ErrorDefinition","parameters":{"id":87,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86,"mutability":"mutable","name":"operator","nameLocation":"4266:8:0","nodeType":"VariableDeclaration","scope":88,"src":"4258:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4257:18:0"},"src":"4230:46:0"}],"scope":137,"src":"2186:2092:0","usedErrors":[47,52,61,66,71,78,83,88],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":90,"nodeType":"StructuredDocumentation","src":"4280:143:0","text":" @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens."},"fullyImplemented":true,"id":136,"linearizedBaseContracts":[136],"name":"IERC1155Errors","nameLocation":"4434:14:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":91,"nodeType":"StructuredDocumentation","src":"4455:361:0","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":101,"name":"ERC1155InsufficientBalance","nameLocation":"4827:26:0","nodeType":"ErrorDefinition","parameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"sender","nameLocation":"4862:6:0","nodeType":"VariableDeclaration","scope":101,"src":"4854:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"4854:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"balance","nameLocation":"4878:7:0","nodeType":"VariableDeclaration","scope":101,"src":"4870:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"needed","nameLocation":"4895:6:0","nodeType":"VariableDeclaration","scope":101,"src":"4887:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"4887:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99,"mutability":"mutable","name":"tokenId","nameLocation":"4911:7:0","nodeType":"VariableDeclaration","scope":101,"src":"4903:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98,"name":"uint256","nodeType":"ElementaryTypeName","src":"4903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4853:66:0"},"src":"4821:99:0"},{"documentation":{"id":102,"nodeType":"StructuredDocumentation","src":"4926:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":106,"name":"ERC1155InvalidSender","nameLocation":"5089:20:0","nodeType":"ErrorDefinition","parameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"sender","nameLocation":"5118:6:0","nodeType":"VariableDeclaration","scope":106,"src":"5110:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:16:0"},"src":"5083:43:0"},{"documentation":{"id":107,"nodeType":"StructuredDocumentation","src":"5132:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":111,"name":"ERC1155InvalidReceiver","nameLocation":"5302:22:0","nodeType":"ErrorDefinition","parameters":{"id":110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"receiver","nameLocation":"5333:8:0","nodeType":"VariableDeclaration","scope":111,"src":"5325:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5324:18:0"},"src":"5296:47:0"},{"documentation":{"id":112,"nodeType":"StructuredDocumentation","src":"5349:256:0","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":118,"name":"ERC1155MissingApprovalForAll","nameLocation":"5616:28:0","nodeType":"ErrorDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"operator","nameLocation":"5653:8:0","nodeType":"VariableDeclaration","scope":118,"src":"5645:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":116,"mutability":"mutable","name":"owner","nameLocation":"5671:5:0","nodeType":"VariableDeclaration","scope":118,"src":"5663:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":115,"name":"address","nodeType":"ElementaryTypeName","src":"5663:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5644:33:0"},"src":"5610:68:0"},{"documentation":{"id":119,"nodeType":"StructuredDocumentation","src":"5684:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":123,"name":"ERC1155InvalidApprover","nameLocation":"5869:22:0","nodeType":"ErrorDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"approver","nameLocation":"5900:8:0","nodeType":"VariableDeclaration","scope":123,"src":"5892:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120,"name":"address","nodeType":"ElementaryTypeName","src":"5892:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5891:18:0"},"src":"5863:47:0"},{"documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"5916:197:0","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":128,"name":"ERC1155InvalidOperator","nameLocation":"6124:22:0","nodeType":"ErrorDefinition","parameters":{"id":127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"operator","nameLocation":"6155:8:0","nodeType":"VariableDeclaration","scope":128,"src":"6147:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6146:18:0"},"src":"6118:47:0"},{"documentation":{"id":129,"nodeType":"StructuredDocumentation","src":"6171:280:0","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":135,"name":"ERC1155InvalidArrayLength","nameLocation":"6462:25:0","nodeType":"ErrorDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"idsLength","nameLocation":"6496:9:0","nodeType":"VariableDeclaration","scope":135,"src":"6488:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":130,"name":"uint256","nodeType":"ElementaryTypeName","src":"6488:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"valuesLength","nameLocation":"6515:12:0","nodeType":"VariableDeclaration","scope":135,"src":"6507:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":132,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6487:41:0"},"src":"6456:73:0"}],"scope":137,"src":"4424:2107:0","usedErrors":[101,106,111,118,123,128,135],"usedEvents":[]}],"src":"112:6420:0"},"id":0},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Initializable":[390]},"id":391,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":138,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:1"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":139,"nodeType":"StructuredDocumentation","src":"139:2209:1","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 proxied contracts do not make use of 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 The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\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 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 prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":390,"linearizedBaseContracts":[390],"name":"Initializable","nameLocation":"2367:13:1","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Initializable.InitializableStorage","documentation":{"id":140,"nodeType":"StructuredDocumentation","src":"2387:293:1","text":" @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"},"id":147,"members":[{"constant":false,"id":143,"mutability":"mutable","name":"_initialized","nameLocation":"2820:12:1","nodeType":"VariableDeclaration","scope":147,"src":"2813:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":146,"mutability":"mutable","name":"_initializing","nameLocation":"2955:13:1","nodeType":"VariableDeclaration","scope":147,"src":"2950:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":145,"name":"bool","nodeType":"ElementaryTypeName","src":"2950:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"InitializableStorage","nameLocation":"2692:20:1","nodeType":"StructDefinition","scope":390,"src":"2685:290:1","visibility":"public"},{"constant":true,"id":150,"mutability":"constant","name":"INITIALIZABLE_STORAGE","nameLocation":"3123:21:1","nodeType":"VariableDeclaration","scope":390,"src":"3098:115:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3098:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030","id":149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:66:1","typeDescriptions":{"typeIdentifier":"t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1","typeString":"int_const 1089...(70 digits omitted)...9600"},"value":"0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"},"visibility":"private"},{"documentation":{"id":151,"nodeType":"StructuredDocumentation","src":"3220:60:1","text":" @dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":153,"name":"InvalidInitialization","nameLocation":"3291:21:1","nodeType":"ErrorDefinition","parameters":{"id":152,"nodeType":"ParameterList","parameters":[],"src":"3312:2:1"},"src":"3285:30:1"},{"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"3321:57:1","text":" @dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":156,"name":"NotInitializing","nameLocation":"3389:15:1","nodeType":"ErrorDefinition","parameters":{"id":155,"nodeType":"ParameterList","parameters":[],"src":"3404:2:1"},"src":"3383:24:1"},{"anonymous":false,"documentation":{"id":157,"nodeType":"StructuredDocumentation","src":"3413:90:1","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":161,"name":"Initialized","nameLocation":"3514:11:1","nodeType":"EventDefinition","parameters":{"id":160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":159,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"3533:7:1","nodeType":"VariableDeclaration","scope":161,"src":"3526:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":158,"name":"uint64","nodeType":"ElementaryTypeName","src":"3526:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3525:16:1"},"src":"3508:34:1"},{"body":{"id":243,"nodeType":"Block","src":"4092:1081:1","statements":[{"assignments":[166],"declarations":[{"constant":false,"id":166,"mutability":"mutable","name":"$","nameLocation":"4187:1:1","nodeType":"VariableDeclaration","scope":243,"src":"4158:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":165,"nodeType":"UserDefinedTypeName","pathNode":{"id":164,"name":"InitializableStorage","nameLocations":["4158:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"4158:20:1"},"referencedDeclaration":147,"src":"4158:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":169,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":167,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"4191:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4158:59:1"},{"assignments":[171],"declarations":[{"constant":false,"id":171,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"4284:14:1","nodeType":"VariableDeclaration","scope":243,"src":"4279:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":175,"initialValue":{"id":174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4301:16:1","subExpression":{"expression":{"id":172,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"4302:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4304:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"4302:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4279:38:1"},{"assignments":[177],"declarations":[{"constant":false,"id":177,"mutability":"mutable","name":"initialized","nameLocation":"4334:11:1","nodeType":"VariableDeclaration","scope":243,"src":"4327:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":176,"name":"uint64","nodeType":"ElementaryTypeName","src":"4327:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":180,"initialValue":{"expression":{"id":178,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"4348:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"4348:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4327:35:1"},{"assignments":[182],"declarations":[{"constant":false,"id":182,"mutability":"mutable","name":"initialSetup","nameLocation":"4711:12:1","nodeType":"VariableDeclaration","scope":243,"src":"4706:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":181,"name":"bool","nodeType":"ElementaryTypeName","src":"4706:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":188,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":183,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177,"src":"4726:11:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4741:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4726:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":186,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"4746:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4726:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4706:54:1"},{"assignments":[190],"declarations":[{"constant":false,"id":190,"mutability":"mutable","name":"construction","nameLocation":"4775:12:1","nodeType":"VariableDeclaration","scope":243,"src":"4770:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":189,"name":"bool","nodeType":"ElementaryTypeName","src":"4770:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":203,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":191,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177,"src":"4790:11:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4805:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4790:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":196,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4818:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$390","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$390","typeString":"contract Initializable"}],"id":195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4810:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"4810:7:1","typeDescriptions":{}}},"id":197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4824:4:1","memberName":"code","nodeType":"MemberAccess","src":"4810:18:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4829:6:1","memberName":"length","nodeType":"MemberAccess","src":"4810:25:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4810:30:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4790:50:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4770:70:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4855:13:1","subExpression":{"id":204,"name":"initialSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"4856:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4872:13:1","subExpression":{"id":206,"name":"construction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"4873:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:30:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":213,"nodeType":"IfStatement","src":"4851:91:1","trueBody":{"id":212,"nodeType":"Block","src":"4887:55:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":209,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"4908:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"RevertStatement","src":"4901:30:1"}]}},{"expression":{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":214,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"4951:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4953:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"4951:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4968:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4951:18:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":219,"nodeType":"ExpressionStatement","src":"4951:18:1"},{"condition":{"id":220,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"4983:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":228,"nodeType":"IfStatement","src":"4979:67:1","trueBody":{"id":227,"nodeType":"Block","src":"4999:47:1","statements":[{"expression":{"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":221,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"5013:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5015:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"5013:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5031:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5013:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":226,"nodeType":"ExpressionStatement","src":"5013:22:1"}]}},{"id":229,"nodeType":"PlaceholderStatement","src":"5055:1:1"},{"condition":{"id":230,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5070:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":242,"nodeType":"IfStatement","src":"5066:101:1","trueBody":{"id":241,"nodeType":"Block","src":"5086:81:1","statements":[{"expression":{"id":235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":231,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"5100:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5102:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"5100:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5118:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5100:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":236,"nodeType":"ExpressionStatement","src":"5100:23:1"},{"eventCall":{"arguments":[{"hexValue":"31","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5154:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":237,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"5142:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"EmitStatement","src":"5137:19:1"}]}}]},"documentation":{"id":162,"nodeType":"StructuredDocumentation","src":"3548:516:1","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."},"id":244,"name":"initializer","nameLocation":"4078:11:1","nodeType":"ModifierDefinition","parameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"4089:2:1"},"src":"4069:1104:1","virtual":false,"visibility":"internal"},{"body":{"id":290,"nodeType":"Block","src":"6291:392:1","statements":[{"assignments":[251],"declarations":[{"constant":false,"id":251,"mutability":"mutable","name":"$","nameLocation":"6386:1:1","nodeType":"VariableDeclaration","scope":290,"src":"6357:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":250,"nodeType":"UserDefinedTypeName","pathNode":{"id":249,"name":"InitializableStorage","nameLocations":["6357:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"6357:20:1"},"referencedDeclaration":147,"src":"6357:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":254,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"6390:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6357:59:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":255,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6431:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6433:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6431:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":257,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6450:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6452:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"6450:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":259,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"6468:7:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6450:25:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6431:44:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":266,"nodeType":"IfStatement","src":"6427:105:1","trueBody":{"id":265,"nodeType":"Block","src":"6477:55:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":262,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"6498:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":264,"nodeType":"RevertStatement","src":"6491:30:1"}]}},{"expression":{"id":271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":267,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6541:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6543:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"6541:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":270,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"6558:7:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6541:24:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":272,"nodeType":"ExpressionStatement","src":"6541:24:1"},{"expression":{"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":273,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6575:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6577:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6575:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6593:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":278,"nodeType":"ExpressionStatement","src":"6575:22:1"},{"id":279,"nodeType":"PlaceholderStatement","src":"6607:1:1"},{"expression":{"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":280,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6618:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6620:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6618:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6636:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6618:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":285,"nodeType":"ExpressionStatement","src":"6618:23:1"},{"eventCall":{"arguments":[{"id":287,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"6668:7:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":286,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"6656:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":289,"nodeType":"EmitStatement","src":"6651:25:1"}]},"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"5179:1068:1","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":291,"name":"reinitializer","nameLocation":"6261:13:1","nodeType":"ModifierDefinition","parameters":{"id":248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"version","nameLocation":"6282:7:1","nodeType":"VariableDeclaration","scope":291,"src":"6275:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":246,"name":"uint64","nodeType":"ElementaryTypeName","src":"6275:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6274:16:1"},"src":"6252:431:1","virtual":false,"visibility":"internal"},{"body":{"id":298,"nodeType":"Block","src":"6921:48:1","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":294,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":312,"src":"6931:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6931:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":296,"nodeType":"ExpressionStatement","src":"6931:20:1"},{"id":297,"nodeType":"PlaceholderStatement","src":"6961:1:1"}]},"documentation":{"id":292,"nodeType":"StructuredDocumentation","src":"6689:199:1","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":299,"name":"onlyInitializing","nameLocation":"6902:16:1","nodeType":"ModifierDefinition","parameters":{"id":293,"nodeType":"ParameterList","parameters":[],"src":"6918:2:1"},"src":"6893:76:1","virtual":false,"visibility":"internal"},{"body":{"id":311,"nodeType":"Block","src":"7136:89:1","statements":[{"condition":{"id":305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7150:18:1","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":303,"name":"_isInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":380,"src":"7151:15:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7151:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":310,"nodeType":"IfStatement","src":"7146:73:1","trueBody":{"id":309,"nodeType":"Block","src":"7170:49:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":306,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156,"src":"7191:15:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7191:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":308,"nodeType":"RevertStatement","src":"7184:24:1"}]}}]},"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"6975:104:1","text":" @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."},"id":312,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"7093:18:1","nodeType":"FunctionDefinition","parameters":{"id":301,"nodeType":"ParameterList","parameters":[],"src":"7111:2:1"},"returnParameters":{"id":302,"nodeType":"ParameterList","parameters":[],"src":"7136:0:1"},"scope":390,"src":"7084:141:1","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":357,"nodeType":"Block","src":"7760:373:1","statements":[{"assignments":[318],"declarations":[{"constant":false,"id":318,"mutability":"mutable","name":"$","nameLocation":"7855:1:1","nodeType":"VariableDeclaration","scope":357,"src":"7826:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":317,"nodeType":"UserDefinedTypeName","pathNode":{"id":316,"name":"InitializableStorage","nameLocations":["7826:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"7826:20:1"},"referencedDeclaration":147,"src":"7826:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":321,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":319,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"7859:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7859:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7826:59:1"},{"condition":{"expression":{"id":322,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"7900:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7902:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"7900:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":328,"nodeType":"IfStatement","src":"7896:76:1","trueBody":{"id":327,"nodeType":"Block","src":"7917:55:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":324,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"7938:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":326,"nodeType":"RevertStatement","src":"7931:30:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":329,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"7985:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7987:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"7985:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8008:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":332,"name":"uint64","nodeType":"ElementaryTypeName","src":"8008:6:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":331,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8003:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8003:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8016:3:1","memberName":"max","nodeType":"MemberAccess","src":"8003:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7985:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":356,"nodeType":"IfStatement","src":"7981:146:1","trueBody":{"id":355,"nodeType":"Block","src":"8021:106:1","statements":[{"expression":{"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":337,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"8035:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8037:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"8035:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8057:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":341,"name":"uint64","nodeType":"ElementaryTypeName","src":"8057:6:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":340,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8052:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8052:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8065:3:1","memberName":"max","nodeType":"MemberAccess","src":"8052:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8035:33:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":346,"nodeType":"ExpressionStatement","src":"8035:33:1"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8104:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":349,"name":"uint64","nodeType":"ElementaryTypeName","src":"8104:6:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":348,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8099:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8099:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8112:3:1","memberName":"max","nodeType":"MemberAccess","src":"8099:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":347,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"8087:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":354,"nodeType":"EmitStatement","src":"8082:34:1"}]}}]},"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"7231:475:1","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":358,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"7720:20:1","nodeType":"FunctionDefinition","parameters":{"id":314,"nodeType":"ParameterList","parameters":[],"src":"7740:2:1"},"returnParameters":{"id":315,"nodeType":"ParameterList","parameters":[],"src":"7760:0:1"},"scope":390,"src":"7711:422:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":368,"nodeType":"Block","src":"8308:63:1","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":364,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"8325:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8325:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"8325:39:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":363,"id":367,"nodeType":"Return","src":"8318:46:1"}]},"documentation":{"id":359,"nodeType":"StructuredDocumentation","src":"8139:99:1","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":369,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"8252:22:1","nodeType":"FunctionDefinition","parameters":{"id":360,"nodeType":"ParameterList","parameters":[],"src":"8274:2:1"},"returnParameters":{"id":363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":369,"src":"8300:6:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":361,"name":"uint64","nodeType":"ElementaryTypeName","src":"8300:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8299:8:1"},"scope":390,"src":"8243:128:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":379,"nodeType":"Block","src":"8543:64:1","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":375,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"8560:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"8560:40:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":374,"id":378,"nodeType":"Return","src":"8553:47:1"}]},"documentation":{"id":370,"nodeType":"StructuredDocumentation","src":"8377:105:1","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":380,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"8496:15:1","nodeType":"FunctionDefinition","parameters":{"id":371,"nodeType":"ParameterList","parameters":[],"src":"8511:2:1"},"returnParameters":{"id":374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":380,"src":"8537:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":372,"name":"bool","nodeType":"ElementaryTypeName","src":"8537:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8536:6:1"},"scope":390,"src":"8487:120:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":388,"nodeType":"Block","src":"8827:80:1","statements":[{"AST":{"nodeType":"YulBlock","src":"8846:55:1","statements":[{"nodeType":"YulAssignment","src":"8860:31:1","value":{"name":"INITIALIZABLE_STORAGE","nodeType":"YulIdentifier","src":"8870:21:1"},"variableNames":[{"name":"$.slot","nodeType":"YulIdentifier","src":"8860:6:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":385,"isOffset":false,"isSlot":true,"src":"8860:6:1","suffix":"slot","valueSize":1},{"declaration":150,"isOffset":false,"isSlot":false,"src":"8870:21:1","valueSize":1}],"id":387,"nodeType":"InlineAssembly","src":"8837:64:1"}]},"documentation":{"id":381,"nodeType":"StructuredDocumentation","src":"8613:67:1","text":" @dev Returns a pointer to the storage namespace."},"id":389,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializableStorage","nameLocation":"8746:24:1","nodeType":"FunctionDefinition","parameters":{"id":382,"nodeType":"ParameterList","parameters":[],"src":"8770:2:1"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":385,"mutability":"mutable","name":"$","nameLocation":"8824:1:1","nodeType":"VariableDeclaration","scope":389,"src":"8795:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":384,"nodeType":"UserDefinedTypeName","pathNode":{"id":383,"name":"InitializableStorage","nameLocations":["8795:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"8795:20:1"},"referencedDeclaration":147,"src":"8795:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"src":"8794:32:1"},"scope":390,"src":"8737:170:1","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":391,"src":"2349:6560:1","usedErrors":[153,156],"usedEvents":[161]}],"src":"113:8797:1"},"id":1},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[1077],"ERC20":[905],"IERC20":[983],"IERC20Errors":[41],"IERC20Metadata":[1055]},"id":906,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":392,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:2"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":394,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":984,"src":"131:36:2","symbolAliases":[{"foreign":{"id":393,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":983,"src":"139:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":396,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":1056,"src":"168:63:2","symbolAliases":[{"foreign":{"id":395,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"176:14:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":1078,"src":"232:48:2","symbolAliases":[{"foreign":{"id":397,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"240:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":137,"src":"281:65:2","symbolAliases":[{"foreign":{"id":399,"name":"IERC20Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"289:12:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":402,"name":"Context","nameLocations":["1428:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1077,"src":"1428:7:2"},"id":403,"nodeType":"InheritanceSpecifier","src":"1428:7:2"},{"baseName":{"id":404,"name":"IERC20","nameLocations":["1437:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":983,"src":"1437:6:2"},"id":405,"nodeType":"InheritanceSpecifier","src":"1437:6:2"},{"baseName":{"id":406,"name":"IERC20Metadata","nameLocations":["1445:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"1445:14:2"},"id":407,"nodeType":"InheritanceSpecifier","src":"1445:14:2"},{"baseName":{"id":408,"name":"IERC20Errors","nameLocations":["1461:12:2"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"1461:12:2"},"id":409,"nodeType":"InheritanceSpecifier","src":"1461:12:2"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":401,"nodeType":"StructuredDocumentation","src":"348:1052:2","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification."},"fullyImplemented":true,"id":905,"linearizedBaseContracts":[905,41,1055,983,1077],"name":"ERC20","nameLocation":"1419:5:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":413,"mutability":"mutable","name":"_balances","nameLocation":"1524:9:2","nodeType":"VariableDeclaration","scope":905,"src":"1480:53:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":412,"keyName":"account","keyNameLocation":"1496:7:2","keyType":{"id":410,"name":"address","nodeType":"ElementaryTypeName","src":"1488:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1480:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1507:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":419,"mutability":"mutable","name":"_allowances","nameLocation":"1612:11:2","nodeType":"VariableDeclaration","scope":905,"src":"1540:83:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":418,"keyName":"account","keyNameLocation":"1556:7:2","keyType":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1540:63:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":417,"keyName":"spender","keyNameLocation":"1583:7:2","keyType":{"id":415,"name":"address","nodeType":"ElementaryTypeName","src":"1575:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1567:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1594:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":421,"mutability":"mutable","name":"_totalSupply","nameLocation":"1646:12:2","nodeType":"VariableDeclaration","scope":905,"src":"1630:28:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1630:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":423,"mutability":"mutable","name":"_name","nameLocation":"1680:5:2","nodeType":"VariableDeclaration","scope":905,"src":"1665:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":422,"name":"string","nodeType":"ElementaryTypeName","src":"1665:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":425,"mutability":"mutable","name":"_symbol","nameLocation":"1706:7:2","nodeType":"VariableDeclaration","scope":905,"src":"1691:22:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":424,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":441,"nodeType":"Block","src":"1952:57:2","statements":[{"expression":{"id":435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":433,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"1962:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":434,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"1970:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1962:13:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":436,"nodeType":"ExpressionStatement","src":"1962:13:2"},{"expression":{"id":439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":437,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"1985:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":438,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"1995:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1985:17:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":440,"nodeType":"ExpressionStatement","src":"1985:17:2"}]},"documentation":{"id":426,"nodeType":"StructuredDocumentation","src":"1720:171:2","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":442,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":428,"mutability":"mutable","name":"name_","nameLocation":"1922:5:2","nodeType":"VariableDeclaration","scope":442,"src":"1908:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":427,"name":"string","nodeType":"ElementaryTypeName","src":"1908:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"symbol_","nameLocation":"1943:7:2","nodeType":"VariableDeclaration","scope":442,"src":"1929:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":429,"name":"string","nodeType":"ElementaryTypeName","src":"1929:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1907:44:2"},"returnParameters":{"id":432,"nodeType":"ParameterList","parameters":[],"src":"1952:0:2"},"scope":905,"src":"1896:113:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1042],"body":{"id":450,"nodeType":"Block","src":"2134:29:2","statements":[{"expression":{"id":448,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"2151:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":447,"id":449,"nodeType":"Return","src":"2144:12:2"}]},"documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"2015:54:2","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":451,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2083:4:2","nodeType":"FunctionDefinition","parameters":{"id":444,"nodeType":"ParameterList","parameters":[],"src":"2087:2:2"},"returnParameters":{"id":447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":451,"src":"2119:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":445,"name":"string","nodeType":"ElementaryTypeName","src":"2119:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2118:15:2"},"scope":905,"src":"2074:89:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1048],"body":{"id":459,"nodeType":"Block","src":"2338:31:2","statements":[{"expression":{"id":457,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"2355:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":456,"id":458,"nodeType":"Return","src":"2348:14:2"}]},"documentation":{"id":452,"nodeType":"StructuredDocumentation","src":"2169:102:2","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":460,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2285:6:2","nodeType":"FunctionDefinition","parameters":{"id":453,"nodeType":"ParameterList","parameters":[],"src":"2291:2:2"},"returnParameters":{"id":456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":460,"src":"2323:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":454,"name":"string","nodeType":"ElementaryTypeName","src":"2323:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2322:15:2"},"scope":905,"src":"2276:93:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1054],"body":{"id":468,"nodeType":"Block","src":"3058:26:2","statements":[{"expression":{"hexValue":"3138","id":466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3075:2:2","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":465,"id":467,"nodeType":"Return","src":"3068:9:2"}]},"documentation":{"id":461,"nodeType":"StructuredDocumentation","src":"2375:622:2","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":469,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3011:8:2","nodeType":"FunctionDefinition","parameters":{"id":462,"nodeType":"ParameterList","parameters":[],"src":"3019:2:2"},"returnParameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":469,"src":"3051:5:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":463,"name":"uint8","nodeType":"ElementaryTypeName","src":"3051:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3050:7:2"},"scope":905,"src":"3002:82:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[932],"body":{"id":477,"nodeType":"Block","src":"3205:36:2","statements":[{"expression":{"id":475,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"3222:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":474,"id":476,"nodeType":"Return","src":"3215:19:2"}]},"documentation":{"id":470,"nodeType":"StructuredDocumentation","src":"3090:49:2","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":478,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3153:11:2","nodeType":"FunctionDefinition","parameters":{"id":471,"nodeType":"ParameterList","parameters":[],"src":"3164:2:2"},"returnParameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":478,"src":"3196:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"3196:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3195:9:2"},"scope":905,"src":"3144:97:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[940],"body":{"id":490,"nodeType":"Block","src":"3373:42:2","statements":[{"expression":{"baseExpression":{"id":486,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"3390:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":488,"indexExpression":{"id":487,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"3400:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3390:18:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":485,"id":489,"nodeType":"Return","src":"3383:25:2"}]},"documentation":{"id":479,"nodeType":"StructuredDocumentation","src":"3247:47:2","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":491,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3308:9:2","nodeType":"FunctionDefinition","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"account","nameLocation":"3326:7:2","nodeType":"VariableDeclaration","scope":491,"src":"3318:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":480,"name":"address","nodeType":"ElementaryTypeName","src":"3318:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3317:17:2"},"returnParameters":{"id":485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":491,"src":"3364:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3364:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3363:9:2"},"scope":905,"src":"3299:116:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[950],"body":{"id":514,"nodeType":"Block","src":"3685:103:2","statements":[{"assignments":[502],"declarations":[{"constant":false,"id":502,"mutability":"mutable","name":"owner","nameLocation":"3703:5:2","nodeType":"VariableDeclaration","scope":514,"src":"3695:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":501,"name":"address","nodeType":"ElementaryTypeName","src":"3695:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":505,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":503,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"3711:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3695:28:2"},{"expression":{"arguments":[{"id":507,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"3743:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":508,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":494,"src":"3750:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":509,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"3754:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":506,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"3733:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3733:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":511,"nodeType":"ExpressionStatement","src":"3733:27:2"},{"expression":{"hexValue":"74727565","id":512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3777:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":500,"id":513,"nodeType":"Return","src":"3770:11:2"}]},"documentation":{"id":492,"nodeType":"StructuredDocumentation","src":"3421:184:2","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."},"functionSelector":"a9059cbb","id":515,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3619:8:2","nodeType":"FunctionDefinition","parameters":{"id":497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":494,"mutability":"mutable","name":"to","nameLocation":"3636:2:2","nodeType":"VariableDeclaration","scope":515,"src":"3628:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":493,"name":"address","nodeType":"ElementaryTypeName","src":"3628:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":496,"mutability":"mutable","name":"value","nameLocation":"3648:5:2","nodeType":"VariableDeclaration","scope":515,"src":"3640:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":495,"name":"uint256","nodeType":"ElementaryTypeName","src":"3640:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3627:27:2"},"returnParameters":{"id":500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":515,"src":"3679:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":498,"name":"bool","nodeType":"ElementaryTypeName","src":"3679:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3678:6:2"},"scope":905,"src":"3610:178:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[960],"body":{"id":531,"nodeType":"Block","src":"3935:51:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":525,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"3952:11:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":527,"indexExpression":{"id":526,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"3964:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3952:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":529,"indexExpression":{"id":528,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"3971:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3952:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":524,"id":530,"nodeType":"Return","src":"3945:34:2"}]},"documentation":{"id":516,"nodeType":"StructuredDocumentation","src":"3794:47:2","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":532,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3855:9:2","nodeType":"FunctionDefinition","parameters":{"id":521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":518,"mutability":"mutable","name":"owner","nameLocation":"3873:5:2","nodeType":"VariableDeclaration","scope":532,"src":"3865:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":517,"name":"address","nodeType":"ElementaryTypeName","src":"3865:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":520,"mutability":"mutable","name":"spender","nameLocation":"3888:7:2","nodeType":"VariableDeclaration","scope":532,"src":"3880:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":519,"name":"address","nodeType":"ElementaryTypeName","src":"3880:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3864:32:2"},"returnParameters":{"id":524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":532,"src":"3926:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3926:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3925:9:2"},"scope":905,"src":"3846:140:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[970],"body":{"id":555,"nodeType":"Block","src":"4372:107:2","statements":[{"assignments":[543],"declarations":[{"constant":false,"id":543,"mutability":"mutable","name":"owner","nameLocation":"4390:5:2","nodeType":"VariableDeclaration","scope":555,"src":"4382:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":542,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":546,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":544,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"4398:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4382:28:2"},{"expression":{"arguments":[{"id":548,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"4429:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":549,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"4436:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":550,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":537,"src":"4445:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":547,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[796,856],"referencedDeclaration":796,"src":"4420:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4420:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":552,"nodeType":"ExpressionStatement","src":"4420:31:2"},{"expression":{"hexValue":"74727565","id":553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4468:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":541,"id":554,"nodeType":"Return","src":"4461:11:2"}]},"documentation":{"id":533,"nodeType":"StructuredDocumentation","src":"3992:296:2","text":" @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":556,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4302:7:2","nodeType":"FunctionDefinition","parameters":{"id":538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"spender","nameLocation":"4318:7:2","nodeType":"VariableDeclaration","scope":556,"src":"4310:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":534,"name":"address","nodeType":"ElementaryTypeName","src":"4310:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":537,"mutability":"mutable","name":"value","nameLocation":"4335:5:2","nodeType":"VariableDeclaration","scope":556,"src":"4327:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":536,"name":"uint256","nodeType":"ElementaryTypeName","src":"4327:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4309:32:2"},"returnParameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":556,"src":"4366:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":539,"name":"bool","nodeType":"ElementaryTypeName","src":"4366:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4365:6:2"},"scope":905,"src":"4293:186:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[982],"body":{"id":587,"nodeType":"Block","src":"5132:151:2","statements":[{"assignments":[569],"declarations":[{"constant":false,"id":569,"mutability":"mutable","name":"spender","nameLocation":"5150:7:2","nodeType":"VariableDeclaration","scope":587,"src":"5142:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":568,"name":"address","nodeType":"ElementaryTypeName","src":"5142:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":572,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":570,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"5160:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5142:30:2"},{"expression":{"arguments":[{"id":574,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"5198:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":575,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"5204:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":576,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"5213:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":573,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"5182:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5182:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":578,"nodeType":"ExpressionStatement","src":"5182:37:2"},{"expression":{"arguments":[{"id":580,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"5239:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":581,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"5245:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":582,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"5249:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":579,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"5229:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5229:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":584,"nodeType":"ExpressionStatement","src":"5229:26:2"},{"expression":{"hexValue":"74727565","id":585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5272:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":567,"id":586,"nodeType":"Return","src":"5265:11:2"}]},"documentation":{"id":557,"nodeType":"StructuredDocumentation","src":"4485:549:2","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."},"functionSelector":"23b872dd","id":588,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5048:12:2","nodeType":"FunctionDefinition","parameters":{"id":564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":559,"mutability":"mutable","name":"from","nameLocation":"5069:4:2","nodeType":"VariableDeclaration","scope":588,"src":"5061:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":558,"name":"address","nodeType":"ElementaryTypeName","src":"5061:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":561,"mutability":"mutable","name":"to","nameLocation":"5083:2:2","nodeType":"VariableDeclaration","scope":588,"src":"5075:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":560,"name":"address","nodeType":"ElementaryTypeName","src":"5075:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":563,"mutability":"mutable","name":"value","nameLocation":"5095:5:2","nodeType":"VariableDeclaration","scope":588,"src":"5087:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":562,"name":"uint256","nodeType":"ElementaryTypeName","src":"5087:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:41:2"},"returnParameters":{"id":567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":588,"src":"5126:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":565,"name":"bool","nodeType":"ElementaryTypeName","src":"5126:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5125:6:2"},"scope":905,"src":"5039:244:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":634,"nodeType":"Block","src":"5725:231:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":598,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"5739:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5755:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5747:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":599,"name":"address","nodeType":"ElementaryTypeName","src":"5747:7:2","typeDescriptions":{}}},"id":602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5747:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5739:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":612,"nodeType":"IfStatement","src":"5735:86:2","trueBody":{"id":611,"nodeType":"Block","src":"5759:62:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5807:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5799:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":605,"name":"address","nodeType":"ElementaryTypeName","src":"5799:7:2","typeDescriptions":{}}},"id":608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5799:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":604,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16,"src":"5780:18:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5780:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":610,"nodeType":"RevertStatement","src":"5773:37:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":613,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"5834:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5848:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5840:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":614,"name":"address","nodeType":"ElementaryTypeName","src":"5840:7:2","typeDescriptions":{}}},"id":617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5840:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5834:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":627,"nodeType":"IfStatement","src":"5830:86:2","trueBody":{"id":626,"nodeType":"Block","src":"5852:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5902:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5894:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":620,"name":"address","nodeType":"ElementaryTypeName","src":"5894:7:2","typeDescriptions":{}}},"id":623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5894:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":619,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"5873:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5873:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":625,"nodeType":"RevertStatement","src":"5866:39:2"}]}},{"expression":{"arguments":[{"id":629,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"5933:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":630,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"5939:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"5943:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":628,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"5925:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5925:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":633,"nodeType":"ExpressionStatement","src":"5925:24:2"}]},"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"5289:362:2","text":" @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":635,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"5665:9:2","nodeType":"FunctionDefinition","parameters":{"id":596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"from","nameLocation":"5683:4:2","nodeType":"VariableDeclaration","scope":635,"src":"5675:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":590,"name":"address","nodeType":"ElementaryTypeName","src":"5675:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"to","nameLocation":"5697:2:2","nodeType":"VariableDeclaration","scope":635,"src":"5689:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":592,"name":"address","nodeType":"ElementaryTypeName","src":"5689:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":595,"mutability":"mutable","name":"value","nameLocation":"5709:5:2","nodeType":"VariableDeclaration","scope":635,"src":"5701:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":594,"name":"uint256","nodeType":"ElementaryTypeName","src":"5701:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5674:41:2"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[],"src":"5725:0:2"},"scope":905,"src":"5656:300:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":711,"nodeType":"Block","src":"6346:1032:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":645,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6360:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6376:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6368:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":646,"name":"address","nodeType":"ElementaryTypeName","src":"6368:7:2","typeDescriptions":{}}},"id":649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6368:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6360:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":682,"nodeType":"Block","src":"6534:362:2","statements":[{"assignments":[657],"declarations":[{"constant":false,"id":657,"mutability":"mutable","name":"fromBalance","nameLocation":"6556:11:2","nodeType":"VariableDeclaration","scope":682,"src":"6548:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":656,"name":"uint256","nodeType":"ElementaryTypeName","src":"6548:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":661,"initialValue":{"baseExpression":{"id":658,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"6570:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":660,"indexExpression":{"id":659,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6580:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6570:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6548:37:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":662,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"6603:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6617:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6603:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":672,"nodeType":"IfStatement","src":"6599:115:2","trueBody":{"id":671,"nodeType":"Block","src":"6624:90:2","statements":[{"errorCall":{"arguments":[{"id":666,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6674:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":667,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"6680:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6693:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":665,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"6649:24:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6649:50:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":670,"nodeType":"RevertStatement","src":"6642:57:2"}]}},{"id":681,"nodeType":"UncheckedBlock","src":"6727:159:2","statements":[{"expression":{"id":679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":673,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"6834:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":675,"indexExpression":{"id":674,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6844:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6834:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":676,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"6852:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6866:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6852:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6834:37:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":680,"nodeType":"ExpressionStatement","src":"6834:37:2"}]}]},"id":683,"nodeType":"IfStatement","src":"6356:540:2","trueBody":{"id":655,"nodeType":"Block","src":"6380:148:2","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":651,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"6496:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6512:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6496:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":654,"nodeType":"ExpressionStatement","src":"6496:21:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":684,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"6910:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6924:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"6916:7:2","typeDescriptions":{}}},"id":688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6910:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":703,"nodeType":"Block","src":"7125:206:2","statements":[{"id":702,"nodeType":"UncheckedBlock","src":"7139:182:2","statements":[{"expression":{"id":700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":696,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"7284:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":698,"indexExpression":{"id":697,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"7294:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7284:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":699,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7301:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7284:22:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":701,"nodeType":"ExpressionStatement","src":"7284:22:2"}]}]},"id":704,"nodeType":"IfStatement","src":"6906:425:2","trueBody":{"id":695,"nodeType":"Block","src":"6928:191:2","statements":[{"id":694,"nodeType":"UncheckedBlock","src":"6942:167:2","statements":[{"expression":{"id":692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":690,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"7073:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":691,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7089:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7073:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":693,"nodeType":"ExpressionStatement","src":"7073:21:2"}]}]}},{"eventCall":{"arguments":[{"id":706,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"7355:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":707,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"7361:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":708,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7365:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":705,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":917,"src":"7346:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7346:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":710,"nodeType":"EmitStatement","src":"7341:30:2"}]},"documentation":{"id":636,"nodeType":"StructuredDocumentation","src":"5962:304:2","text":" @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."},"id":712,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"6280:7:2","nodeType":"FunctionDefinition","parameters":{"id":643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"from","nameLocation":"6296:4:2","nodeType":"VariableDeclaration","scope":712,"src":"6288:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":637,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":640,"mutability":"mutable","name":"to","nameLocation":"6310:2:2","nodeType":"VariableDeclaration","scope":712,"src":"6302:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":639,"name":"address","nodeType":"ElementaryTypeName","src":"6302:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":642,"mutability":"mutable","name":"value","nameLocation":"6322:5:2","nodeType":"VariableDeclaration","scope":712,"src":"6314:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":641,"name":"uint256","nodeType":"ElementaryTypeName","src":"6314:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6287:41:2"},"returnParameters":{"id":644,"nodeType":"ParameterList","parameters":[],"src":"6346:0:2"},"scope":905,"src":"6271:1107:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":744,"nodeType":"Block","src":"7777:152:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":720,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"7791:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7810:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7802:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":721,"name":"address","nodeType":"ElementaryTypeName","src":"7802:7:2","typeDescriptions":{}}},"id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7802:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7791:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":734,"nodeType":"IfStatement","src":"7787:91:2","trueBody":{"id":733,"nodeType":"Block","src":"7814:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7864:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7856:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":727,"name":"address","nodeType":"ElementaryTypeName","src":"7856:7:2","typeDescriptions":{}}},"id":730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7856:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":726,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"7835:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7835:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":732,"nodeType":"RevertStatement","src":"7828:39:2"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7903:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7895:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":736,"name":"address","nodeType":"ElementaryTypeName","src":"7895:7:2","typeDescriptions":{}}},"id":739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7895:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":740,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"7907:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":741,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"7916:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":735,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"7887:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7887:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"ExpressionStatement","src":"7887:35:2"}]},"documentation":{"id":713,"nodeType":"StructuredDocumentation","src":"7384:332:2","text":" @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":745,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"7730:5:2","nodeType":"FunctionDefinition","parameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":715,"mutability":"mutable","name":"account","nameLocation":"7744:7:2","nodeType":"VariableDeclaration","scope":745,"src":"7736:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":714,"name":"address","nodeType":"ElementaryTypeName","src":"7736:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":717,"mutability":"mutable","name":"value","nameLocation":"7761:5:2","nodeType":"VariableDeclaration","scope":745,"src":"7753:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":716,"name":"uint256","nodeType":"ElementaryTypeName","src":"7753:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7735:32:2"},"returnParameters":{"id":719,"nodeType":"ParameterList","parameters":[],"src":"7777:0:2"},"scope":905,"src":"7721:208:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":777,"nodeType":"Block","src":"8303:150:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":753,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"8317:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8336:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8328:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":754,"name":"address","nodeType":"ElementaryTypeName","src":"8328:7:2","typeDescriptions":{}}},"id":757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8328:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8317:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":767,"nodeType":"IfStatement","src":"8313:89:2","trueBody":{"id":766,"nodeType":"Block","src":"8340:62:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8388:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8380:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":760,"name":"address","nodeType":"ElementaryTypeName","src":"8380:7:2","typeDescriptions":{}}},"id":763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8380:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":759,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16,"src":"8361:18:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8361:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":765,"nodeType":"RevertStatement","src":"8354:37:2"}]}},{"expression":{"arguments":[{"id":769,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"8419:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8436:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8428:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":770,"name":"address","nodeType":"ElementaryTypeName","src":"8428:7:2","typeDescriptions":{}}},"id":773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8428:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":774,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"8440:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":768,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"8411:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8411:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":776,"nodeType":"ExpressionStatement","src":"8411:35:2"}]},"documentation":{"id":746,"nodeType":"StructuredDocumentation","src":"7935:307:2","text":" @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"id":778,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"8256:5:2","nodeType":"FunctionDefinition","parameters":{"id":751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":748,"mutability":"mutable","name":"account","nameLocation":"8270:7:2","nodeType":"VariableDeclaration","scope":778,"src":"8262:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":747,"name":"address","nodeType":"ElementaryTypeName","src":"8262:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":750,"mutability":"mutable","name":"value","nameLocation":"8287:5:2","nodeType":"VariableDeclaration","scope":778,"src":"8279:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":749,"name":"uint256","nodeType":"ElementaryTypeName","src":"8279:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8261:32:2"},"returnParameters":{"id":752,"nodeType":"ParameterList","parameters":[],"src":"8303:0:2"},"scope":905,"src":"8247:206:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":795,"nodeType":"Block","src":"9063:54:2","statements":[{"expression":{"arguments":[{"id":789,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"9082:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":790,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"9089:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":791,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"9098:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9105:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":788,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[796,856],"referencedDeclaration":856,"src":"9073:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9073:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"ExpressionStatement","src":"9073:37:2"}]},"documentation":{"id":779,"nodeType":"StructuredDocumentation","src":"8459:525:2","text":" @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":796,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"8998:8:2","nodeType":"FunctionDefinition","parameters":{"id":786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":781,"mutability":"mutable","name":"owner","nameLocation":"9015:5:2","nodeType":"VariableDeclaration","scope":796,"src":"9007:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":780,"name":"address","nodeType":"ElementaryTypeName","src":"9007:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":783,"mutability":"mutable","name":"spender","nameLocation":"9030:7:2","nodeType":"VariableDeclaration","scope":796,"src":"9022:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":782,"name":"address","nodeType":"ElementaryTypeName","src":"9022:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":785,"mutability":"mutable","name":"value","nameLocation":"9047:5:2","nodeType":"VariableDeclaration","scope":796,"src":"9039:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9039:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9006:47:2"},"returnParameters":{"id":787,"nodeType":"ParameterList","parameters":[],"src":"9063:0:2"},"scope":905,"src":"8989:128:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":855,"nodeType":"Block","src":"10047:334:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":808,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"10061:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10078:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10070:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":809,"name":"address","nodeType":"ElementaryTypeName","src":"10070:7:2","typeDescriptions":{}}},"id":812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10070:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10061:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":822,"nodeType":"IfStatement","src":"10057:89:2","trueBody":{"id":821,"nodeType":"Block","src":"10082:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10132:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10124:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":815,"name":"address","nodeType":"ElementaryTypeName","src":"10124:7:2","typeDescriptions":{}}},"id":818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10124:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":814,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"10103:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10103:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":820,"nodeType":"RevertStatement","src":"10096:39:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":823,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"10159:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10178:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10170:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":824,"name":"address","nodeType":"ElementaryTypeName","src":"10170:7:2","typeDescriptions":{}}},"id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10170:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10159:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":837,"nodeType":"IfStatement","src":"10155:90:2","trueBody":{"id":836,"nodeType":"Block","src":"10182:63:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10231:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10223:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":830,"name":"address","nodeType":"ElementaryTypeName","src":"10223:7:2","typeDescriptions":{}}},"id":833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10223:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":829,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"10203:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10203:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":835,"nodeType":"RevertStatement","src":"10196:38:2"}]}},{"expression":{"id":844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":838,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"10254:11:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":841,"indexExpression":{"id":839,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"10266:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10254:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":842,"indexExpression":{"id":840,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"10273:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10254:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10284:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10254:35:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":845,"nodeType":"ExpressionStatement","src":"10254:35:2"},{"condition":{"id":846,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10303:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":854,"nodeType":"IfStatement","src":"10299:76:2","trueBody":{"id":853,"nodeType":"Block","src":"10314:61:2","statements":[{"eventCall":{"arguments":[{"id":848,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"10342:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":849,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"10349:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":850,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10358:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":847,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"10333:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10333:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":852,"nodeType":"EmitStatement","src":"10328:36:2"}]}}]},"documentation":{"id":797,"nodeType":"StructuredDocumentation","src":"9123:821:2","text":" @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."},"id":856,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"9958:8:2","nodeType":"FunctionDefinition","parameters":{"id":806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":799,"mutability":"mutable","name":"owner","nameLocation":"9975:5:2","nodeType":"VariableDeclaration","scope":856,"src":"9967:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":798,"name":"address","nodeType":"ElementaryTypeName","src":"9967:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":801,"mutability":"mutable","name":"spender","nameLocation":"9990:7:2","nodeType":"VariableDeclaration","scope":856,"src":"9982:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":800,"name":"address","nodeType":"ElementaryTypeName","src":"9982:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":803,"mutability":"mutable","name":"value","nameLocation":"10007:5:2","nodeType":"VariableDeclaration","scope":856,"src":"9999:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":802,"name":"uint256","nodeType":"ElementaryTypeName","src":"9999:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":805,"mutability":"mutable","name":"emitEvent","nameLocation":"10019:9:2","nodeType":"VariableDeclaration","scope":856,"src":"10014:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":804,"name":"bool","nodeType":"ElementaryTypeName","src":"10014:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9966:63:2"},"returnParameters":{"id":807,"nodeType":"ParameterList","parameters":[],"src":"10047:0:2"},"scope":905,"src":"9949:432:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":903,"nodeType":"Block","src":"10752:388:2","statements":[{"assignments":[867],"declarations":[{"constant":false,"id":867,"mutability":"mutable","name":"currentAllowance","nameLocation":"10770:16:2","nodeType":"VariableDeclaration","scope":903,"src":"10762:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":866,"name":"uint256","nodeType":"ElementaryTypeName","src":"10762:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":872,"initialValue":{"arguments":[{"id":869,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"10799:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":870,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"10806:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":868,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"10789:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10789:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10762:52:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":873,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"10828:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10853:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":875,"name":"uint256","nodeType":"ElementaryTypeName","src":"10853:7:2","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":874,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10848:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10848:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10862:3:2","memberName":"max","nodeType":"MemberAccess","src":"10848:17:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10828:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":902,"nodeType":"IfStatement","src":"10824:310:2","trueBody":{"id":901,"nodeType":"Block","src":"10867:267:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":880,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"10885:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"10904:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10885:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":890,"nodeType":"IfStatement","src":"10881:130:2","trueBody":{"id":889,"nodeType":"Block","src":"10911:100:2","statements":[{"errorCall":{"arguments":[{"id":884,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"10963:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":885,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"10972:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"10990:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":883,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"10936:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10936:60:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"RevertStatement","src":"10929:67:2"}]}},{"id":900,"nodeType":"UncheckedBlock","src":"11024:100:2","statements":[{"expression":{"arguments":[{"id":892,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"11061:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":893,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"11068:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":894,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"11077:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":895,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"11096:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11077:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11103:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":891,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[796,856],"referencedDeclaration":856,"src":"11052:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11052:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":899,"nodeType":"ExpressionStatement","src":"11052:57:2"}]}]}}]},"documentation":{"id":857,"nodeType":"StructuredDocumentation","src":"10387:271:2","text":" @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."},"id":904,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10672:15:2","nodeType":"FunctionDefinition","parameters":{"id":864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":859,"mutability":"mutable","name":"owner","nameLocation":"10696:5:2","nodeType":"VariableDeclaration","scope":904,"src":"10688:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":858,"name":"address","nodeType":"ElementaryTypeName","src":"10688:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":861,"mutability":"mutable","name":"spender","nameLocation":"10711:7:2","nodeType":"VariableDeclaration","scope":904,"src":"10703:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":860,"name":"address","nodeType":"ElementaryTypeName","src":"10703:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"value","nameLocation":"10728:5:2","nodeType":"VariableDeclaration","scope":904,"src":"10720:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":862,"name":"uint256","nodeType":"ElementaryTypeName","src":"10720:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10687:47:2"},"returnParameters":{"id":865,"nodeType":"ParameterList","parameters":[],"src":"10752:0:2"},"scope":905,"src":"10663:477:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":906,"src":"1401:9741:2","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]}],"src":"105:11038:2"},"id":2},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[983]},"id":984,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":907,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":908,"nodeType":"StructuredDocumentation","src":"132:70:3","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":983,"linearizedBaseContracts":[983],"name":"IERC20","nameLocation":"213:6:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":909,"nodeType":"StructuredDocumentation","src":"226:158:3","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":917,"name":"Transfer","nameLocation":"395:8:3","nodeType":"EventDefinition","parameters":{"id":916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":911,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"420:4:3","nodeType":"VariableDeclaration","scope":917,"src":"404:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":910,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":913,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"442:2:3","nodeType":"VariableDeclaration","scope":917,"src":"426:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":912,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":915,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"454:5:3","nodeType":"VariableDeclaration","scope":917,"src":"446:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":914,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:57:3"},"src":"389:72:3"},{"anonymous":false,"documentation":{"id":918,"nodeType":"StructuredDocumentation","src":"467:148:3","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":926,"name":"Approval","nameLocation":"626:8:3","nodeType":"EventDefinition","parameters":{"id":925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":920,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"651:5:3","nodeType":"VariableDeclaration","scope":926,"src":"635:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":919,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":922,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"674:7:3","nodeType":"VariableDeclaration","scope":926,"src":"658:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":921,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":924,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"691:5:3","nodeType":"VariableDeclaration","scope":926,"src":"683:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":923,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"634:63:3"},"src":"620:78:3"},{"documentation":{"id":927,"nodeType":"StructuredDocumentation","src":"704:65:3","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":932,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:3","nodeType":"FunctionDefinition","parameters":{"id":928,"nodeType":"ParameterList","parameters":[],"src":"794:2:3"},"returnParameters":{"id":931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":932,"src":"820:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":929,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:3"},"scope":983,"src":"774:55:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":933,"nodeType":"StructuredDocumentation","src":"835:71:3","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":940,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"920:9:3","nodeType":"FunctionDefinition","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":935,"mutability":"mutable","name":"account","nameLocation":"938:7:3","nodeType":"VariableDeclaration","scope":940,"src":"930:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":934,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"929:17:3"},"returnParameters":{"id":939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":940,"src":"970:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":937,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"969:9:3"},"scope":983,"src":"911:68:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":941,"nodeType":"StructuredDocumentation","src":"985:213:3","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":950,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1212:8:3","nodeType":"FunctionDefinition","parameters":{"id":946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":943,"mutability":"mutable","name":"to","nameLocation":"1229:2:3","nodeType":"VariableDeclaration","scope":950,"src":"1221:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":942,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":945,"mutability":"mutable","name":"value","nameLocation":"1241:5:3","nodeType":"VariableDeclaration","scope":950,"src":"1233:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":944,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:27:3"},"returnParameters":{"id":949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":950,"src":"1266:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":947,"name":"bool","nodeType":"ElementaryTypeName","src":"1266:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1265:6:3"},"scope":983,"src":"1203:69:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":951,"nodeType":"StructuredDocumentation","src":"1278:264:3","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":960,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1556:9:3","nodeType":"FunctionDefinition","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":953,"mutability":"mutable","name":"owner","nameLocation":"1574:5:3","nodeType":"VariableDeclaration","scope":960,"src":"1566:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":952,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":955,"mutability":"mutable","name":"spender","nameLocation":"1589:7:3","nodeType":"VariableDeclaration","scope":960,"src":"1581:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":954,"name":"address","nodeType":"ElementaryTypeName","src":"1581:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1565:32:3"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":960,"src":"1621:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1620:9:3"},"scope":983,"src":"1547:83:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":961,"nodeType":"StructuredDocumentation","src":"1636:667:3","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":970,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2317:7:3","nodeType":"FunctionDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":963,"mutability":"mutable","name":"spender","nameLocation":"2333:7:3","nodeType":"VariableDeclaration","scope":970,"src":"2325:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":962,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":965,"mutability":"mutable","name":"value","nameLocation":"2350:5:3","nodeType":"VariableDeclaration","scope":970,"src":"2342:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":964,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2324:32:3"},"returnParameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":970,"src":"2375:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":967,"name":"bool","nodeType":"ElementaryTypeName","src":"2375:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2374:6:3"},"scope":983,"src":"2308:73:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":971,"nodeType":"StructuredDocumentation","src":"2387:297:3","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":982,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2698:12:3","nodeType":"FunctionDefinition","parameters":{"id":978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":973,"mutability":"mutable","name":"from","nameLocation":"2719:4:3","nodeType":"VariableDeclaration","scope":982,"src":"2711:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":972,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":975,"mutability":"mutable","name":"to","nameLocation":"2733:2:3","nodeType":"VariableDeclaration","scope":982,"src":"2725:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":977,"mutability":"mutable","name":"value","nameLocation":"2745:5:3","nodeType":"VariableDeclaration","scope":982,"src":"2737:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2710:41:3"},"returnParameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":982,"src":"2770:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":979,"name":"bool","nodeType":"ElementaryTypeName","src":"2770:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2769:6:3"},"scope":983,"src":"2689:87:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":984,"src":"203:2575:3","usedErrors":[],"usedEvents":[917,926]}],"src":"106:2673:3"},"id":3},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","exportedSymbols":{"Context":[1077],"ERC20":[905],"ERC20Burnable":[1029]},"id":1030,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":985,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"124:24:4"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":987,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1030,"sourceUnit":906,"src":"150:35:4","symbolAliases":[{"foreign":{"id":986,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"158:5:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../../utils/Context.sol","id":989,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1030,"sourceUnit":1078,"src":"186:51:4","symbolAliases":[{"foreign":{"id":988,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"194:7:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":991,"name":"Context","nameLocations":["483:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":1077,"src":"483:7:4"},"id":992,"nodeType":"InheritanceSpecifier","src":"483:7:4"},{"baseName":{"id":993,"name":"ERC20","nameLocations":["492:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"492:5:4"},"id":994,"nodeType":"InheritanceSpecifier","src":"492:5:4"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":990,"nodeType":"StructuredDocumentation","src":"239:208:4","text":" @dev Extension of {ERC20} that allows token holders to destroy both their own\n tokens and those that they have an allowance for, in a way that can be\n recognized off-chain (via event analysis)."},"fullyImplemented":true,"id":1029,"linearizedBaseContracts":[1029,905,41,1055,983,1077],"name":"ERC20Burnable","nameLocation":"466:13:4","nodeType":"ContractDefinition","nodes":[{"body":{"id":1006,"nodeType":"Block","src":"662:43:4","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1001,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"678:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"678:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1003,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"692:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1000,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"672:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"672:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1005,"nodeType":"ExpressionStatement","src":"672:26:4"}]},"documentation":{"id":995,"nodeType":"StructuredDocumentation","src":"504:109:4","text":" @dev Destroys a `value` amount of tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","id":1007,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"627:4:4","nodeType":"FunctionDefinition","parameters":{"id":998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":997,"mutability":"mutable","name":"value","nameLocation":"640:5:4","nodeType":"VariableDeclaration","scope":1007,"src":"632:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":996,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"631:15:4"},"returnParameters":{"id":999,"nodeType":"ParameterList","parameters":[],"src":"662:0:4"},"scope":1029,"src":"618:87:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1027,"nodeType":"Block","src":"1086:93:4","statements":[{"expression":{"arguments":[{"id":1016,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"1112:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1017,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"1121:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1012,"src":"1135:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1015,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"1096:15:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1096:45:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1021,"nodeType":"ExpressionStatement","src":"1096:45:4"},{"expression":{"arguments":[{"id":1023,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"1157:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1024,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1012,"src":"1166:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1022,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"1151:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:21:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1026,"nodeType":"ExpressionStatement","src":"1151:21:4"}]},"documentation":{"id":1008,"nodeType":"StructuredDocumentation","src":"711:305:4","text":" @dev Destroys a `value` amount of tokens from `account`, deducting from\n the caller's allowance.\n See {ERC20-_burn} and {ERC20-allowance}.\n Requirements:\n - the caller must have allowance for ``accounts``'s tokens of at least\n `value`."},"functionSelector":"79cc6790","id":1028,"implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"1030:8:4","nodeType":"FunctionDefinition","parameters":{"id":1013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1010,"mutability":"mutable","name":"account","nameLocation":"1047:7:4","nodeType":"VariableDeclaration","scope":1028,"src":"1039:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1009,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1012,"mutability":"mutable","name":"value","nameLocation":"1064:5:4","nodeType":"VariableDeclaration","scope":1028,"src":"1056:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1038:32:4"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[],"src":"1086:0:4"},"scope":1029,"src":"1021:158:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":1030,"src":"448:733:4","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]}],"src":"124:1058:4"},"id":4},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[983],"IERC20Metadata":[1055]},"id":1056,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1031,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"125:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":1033,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1056,"sourceUnit":984,"src":"151:37:5","symbolAliases":[{"foreign":{"id":1032,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":983,"src":"159:6:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1035,"name":"IERC20","nameLocations":["305:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":983,"src":"305:6:5"},"id":1036,"nodeType":"InheritanceSpecifier","src":"305:6:5"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1034,"nodeType":"StructuredDocumentation","src":"190:86:5","text":" @dev Interface for the optional metadata functions from the ERC20 standard."},"fullyImplemented":false,"id":1055,"linearizedBaseContracts":[1055,983],"name":"IERC20Metadata","nameLocation":"287:14:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1037,"nodeType":"StructuredDocumentation","src":"318:54:5","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":1042,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:5","nodeType":"FunctionDefinition","parameters":{"id":1038,"nodeType":"ParameterList","parameters":[],"src":"390:2:5"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1042,"src":"416:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1039,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:5"},"scope":1055,"src":"377:54:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1043,"nodeType":"StructuredDocumentation","src":"437:56:5","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":1048,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:5","nodeType":"FunctionDefinition","parameters":{"id":1044,"nodeType":"ParameterList","parameters":[],"src":"513:2:5"},"returnParameters":{"id":1047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1048,"src":"539:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1045,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:5"},"scope":1055,"src":"498:56:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1049,"nodeType":"StructuredDocumentation","src":"560:65:5","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":1054,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:5","nodeType":"FunctionDefinition","parameters":{"id":1050,"nodeType":"ParameterList","parameters":[],"src":"647:2:5"},"returnParameters":{"id":1053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1054,"src":"673:5:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1051,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:5"},"scope":1055,"src":"630:50:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1056,"src":"277:405:5","usedErrors":[],"usedEvents":[917,926]}],"src":"125:558:5"},"id":5},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[1077]},"id":1078,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1057,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:6"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1058,"nodeType":"StructuredDocumentation","src":"127:496:6","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":1077,"linearizedBaseContracts":[1077],"name":"Context","nameLocation":"642:7:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":1066,"nodeType":"Block","src":"718:34:6","statements":[{"expression":{"expression":{"id":1063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:6","memberName":"sender","nodeType":"MemberAccess","src":"735:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1062,"id":1065,"nodeType":"Return","src":"728:17:6"}]},"id":1067,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:6","nodeType":"FunctionDefinition","parameters":{"id":1059,"nodeType":"ParameterList","parameters":[],"src":"675:2:6"},"returnParameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1067,"src":"709:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:6"},"scope":1077,"src":"656:96:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1075,"nodeType":"Block","src":"825:32:6","statements":[{"expression":{"expression":{"id":1072,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:6","memberName":"data","nodeType":"MemberAccess","src":"842:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1071,"id":1074,"nodeType":"Return","src":"835:15:6"}]},"id":1076,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:6","nodeType":"FunctionDefinition","parameters":{"id":1068,"nodeType":"ParameterList","parameters":[],"src":"775:2:6"},"returnParameters":{"id":1071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1076,"src":"809:14:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1069,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:6"},"scope":1077,"src":"758:99:6","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1078,"src":"624:235:6","usedErrors":[],"usedEvents":[]}],"src":"101:759:6"},"id":6},"@openzeppelin/contracts/utils/Create2.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","exportedSymbols":{"Create2":[1180]},"id":1181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1079,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:7"},{"abstract":false,"baseContracts":[],"canonicalName":"Create2","contractDependencies":[],"contractKind":"library","documentation":{"id":1080,"nodeType":"StructuredDocumentation","src":"127:367:7","text":" @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n `CREATE2` can be used to compute in advance the address where a smart\n contract will be deployed, which allows for interesting new mechanisms known\n as 'counterfactual interactions'.\n See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n information."},"fullyImplemented":true,"id":1180,"linearizedBaseContracts":[1180],"name":"Create2","nameLocation":"503:7:7","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1081,"nodeType":"StructuredDocumentation","src":"517:75:7","text":" @dev Not enough balance for performing a CREATE2 deploy."},"errorSelector":"e4bbecac","id":1087,"name":"Create2InsufficientBalance","nameLocation":"603:26:7","nodeType":"ErrorDefinition","parameters":{"id":1086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1083,"mutability":"mutable","name":"balance","nameLocation":"638:7:7","nodeType":"VariableDeclaration","scope":1087,"src":"630:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1082,"name":"uint256","nodeType":"ElementaryTypeName","src":"630:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1085,"mutability":"mutable","name":"needed","nameLocation":"655:6:7","nodeType":"VariableDeclaration","scope":1087,"src":"647:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1084,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"629:33:7"},"src":"597:66:7"},{"documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"669:50:7","text":" @dev There's no code to deploy."},"errorSelector":"4ca249dc","id":1090,"name":"Create2EmptyBytecode","nameLocation":"730:20:7","nodeType":"ErrorDefinition","parameters":{"id":1089,"nodeType":"ParameterList","parameters":[],"src":"750:2:7"},"src":"724:29:7"},{"documentation":{"id":1091,"nodeType":"StructuredDocumentation","src":"759:46:7","text":" @dev The deployment failed."},"errorSelector":"741752c2","id":1093,"name":"Create2FailedDeployment","nameLocation":"816:23:7","nodeType":"ErrorDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[],"src":"839:2:7"},"src":"810:32:7"},{"body":{"id":1144,"nodeType":"Block","src":"1514:472:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1107,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1536:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}],"id":1106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"1528:7:7","typeDescriptions":{}}},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:7:7","memberName":"balance","nodeType":"MemberAccess","src":"1528:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1110,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"1552:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1528:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1122,"nodeType":"IfStatement","src":"1524:125:7","trueBody":{"id":1121,"nodeType":"Block","src":"1560:89:7","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":1115,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1616:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}],"id":1114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1608:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1113,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:7","typeDescriptions":{}}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1608:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:7:7","memberName":"balance","nodeType":"MemberAccess","src":"1608:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"1631:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1112,"name":"Create2InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"1581:26:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1581:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1120,"nodeType":"RevertStatement","src":"1574:64:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1123,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"1662:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1671:6:7","memberName":"length","nodeType":"MemberAccess","src":"1662:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1681:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1662:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1131,"nodeType":"IfStatement","src":"1658:80:7","trueBody":{"id":1130,"nodeType":"Block","src":"1684:54:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1127,"name":"Create2EmptyBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1090,"src":"1705:20:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1705:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1129,"nodeType":"RevertStatement","src":"1698:29:7"}]}},{"AST":{"nodeType":"YulBlock","src":"1799:91:7","statements":[{"nodeType":"YulAssignment","src":"1813:67:7","value":{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"1829:6:7"},{"arguments":[{"name":"bytecode","nodeType":"YulIdentifier","src":"1841:8:7"},{"kind":"number","nodeType":"YulLiteral","src":"1851:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1837:3:7"},"nodeType":"YulFunctionCall","src":"1837:19:7"},{"arguments":[{"name":"bytecode","nodeType":"YulIdentifier","src":"1864:8:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1858:5:7"},"nodeType":"YulFunctionCall","src":"1858:15:7"},{"name":"salt","nodeType":"YulIdentifier","src":"1875:4:7"}],"functionName":{"name":"create2","nodeType":"YulIdentifier","src":"1821:7:7"},"nodeType":"YulFunctionCall","src":"1821:59:7"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"1813:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1103,"isOffset":false,"isSlot":false,"src":"1813:4:7","valueSize":1},{"declaration":1096,"isOffset":false,"isSlot":false,"src":"1829:6:7","valueSize":1},{"declaration":1100,"isOffset":false,"isSlot":false,"src":"1841:8:7","valueSize":1},{"declaration":1100,"isOffset":false,"isSlot":false,"src":"1864:8:7","valueSize":1},{"declaration":1098,"isOffset":false,"isSlot":false,"src":"1875:4:7","valueSize":1}],"id":1132,"nodeType":"InlineAssembly","src":"1790:100:7"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1133,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"1903:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1919:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1911:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1134,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:7","typeDescriptions":{}}},"id":1137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1903:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1143,"nodeType":"IfStatement","src":"1899:81:7","trueBody":{"id":1142,"nodeType":"Block","src":"1923:57:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1139,"name":"Create2FailedDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"1944:23:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"RevertStatement","src":"1937:32:7"}]}}]},"documentation":{"id":1094,"nodeType":"StructuredDocumentation","src":"848:560:7","text":" @dev Deploys a contract using `CREATE2`. The address where the contract\n will be deployed can be known in advance via {computeAddress}.\n The bytecode for a contract can be obtained from Solidity with\n `type(contractName).creationCode`.\n Requirements:\n - `bytecode` must not be empty.\n - `salt` must have not been used for `bytecode` already.\n - the factory must have a balance of at least `amount`.\n - if `amount` is non-zero, `bytecode` must have a `payable` constructor."},"id":1145,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"1422:6:7","nodeType":"FunctionDefinition","parameters":{"id":1101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1096,"mutability":"mutable","name":"amount","nameLocation":"1437:6:7","nodeType":"VariableDeclaration","scope":1145,"src":"1429:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1429:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1098,"mutability":"mutable","name":"salt","nameLocation":"1453:4:7","nodeType":"VariableDeclaration","scope":1145,"src":"1445:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1445:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1100,"mutability":"mutable","name":"bytecode","nameLocation":"1472:8:7","nodeType":"VariableDeclaration","scope":1145,"src":"1459:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1099,"name":"bytes","nodeType":"ElementaryTypeName","src":"1459:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1428:53:7"},"returnParameters":{"id":1104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1103,"mutability":"mutable","name":"addr","nameLocation":"1508:4:7","nodeType":"VariableDeclaration","scope":1145,"src":"1500:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1102,"name":"address","nodeType":"ElementaryTypeName","src":"1500:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1499:14:7"},"scope":1180,"src":"1413:573:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1164,"nodeType":"Block","src":"2282:73:7","statements":[{"expression":{"arguments":[{"id":1156,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"2314:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1157,"name":"bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2320:12:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":1160,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2342:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}],"id":1159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2334:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"2334:7:7","typeDescriptions":{}}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2334:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1155,"name":"computeAddress","nodeType":"Identifier","overloadedDeclarations":[1165,1179],"referencedDeclaration":1179,"src":"2299:14:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1154,"id":1163,"nodeType":"Return","src":"2292:56:7"}]},"documentation":{"id":1146,"nodeType":"StructuredDocumentation","src":"1992:193:7","text":" @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n `bytecodeHash` or `salt` will result in a new destination address."},"id":1165,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"2199:14:7","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1148,"mutability":"mutable","name":"salt","nameLocation":"2222:4:7","nodeType":"VariableDeclaration","scope":1165,"src":"2214:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2214:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1150,"mutability":"mutable","name":"bytecodeHash","nameLocation":"2236:12:7","nodeType":"VariableDeclaration","scope":1165,"src":"2228:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2228:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2213:36:7"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1165,"src":"2273:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1152,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2272:9:7"},"scope":1180,"src":"2190:165:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1178,"nodeType":"Block","src":"2713:1657:7","statements":[{"AST":{"nodeType":"YulBlock","src":"2775:1589:7","statements":[{"nodeType":"YulVariableDeclaration","src":"2789:22:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2806:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2800:5:7"},"nodeType":"YulFunctionCall","src":"2800:11:7"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"2793:3:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4013:3:7"},{"kind":"number","nodeType":"YulLiteral","src":"4018:4:7","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4009:3:7"},"nodeType":"YulFunctionCall","src":"4009:14:7"},{"name":"bytecodeHash","nodeType":"YulIdentifier","src":"4025:12:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4002:6:7"},"nodeType":"YulFunctionCall","src":"4002:36:7"},"nodeType":"YulExpressionStatement","src":"4002:36:7"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4062:3:7"},{"kind":"number","nodeType":"YulLiteral","src":"4067:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4058:3:7"},"nodeType":"YulFunctionCall","src":"4058:14:7"},{"name":"salt","nodeType":"YulIdentifier","src":"4074:4:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4051:6:7"},"nodeType":"YulFunctionCall","src":"4051:28:7"},"nodeType":"YulExpressionStatement","src":"4051:28:7"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4099:3:7"},{"name":"deployer","nodeType":"YulIdentifier","src":"4104:8:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4092:6:7"},"nodeType":"YulFunctionCall","src":"4092:21:7"},"nodeType":"YulExpressionStatement","src":"4092:21:7"},{"nodeType":"YulVariableDeclaration","src":"4175:27:7","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4192:3:7"},{"kind":"number","nodeType":"YulLiteral","src":"4197:4:7","type":"","value":"0x0b"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4188:3:7"},"nodeType":"YulFunctionCall","src":"4188:14:7"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"4179:5:7","type":""}]},{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"4301:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4308:4:7","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"4293:7:7"},"nodeType":"YulFunctionCall","src":"4293:20:7"},"nodeType":"YulExpressionStatement","src":"4293:20:7"},{"nodeType":"YulAssignment","src":"4326:28:7","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"4344:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4351:2:7","type":"","value":"85"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"4334:9:7"},"nodeType":"YulFunctionCall","src":"4334:20:7"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"4326:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1175,"isOffset":false,"isSlot":false,"src":"4326:4:7","valueSize":1},{"declaration":1170,"isOffset":false,"isSlot":false,"src":"4025:12:7","valueSize":1},{"declaration":1172,"isOffset":false,"isSlot":false,"src":"4104:8:7","valueSize":1},{"declaration":1168,"isOffset":false,"isSlot":false,"src":"4074:4:7","valueSize":1}],"id":1177,"nodeType":"InlineAssembly","src":"2766:1598:7"}]},"documentation":{"id":1166,"nodeType":"StructuredDocumentation","src":"2361:232:7","text":" @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}."},"id":1179,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"2607:14:7","nodeType":"FunctionDefinition","parameters":{"id":1173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1168,"mutability":"mutable","name":"salt","nameLocation":"2630:4:7","nodeType":"VariableDeclaration","scope":1179,"src":"2622:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2622:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"bytecodeHash","nameLocation":"2644:12:7","nodeType":"VariableDeclaration","scope":1179,"src":"2636:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2636:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1172,"mutability":"mutable","name":"deployer","nameLocation":"2666:8:7","nodeType":"VariableDeclaration","scope":1179,"src":"2658:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1171,"name":"address","nodeType":"ElementaryTypeName","src":"2658:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2621:54:7"},"returnParameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"addr","nameLocation":"2707:4:7","nodeType":"VariableDeclaration","scope":1179,"src":"2699:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1174,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2698:14:7"},"scope":1180,"src":"2598:1772:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1181,"src":"495:3877:7","usedErrors":[1087,1090,1093],"usedEvents":[]}],"src":"101:4272:7"},"id":7},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[2911],"SignedMath":[3016],"Strings":[1435]},"id":1436,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1182,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:8"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1436,"sourceUnit":2912,"src":"127:37:8","symbolAliases":[{"foreign":{"id":1183,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"135:4:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":1186,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1436,"sourceUnit":3017,"src":"165:49:8","symbolAliases":[{"foreign":{"id":1185,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"173:10:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":1187,"nodeType":"StructuredDocumentation","src":"216:34:8","text":" @dev String operations."},"fullyImplemented":true,"id":1435,"linearizedBaseContracts":[1435],"name":"Strings","nameLocation":"259:7:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1190,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"298:10:8","nodeType":"VariableDeclaration","scope":1435,"src":"273:56:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1188,"name":"bytes16","nodeType":"ElementaryTypeName","src":"273:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":1189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":1193,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"358:14:8","nodeType":"VariableDeclaration","scope":1435,"src":"335:42:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1191,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"documentation":{"id":1194,"nodeType":"StructuredDocumentation","src":"384:81:8","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":1200,"name":"StringsInsufficientHexLength","nameLocation":"476:28:8","nodeType":"ErrorDefinition","parameters":{"id":1199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1196,"mutability":"mutable","name":"value","nameLocation":"513:5:8","nodeType":"VariableDeclaration","scope":1200,"src":"505:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1195,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1198,"mutability":"mutable","name":"length","nameLocation":"528:6:8","nodeType":"VariableDeclaration","scope":1200,"src":"520:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1197,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:31:8"},"src":"470:66:8"},{"body":{"id":1247,"nodeType":"Block","src":"708:627:8","statements":[{"id":1246,"nodeType":"UncheckedBlock","src":"718:611:8","statements":[{"assignments":[1209],"declarations":[{"constant":false,"id":1209,"mutability":"mutable","name":"length","nameLocation":"750:6:8","nodeType":"VariableDeclaration","scope":1246,"src":"742:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1208,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1216,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1212,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"770:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1210,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"759:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2911_$","typeString":"type(library Math)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:5:8","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":2731,"src":"759:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"759:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"742:38:8"},{"assignments":[1218],"declarations":[{"constant":false,"id":1218,"mutability":"mutable","name":"buffer","nameLocation":"808:6:8","nodeType":"VariableDeclaration","scope":1246,"src":"794:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1217,"name":"string","nodeType":"ElementaryTypeName","src":"794:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1223,"initialValue":{"arguments":[{"id":1221,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"828:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:10:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":1219,"name":"string","nodeType":"ElementaryTypeName","src":"821:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":1222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"794:41:8"},{"assignments":[1225],"declarations":[{"constant":false,"id":1225,"mutability":"mutable","name":"ptr","nameLocation":"857:3:8","nodeType":"VariableDeclaration","scope":1246,"src":"849:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1226,"nodeType":"VariableDeclarationStatement","src":"849:11:8"},{"AST":{"nodeType":"YulBlock","src":"930:67:8","statements":[{"nodeType":"YulAssignment","src":"948:35:8","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"959:6:8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"971:2:8","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"975:6:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:8"},"nodeType":"YulFunctionCall","src":"967:15:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"955:3:8"},"nodeType":"YulFunctionCall","src":"955:28:8"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"948:3:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1218,"isOffset":false,"isSlot":false,"src":"959:6:8","valueSize":1},{"declaration":1209,"isOffset":false,"isSlot":false,"src":"975:6:8","valueSize":1},{"declaration":1225,"isOffset":false,"isSlot":false,"src":"948:3:8","valueSize":1}],"id":1227,"nodeType":"InlineAssembly","src":"921:76:8"},{"body":{"id":1242,"nodeType":"Block","src":"1023:269:8","statements":[{"expression":{"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1041:5:8","subExpression":{"id":1229,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1041:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1231,"nodeType":"ExpressionStatement","src":"1041:5:8"},{"AST":{"nodeType":"YulBlock","src":"1124:86:8","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1154:3:8"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1168:5:8"},{"kind":"number","nodeType":"YulLiteral","src":"1175:2:8","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1164:3:8"},"nodeType":"YulFunctionCall","src":"1164:14:8"},{"name":"HEX_DIGITS","nodeType":"YulIdentifier","src":"1180:10:8"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1159:4:8"},"nodeType":"YulFunctionCall","src":"1159:32:8"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1146:7:8"},"nodeType":"YulFunctionCall","src":"1146:46:8"},"nodeType":"YulExpressionStatement","src":"1146:46:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1190,"isOffset":false,"isSlot":false,"src":"1180:10:8","valueSize":1},{"declaration":1225,"isOffset":false,"isSlot":false,"src":"1154:3:8","valueSize":1},{"declaration":1203,"isOffset":false,"isSlot":false,"src":"1168:5:8","valueSize":1}],"id":1232,"nodeType":"InlineAssembly","src":"1115:95:8"},{"expression":{"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"1227:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":1234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1227:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1236,"nodeType":"ExpressionStatement","src":"1227:11:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"1260:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1269:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1260:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1241,"nodeType":"IfStatement","src":"1256:21:8","trueBody":{"id":1240,"nodeType":"Break","src":"1272:5:8"}}]},"condition":{"hexValue":"74727565","id":1228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1017:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1243,"nodeType":"WhileStatement","src":"1010:282:8"},{"expression":{"id":1244,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"1312:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1207,"id":1245,"nodeType":"Return","src":"1305:13:8"}]}]},"documentation":{"id":1201,"nodeType":"StructuredDocumentation","src":"542:90:8","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":1248,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"646:8:8","nodeType":"FunctionDefinition","parameters":{"id":1204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1203,"mutability":"mutable","name":"value","nameLocation":"663:5:8","nodeType":"VariableDeclaration","scope":1248,"src":"655:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:15:8"},"returnParameters":{"id":1207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1248,"src":"693:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1205,"name":"string","nodeType":"ElementaryTypeName","src":"693:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"692:15:8"},"scope":1435,"src":"637:698:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1273,"nodeType":"Block","src":"1511:92:8","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1259,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"1542:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1550:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1542:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1560:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1542:20:8","trueExpression":{"hexValue":"2d","id":1262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1554:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":1268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"1588:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1266,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"1573:10:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3016_$","typeString":"type(library SignedMath)"}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:3:8","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3015,"src":"1573:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":1269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1265,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1564:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1256,"name":"string","nodeType":"ElementaryTypeName","src":"1528:6:8","typeDescriptions":{}}},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:6:8","memberName":"concat","nodeType":"MemberAccess","src":"1528:13:8","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:68:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1255,"id":1272,"nodeType":"Return","src":"1521:75:8"}]},"documentation":{"id":1249,"nodeType":"StructuredDocumentation","src":"1341:89:8","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":1274,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1444:14:8","nodeType":"FunctionDefinition","parameters":{"id":1252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1251,"mutability":"mutable","name":"value","nameLocation":"1466:5:8","nodeType":"VariableDeclaration","scope":1274,"src":"1459:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1250,"name":"int256","nodeType":"ElementaryTypeName","src":"1459:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1458:14:8"},"returnParameters":{"id":1255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1274,"src":"1496:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1253,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1495:15:8"},"scope":1435,"src":"1435:168:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1293,"nodeType":"Block","src":"1782:100:8","statements":[{"id":1292,"nodeType":"UncheckedBlock","src":"1792:84:8","statements":[{"expression":{"arguments":[{"id":1283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"1835:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1286,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"1854:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1284,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"1842:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2911_$","typeString":"type(library Math)"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1847:6:8","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":2853,"src":"1842:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1842:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1282,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1294,1377,1397],"referencedDeclaration":1377,"src":"1823:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1823:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1281,"id":1291,"nodeType":"Return","src":"1816:49:8"}]}]},"documentation":{"id":1275,"nodeType":"StructuredDocumentation","src":"1609:94:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":1294,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1717:11:8","nodeType":"FunctionDefinition","parameters":{"id":1278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"mutability":"mutable","name":"value","nameLocation":"1737:5:8","nodeType":"VariableDeclaration","scope":1294,"src":"1729:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1276,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1728:15:8"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1294,"src":"1767:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1279,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1766:15:8"},"scope":1435,"src":"1708:174:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1376,"nodeType":"Block","src":"2095:435:8","statements":[{"assignments":[1305],"declarations":[{"constant":false,"id":1305,"mutability":"mutable","name":"localValue","nameLocation":"2113:10:8","nodeType":"VariableDeclaration","scope":1376,"src":"2105:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1307,"initialValue":{"id":1306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2126:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2105:26:8"},{"assignments":[1309],"declarations":[{"constant":false,"id":1309,"mutability":"mutable","name":"buffer","nameLocation":"2154:6:8","nodeType":"VariableDeclaration","scope":1376,"src":"2141:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1308,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1318,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2173:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1313,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2177:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2173:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2186:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2173:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2163:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1310,"name":"bytes","nodeType":"ElementaryTypeName","src":"2167:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2141:47:8"},{"expression":{"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1319,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2198:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1321,"indexExpression":{"hexValue":"30","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2205:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2198:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2210:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2198:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1324,"nodeType":"ExpressionStatement","src":"2198:15:8"},{"expression":{"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1325,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2223:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1327,"indexExpression":{"hexValue":"31","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2230:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2223:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2235:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2223:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1330,"nodeType":"ExpressionStatement","src":"2223:15:8"},{"body":{"id":1359,"nodeType":"Block","src":"2293:95:8","statements":[{"expression":{"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1345,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2307:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1347,"indexExpression":{"id":1346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2314:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2307:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1348,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"2319:10:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1352,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1349,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"2330:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2343:3:8","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2330:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2319:28:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2307:40:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1354,"nodeType":"ExpressionStatement","src":"2307:40:8"},{"expression":{"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1355,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"2361:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2376:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2361:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1358,"nodeType":"ExpressionStatement","src":"2361:16:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1339,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2281:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2281:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1360,"initializationExpression":{"assignments":[1332],"declarations":[{"constant":false,"id":1332,"mutability":"mutable","name":"i","nameLocation":"2261:1:8","nodeType":"VariableDeclaration","scope":1360,"src":"2253:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1331,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1338,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1334,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2269:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2265:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2278:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2265:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2253:26:8"},"loopExpression":{"expression":{"id":1343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2288:3:8","subExpression":{"id":1342,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2290:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1344,"nodeType":"ExpressionStatement","src":"2288:3:8"},"nodeType":"ForStatement","src":"2248:140:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1361,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"2401:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2401:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1370,"nodeType":"IfStatement","src":"2397:96:8","trueBody":{"id":1369,"nodeType":"Block","src":"2418:75:8","statements":[{"errorCall":{"arguments":[{"id":1365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2468:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1366,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2475:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1364,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1200,"src":"2439:28:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2439:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1368,"nodeType":"RevertStatement","src":"2432:50:8"}]}},{"expression":{"arguments":[{"id":1373,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2516:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1371,"name":"string","nodeType":"ElementaryTypeName","src":"2509:6:8","typeDescriptions":{}}},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1303,"id":1375,"nodeType":"Return","src":"2502:21:8"}]},"documentation":{"id":1295,"nodeType":"StructuredDocumentation","src":"1888:112:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":1377,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2014:11:8","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"mutability":"mutable","name":"value","nameLocation":"2034:5:8","nodeType":"VariableDeclaration","scope":1377,"src":"2026:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"length","nameLocation":"2049:6:8","nodeType":"VariableDeclaration","scope":1377,"src":"2041:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1298,"name":"uint256","nodeType":"ElementaryTypeName","src":"2041:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2025:31:8"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1377,"src":"2080:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1301,"name":"string","nodeType":"ElementaryTypeName","src":"2080:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2079:15:8"},"scope":1435,"src":"2005:525:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1396,"nodeType":"Block","src":"2762:75:8","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1390,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"2807:4:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2799:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1388,"name":"uint160","nodeType":"ElementaryTypeName","src":"2799:7:8","typeDescriptions":{}}},"id":1391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1386,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:8","typeDescriptions":{}}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1393,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1193,"src":"2815:14:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1385,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1294,1377,1397],"referencedDeclaration":1377,"src":"2779:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1384,"id":1395,"nodeType":"Return","src":"2772:58:8"}]},"documentation":{"id":1378,"nodeType":"StructuredDocumentation","src":"2536:148:8","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":1397,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2698:11:8","nodeType":"FunctionDefinition","parameters":{"id":1381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1380,"mutability":"mutable","name":"addr","nameLocation":"2718:4:8","nodeType":"VariableDeclaration","scope":1397,"src":"2710:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1379,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2709:14:8"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1397,"src":"2747:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1382,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2746:15:8"},"scope":1435,"src":"2689:148:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1433,"nodeType":"Block","src":"2992:104:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1409,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"3015:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1407,"name":"bytes","nodeType":"ElementaryTypeName","src":"3009:5:8","typeDescriptions":{}}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3018:6:8","memberName":"length","nodeType":"MemberAccess","src":"3009:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1414,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"3034:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3028:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1412,"name":"bytes","nodeType":"ElementaryTypeName","src":"3028:5:8","typeDescriptions":{}}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3028:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:8","memberName":"length","nodeType":"MemberAccess","src":"3028:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3009:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1421,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"3063:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3057:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1419,"name":"bytes","nodeType":"ElementaryTypeName","src":"3057:5:8","typeDescriptions":{}}},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1418,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3047:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":1427,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"3086:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1425,"name":"bytes","nodeType":"ElementaryTypeName","src":"3080:5:8","typeDescriptions":{}}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1424,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3070:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3047:42:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3009:80:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1406,"id":1432,"nodeType":"Return","src":"3002:87:8"}]},"documentation":{"id":1398,"nodeType":"StructuredDocumentation","src":"2843:66:8","text":" @dev Returns true if the two strings are equal."},"id":1434,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2923:5:8","nodeType":"FunctionDefinition","parameters":{"id":1403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1400,"mutability":"mutable","name":"a","nameLocation":"2943:1:8","nodeType":"VariableDeclaration","scope":1434,"src":"2929:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1399,"name":"string","nodeType":"ElementaryTypeName","src":"2929:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1402,"mutability":"mutable","name":"b","nameLocation":"2960:1:8","nodeType":"VariableDeclaration","scope":1434,"src":"2946:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1401,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2928:34:8"},"returnParameters":{"id":1406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1434,"src":"2986:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1404,"name":"bool","nodeType":"ElementaryTypeName","src":"2986:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2985:6:8"},"scope":1435,"src":"2914:182:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1436,"src":"251:2847:8","usedErrors":[1200],"usedEvents":[]}],"src":"101:2998:8"},"id":8},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[1783]},"id":1784,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1437,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:9"},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":1438,"nodeType":"StructuredDocumentation","src":"138:205:9","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":1783,"linearizedBaseContracts":[1783],"name":"ECDSA","nameLocation":"352:5:9","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":1443,"members":[{"id":1439,"name":"NoError","nameLocation":"392:7:9","nodeType":"EnumValue","src":"392:7:9"},{"id":1440,"name":"InvalidSignature","nameLocation":"409:16:9","nodeType":"EnumValue","src":"409:16:9"},{"id":1441,"name":"InvalidSignatureLength","nameLocation":"435:22:9","nodeType":"EnumValue","src":"435:22:9"},{"id":1442,"name":"InvalidSignatureS","nameLocation":"467:17:9","nodeType":"EnumValue","src":"467:17:9"}],"name":"RecoverError","nameLocation":"369:12:9","nodeType":"EnumDefinition","src":"364:126:9"},{"documentation":{"id":1444,"nodeType":"StructuredDocumentation","src":"496:63:9","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","id":1446,"name":"ECDSAInvalidSignature","nameLocation":"570:21:9","nodeType":"ErrorDefinition","parameters":{"id":1445,"nodeType":"ParameterList","parameters":[],"src":"591:2:9"},"src":"564:30:9"},{"documentation":{"id":1447,"nodeType":"StructuredDocumentation","src":"600:60:9","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","id":1451,"name":"ECDSAInvalidSignatureLength","nameLocation":"671:27:9","nodeType":"ErrorDefinition","parameters":{"id":1450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1449,"mutability":"mutable","name":"length","nameLocation":"707:6:9","nodeType":"VariableDeclaration","scope":1451,"src":"699:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1448,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:16:9"},"src":"665:50:9"},{"documentation":{"id":1452,"nodeType":"StructuredDocumentation","src":"721:85:9","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","id":1456,"name":"ECDSAInvalidSignatureS","nameLocation":"817:22:9","nodeType":"ErrorDefinition","parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"s","nameLocation":"848:1:9","nodeType":"VariableDeclaration","scope":1456,"src":"840:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"840:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"839:11:9"},"src":"811:40:9"},{"body":{"id":1508,"nodeType":"Block","src":"2242:653:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1471,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"2256:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:6:9","memberName":"length","nodeType":"MemberAccess","src":"2256:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":1473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2276:2:9","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2256:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1506,"nodeType":"Block","src":"2781:108:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2811:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2803:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1493,"name":"address","nodeType":"ElementaryTypeName","src":"2803:7:9","typeDescriptions":{}}},"id":1496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1497,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"2815:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2828:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":1441,"src":"2815:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":1501,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"2860:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2870:6:9","memberName":"length","nodeType":"MemberAccess","src":"2860:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2852:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2852:7:9","typeDescriptions":{}}},"id":1503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2802:76:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1470,"id":1505,"nodeType":"Return","src":"2795:83:9"}]},"id":1507,"nodeType":"IfStatement","src":"2252:637:9","trueBody":{"id":1492,"nodeType":"Block","src":"2280:495:9","statements":[{"assignments":[1476],"declarations":[{"constant":false,"id":1476,"mutability":"mutable","name":"r","nameLocation":"2302:1:9","nodeType":"VariableDeclaration","scope":1492,"src":"2294:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2294:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1477,"nodeType":"VariableDeclarationStatement","src":"2294:9:9"},{"assignments":[1479],"declarations":[{"constant":false,"id":1479,"mutability":"mutable","name":"s","nameLocation":"2325:1:9","nodeType":"VariableDeclaration","scope":1492,"src":"2317:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2317:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1480,"nodeType":"VariableDeclarationStatement","src":"2317:9:9"},{"assignments":[1482],"declarations":[{"constant":false,"id":1482,"mutability":"mutable","name":"v","nameLocation":"2346:1:9","nodeType":"VariableDeclaration","scope":1492,"src":"2340:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1481,"name":"uint8","nodeType":"ElementaryTypeName","src":"2340:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1483,"nodeType":"VariableDeclarationStatement","src":"2340:7:9"},{"AST":{"nodeType":"YulBlock","src":"2548:171:9","statements":[{"nodeType":"YulAssignment","src":"2566:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2581:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2592:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:9"},"nodeType":"YulFunctionCall","src":"2577:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2571:5:9"},"nodeType":"YulFunctionCall","src":"2571:27:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2566:1:9"}]},{"nodeType":"YulAssignment","src":"2615:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2630:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2641:4:9","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2626:3:9"},"nodeType":"YulFunctionCall","src":"2626:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2620:5:9"},"nodeType":"YulFunctionCall","src":"2620:27:9"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2615:1:9"}]},{"nodeType":"YulAssignment","src":"2664:41:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2674:1:9","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2687:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2698:4:9","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2683:3:9"},"nodeType":"YulFunctionCall","src":"2683:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2677:5:9"},"nodeType":"YulFunctionCall","src":"2677:27:9"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2669:4:9"},"nodeType":"YulFunctionCall","src":"2669:36:9"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2664:1:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1476,"isOffset":false,"isSlot":false,"src":"2566:1:9","valueSize":1},{"declaration":1479,"isOffset":false,"isSlot":false,"src":"2615:1:9","valueSize":1},{"declaration":1461,"isOffset":false,"isSlot":false,"src":"2581:9:9","valueSize":1},{"declaration":1461,"isOffset":false,"isSlot":false,"src":"2630:9:9","valueSize":1},{"declaration":1461,"isOffset":false,"isSlot":false,"src":"2687:9:9","valueSize":1},{"declaration":1482,"isOffset":false,"isSlot":false,"src":"2664:1:9","valueSize":1}],"id":1484,"nodeType":"InlineAssembly","src":"2539:180:9"},{"expression":{"arguments":[{"id":1486,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"2750:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1487,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"2756:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1488,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"2759:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1489,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"2762:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1485,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1697,"src":"2739:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1470,"id":1491,"nodeType":"Return","src":"2732:32:9"}]}}]},"documentation":{"id":1457,"nodeType":"StructuredDocumentation","src":"857:1267:9","text":" @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]"},"id":1509,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2138:10:9","nodeType":"FunctionDefinition","parameters":{"id":1462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"mutability":"mutable","name":"hash","nameLocation":"2157:4:9","nodeType":"VariableDeclaration","scope":1509,"src":"2149:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2149:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1461,"mutability":"mutable","name":"signature","nameLocation":"2176:9:9","nodeType":"VariableDeclaration","scope":1509,"src":"2163:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1460,"name":"bytes","nodeType":"ElementaryTypeName","src":"2163:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2148:38:9"},"returnParameters":{"id":1470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"2210:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1463,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"2219:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1466,"nodeType":"UserDefinedTypeName","pathNode":{"id":1465,"name":"RecoverError","nameLocations":["2219:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"2219:12:9"},"referencedDeclaration":1443,"src":"2219:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"2233:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2233:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2209:32:9"},"scope":1783,"src":"2129:766:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1538,"nodeType":"Block","src":"3789:168:9","statements":[{"assignments":[1520,1523,1525],"declarations":[{"constant":false,"id":1520,"mutability":"mutable","name":"recovered","nameLocation":"3808:9:9","nodeType":"VariableDeclaration","scope":1538,"src":"3800:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1519,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1523,"mutability":"mutable","name":"error","nameLocation":"3832:5:9","nodeType":"VariableDeclaration","scope":1538,"src":"3819:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1522,"nodeType":"UserDefinedTypeName","pathNode":{"id":1521,"name":"RecoverError","nameLocations":["3819:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"3819:12:9"},"referencedDeclaration":1443,"src":"3819:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1525,"mutability":"mutable","name":"errorArg","nameLocation":"3847:8:9","nodeType":"VariableDeclaration","scope":1538,"src":"3839:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3839:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1530,"initialValue":{"arguments":[{"id":1527,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"3870:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1528,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1514,"src":"3876:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1526,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1509,"src":"3859:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"3799:87:9"},{"expression":{"arguments":[{"id":1532,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"3908:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1533,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"3915:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1531,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"3896:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1443_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":1534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3896:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1535,"nodeType":"ExpressionStatement","src":"3896:28:9"},{"expression":{"id":1536,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"3941:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1518,"id":1537,"nodeType":"Return","src":"3934:16:9"}]},"documentation":{"id":1510,"nodeType":"StructuredDocumentation","src":"2901:796:9","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it."},"id":1539,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3711:7:9","nodeType":"FunctionDefinition","parameters":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"hash","nameLocation":"3727:4:9","nodeType":"VariableDeclaration","scope":1539,"src":"3719:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3719:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"signature","nameLocation":"3746:9:9","nodeType":"VariableDeclaration","scope":1539,"src":"3733:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1513,"name":"bytes","nodeType":"ElementaryTypeName","src":"3733:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3718:38:9"},"returnParameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1539,"src":"3780:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1516,"name":"address","nodeType":"ElementaryTypeName","src":"3780:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3779:9:9"},"scope":1783,"src":"3702:255:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1588,"nodeType":"Block","src":"4285:342:9","statements":[{"id":1587,"nodeType":"UncheckedBlock","src":"4295:326:9","statements":[{"assignments":[1557],"declarations":[{"constant":false,"id":1557,"mutability":"mutable","name":"s","nameLocation":"4327:1:9","nodeType":"VariableDeclaration","scope":1587,"src":"4319:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4319:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1564,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1558,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"4331:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":1561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4344:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":1560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4336:7:9","typeDescriptions":{}}},"id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:75:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4331:80:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4319:92:9"},{"assignments":[1566],"declarations":[{"constant":false,"id":1566,"mutability":"mutable","name":"v","nameLocation":"4528:1:9","nodeType":"VariableDeclaration","scope":1587,"src":"4522:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1565,"name":"uint8","nodeType":"ElementaryTypeName","src":"4522:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1579,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1571,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"4547:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1569,"name":"uint256","nodeType":"ElementaryTypeName","src":"4539:7:9","typeDescriptions":{}}},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":1573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4554:3:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4539:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1575,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4538:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":1576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4561:2:9","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4538:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4532:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1567,"name":"uint8","nodeType":"ElementaryTypeName","src":"4532:5:9","typeDescriptions":{}}},"id":1578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4522:42:9"},{"expression":{"arguments":[{"id":1581,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"4596:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1582,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4602:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1583,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1544,"src":"4605:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1584,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"4608:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1580,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1697,"src":"4585:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1555,"id":1586,"nodeType":"Return","src":"4578:32:9"}]}]},"documentation":{"id":1540,"nodeType":"StructuredDocumentation","src":"3963:205:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]"},"id":1589,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4182:10:9","nodeType":"FunctionDefinition","parameters":{"id":1547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1542,"mutability":"mutable","name":"hash","nameLocation":"4201:4:9","nodeType":"VariableDeclaration","scope":1589,"src":"4193:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1544,"mutability":"mutable","name":"r","nameLocation":"4215:1:9","nodeType":"VariableDeclaration","scope":1589,"src":"4207:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4207:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1546,"mutability":"mutable","name":"vs","nameLocation":"4226:2:9","nodeType":"VariableDeclaration","scope":1589,"src":"4218:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4218:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4192:37:9"},"returnParameters":{"id":1555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1589,"src":"4253:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1548,"name":"address","nodeType":"ElementaryTypeName","src":"4253:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1589,"src":"4262:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1551,"nodeType":"UserDefinedTypeName","pathNode":{"id":1550,"name":"RecoverError","nameLocations":["4262:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"4262:12:9"},"referencedDeclaration":1443,"src":"4262:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1589,"src":"4276:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4276:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4252:32:9"},"scope":1783,"src":"4173:454:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1621,"nodeType":"Block","src":"4840:164:9","statements":[{"assignments":[1602,1605,1607],"declarations":[{"constant":false,"id":1602,"mutability":"mutable","name":"recovered","nameLocation":"4859:9:9","nodeType":"VariableDeclaration","scope":1621,"src":"4851:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1601,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"error","nameLocation":"4883:5:9","nodeType":"VariableDeclaration","scope":1621,"src":"4870:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1604,"nodeType":"UserDefinedTypeName","pathNode":{"id":1603,"name":"RecoverError","nameLocations":["4870:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"4870:12:9"},"referencedDeclaration":1443,"src":"4870:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1607,"mutability":"mutable","name":"errorArg","nameLocation":"4898:8:9","nodeType":"VariableDeclaration","scope":1621,"src":"4890:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4890:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1613,"initialValue":{"arguments":[{"id":1609,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1592,"src":"4921:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1610,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"4927:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1611,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"4930:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1608,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1589,"src":"4910:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4850:83:9"},{"expression":{"arguments":[{"id":1615,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"4955:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1616,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1607,"src":"4962:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1614,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"4943:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1443_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":1617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1618,"nodeType":"ExpressionStatement","src":"4943:28:9"},{"expression":{"id":1619,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"4988:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1600,"id":1620,"nodeType":"Return","src":"4981:16:9"}]},"documentation":{"id":1590,"nodeType":"StructuredDocumentation","src":"4633:116:9","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately."},"id":1622,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4763:7:9","nodeType":"FunctionDefinition","parameters":{"id":1597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1592,"mutability":"mutable","name":"hash","nameLocation":"4779:4:9","nodeType":"VariableDeclaration","scope":1622,"src":"4771:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4771:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1594,"mutability":"mutable","name":"r","nameLocation":"4793:1:9","nodeType":"VariableDeclaration","scope":1622,"src":"4785:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1593,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4785:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1596,"mutability":"mutable","name":"vs","nameLocation":"4804:2:9","nodeType":"VariableDeclaration","scope":1622,"src":"4796:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4796:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4770:37:9"},"returnParameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1622,"src":"4831:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1598,"name":"address","nodeType":"ElementaryTypeName","src":"4831:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4830:9:9"},"scope":1783,"src":"4754:250:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1696,"nodeType":"Block","src":"5298:1372:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1643,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"6194:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6186:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1641,"name":"uint256","nodeType":"ElementaryTypeName","src":"6186:7:9","typeDescriptions":{}}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":1645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6199:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6186:79:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1657,"nodeType":"IfStatement","src":"6182:164:9","trueBody":{"id":1656,"nodeType":"Block","src":"6267:79:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6297:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6289:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1647,"name":"address","nodeType":"ElementaryTypeName","src":"6289:7:9","typeDescriptions":{}}},"id":1650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6289:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1651,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"6301:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6314:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":1442,"src":"6301:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1653,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"6333:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6288:47:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1640,"id":1655,"nodeType":"Return","src":"6281:54:9"}]}},{"assignments":[1659],"declarations":[{"constant":false,"id":1659,"mutability":"mutable","name":"signer","nameLocation":"6448:6:9","nodeType":"VariableDeclaration","scope":1696,"src":"6440:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1658,"name":"address","nodeType":"ElementaryTypeName","src":"6440:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1666,"initialValue":{"arguments":[{"id":1661,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"6467:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1662,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"6473:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1663,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1629,"src":"6476:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"6479:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1660,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6457:9:9","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6440:41:9"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1667,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"6495:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6513:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6505:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1668,"name":"address","nodeType":"ElementaryTypeName","src":"6505:7:9","typeDescriptions":{}}},"id":1671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6505:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6495:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"6491:113:9","trueBody":{"id":1685,"nodeType":"Block","src":"6517:87:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6547:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6539:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1673,"name":"address","nodeType":"ElementaryTypeName","src":"6539:7:9","typeDescriptions":{}}},"id":1676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6539:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1677,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"6551:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6564:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"6551:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6582:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6582:7:9","typeDescriptions":{}}},"id":1682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1683,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:55:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1640,"id":1684,"nodeType":"Return","src":"6531:62:9"}]}},{"expression":{"components":[{"id":1687,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"6622:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1688,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"6630:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6643:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1439,"src":"6630:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":1692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6660:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6652:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6652:7:9","typeDescriptions":{}}},"id":1693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6652:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6621:42:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1640,"id":1695,"nodeType":"Return","src":"6614:49:9"}]},"documentation":{"id":1623,"nodeType":"StructuredDocumentation","src":"5010:125:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":1697,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5149:10:9","nodeType":"FunctionDefinition","parameters":{"id":1632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1625,"mutability":"mutable","name":"hash","nameLocation":"5177:4:9","nodeType":"VariableDeclaration","scope":1697,"src":"5169:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5169:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1627,"mutability":"mutable","name":"v","nameLocation":"5197:1:9","nodeType":"VariableDeclaration","scope":1697,"src":"5191:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1626,"name":"uint8","nodeType":"ElementaryTypeName","src":"5191:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1629,"mutability":"mutable","name":"r","nameLocation":"5216:1:9","nodeType":"VariableDeclaration","scope":1697,"src":"5208:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5208:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1631,"mutability":"mutable","name":"s","nameLocation":"5235:1:9","nodeType":"VariableDeclaration","scope":1697,"src":"5227:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5227:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5159:83:9"},"returnParameters":{"id":1640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"5266:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1633,"name":"address","nodeType":"ElementaryTypeName","src":"5266:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"5275:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1636,"nodeType":"UserDefinedTypeName","pathNode":{"id":1635,"name":"RecoverError","nameLocations":["5275:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"5275:12:9"},"referencedDeclaration":1443,"src":"5275:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"5289:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5289:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5265:32:9"},"scope":1783,"src":"5140:1530:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1732,"nodeType":"Block","src":"6897:166:9","statements":[{"assignments":[1712,1715,1717],"declarations":[{"constant":false,"id":1712,"mutability":"mutable","name":"recovered","nameLocation":"6916:9:9","nodeType":"VariableDeclaration","scope":1732,"src":"6908:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1711,"name":"address","nodeType":"ElementaryTypeName","src":"6908:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1715,"mutability":"mutable","name":"error","nameLocation":"6940:5:9","nodeType":"VariableDeclaration","scope":1732,"src":"6927:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1714,"nodeType":"UserDefinedTypeName","pathNode":{"id":1713,"name":"RecoverError","nameLocations":["6927:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"6927:12:9"},"referencedDeclaration":1443,"src":"6927:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1717,"mutability":"mutable","name":"errorArg","nameLocation":"6955:8:9","nodeType":"VariableDeclaration","scope":1732,"src":"6947:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6947:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1724,"initialValue":{"arguments":[{"id":1719,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1700,"src":"6978:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1720,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"6984:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1721,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"6987:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1722,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1706,"src":"6990:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1718,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1697,"src":"6967:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6967:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"6907:85:9"},{"expression":{"arguments":[{"id":1726,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"7014:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1727,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"7021:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1725,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"7002:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1443_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1729,"nodeType":"ExpressionStatement","src":"7002:28:9"},{"expression":{"id":1730,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1712,"src":"7047:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1710,"id":1731,"nodeType":"Return","src":"7040:16:9"}]},"documentation":{"id":1698,"nodeType":"StructuredDocumentation","src":"6676:122:9","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":1733,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6812:7:9","nodeType":"FunctionDefinition","parameters":{"id":1707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1700,"mutability":"mutable","name":"hash","nameLocation":"6828:4:9","nodeType":"VariableDeclaration","scope":1733,"src":"6820:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6820:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1702,"mutability":"mutable","name":"v","nameLocation":"6840:1:9","nodeType":"VariableDeclaration","scope":1733,"src":"6834:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1701,"name":"uint8","nodeType":"ElementaryTypeName","src":"6834:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1704,"mutability":"mutable","name":"r","nameLocation":"6851:1:9","nodeType":"VariableDeclaration","scope":1733,"src":"6843:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6843:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1706,"mutability":"mutable","name":"s","nameLocation":"6862:1:9","nodeType":"VariableDeclaration","scope":1733,"src":"6854:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6854:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6819:45:9"},"returnParameters":{"id":1710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1733,"src":"6888:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1708,"name":"address","nodeType":"ElementaryTypeName","src":"6888:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6887:9:9"},"scope":1783,"src":"6803:260:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1781,"nodeType":"Block","src":"7268:460:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1742,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7282:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1743,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7291:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7304:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1439,"src":"7291:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7282:29:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1748,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7378:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1749,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7387:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7400:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"7387:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7378:38:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7483:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1757,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7492:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7505:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":1441,"src":"7492:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7483:44:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1768,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7617:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1769,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7626:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7639:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":1442,"src":"7626:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7617:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1777,"nodeType":"IfStatement","src":"7613:109:9","trueBody":{"id":1776,"nodeType":"Block","src":"7658:64:9","statements":[{"errorCall":{"arguments":[{"id":1773,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1739,"src":"7702:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1772,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1456,"src":"7679:22:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1775,"nodeType":"RevertStatement","src":"7672:39:9"}]}},"id":1778,"nodeType":"IfStatement","src":"7479:243:9","trueBody":{"id":1767,"nodeType":"Block","src":"7529:78:9","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":1763,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1739,"src":"7586:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7578:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1761,"name":"uint256","nodeType":"ElementaryTypeName","src":"7578:7:9","typeDescriptions":{}}},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7578:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1760,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"7550:27:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1766,"nodeType":"RevertStatement","src":"7543:53:9"}]}},"id":1779,"nodeType":"IfStatement","src":"7374:348:9","trueBody":{"id":1755,"nodeType":"Block","src":"7418:55:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1752,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"7439:21:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7439:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1754,"nodeType":"RevertStatement","src":"7432:30:9"}]}},"id":1780,"nodeType":"IfStatement","src":"7278:444:9","trueBody":{"id":1747,"nodeType":"Block","src":"7313:55:9","statements":[{"functionReturnParameters":1741,"id":1746,"nodeType":"Return","src":"7327:7:9"}]}}]},"documentation":{"id":1734,"nodeType":"StructuredDocumentation","src":"7069:122:9","text":" @dev Optionally reverts with the corresponding custom error according to the `error` argument provided."},"id":1782,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"7205:11:9","nodeType":"FunctionDefinition","parameters":{"id":1740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1737,"mutability":"mutable","name":"error","nameLocation":"7230:5:9","nodeType":"VariableDeclaration","scope":1782,"src":"7217:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1736,"nodeType":"UserDefinedTypeName","pathNode":{"id":1735,"name":"RecoverError","nameLocations":["7217:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"7217:12:9"},"referencedDeclaration":1443,"src":"7217:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1739,"mutability":"mutable","name":"errorArg","nameLocation":"7245:8:9","nodeType":"VariableDeclaration","scope":1782,"src":"7237:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7216:38:9"},"returnParameters":{"id":1741,"nodeType":"ParameterList","parameters":[],"src":"7268:0:9"},"scope":1783,"src":"7196:532:9","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1784,"src":"344:7386:9","usedErrors":[1446,1451,1456],"usedEvents":[]}],"src":"112:7619:9"},"id":9},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","exportedSymbols":{"MessageHashUtils":[1857],"Strings":[1435]},"id":1858,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1785,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"123:24:10"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":1787,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1858,"sourceUnit":1436,"src":"149:39:10","symbolAliases":[{"foreign":{"id":1786,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"157:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MessageHashUtils","contractDependencies":[],"contractKind":"library","documentation":{"id":1788,"nodeType":"StructuredDocumentation","src":"190:330:10","text":" @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications."},"fullyImplemented":true,"id":1857,"linearizedBaseContracts":[1857],"name":"MessageHashUtils","nameLocation":"529:16:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":1797,"nodeType":"Block","src":"1314:368:10","statements":[{"AST":{"nodeType":"YulBlock","src":"1376:300:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1397:4:10","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"1403:34:10","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1390:6:10"},"nodeType":"YulFunctionCall","src":"1390:48:10"},"nodeType":"YulExpressionStatement","src":"1390:48:10"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1499:4:10","type":"","value":"0x1c"},{"name":"messageHash","nodeType":"YulIdentifier","src":"1505:11:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1492:6:10"},"nodeType":"YulFunctionCall","src":"1492:25:10"},"nodeType":"YulExpressionStatement","src":"1492:25:10"},{"nodeType":"YulAssignment","src":"1571:31:10","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1591:4:10","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"1597:4:10","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1581:9:10"},"nodeType":"YulFunctionCall","src":"1581:21:10"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"1571:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1794,"isOffset":false,"isSlot":false,"src":"1571:6:10","valueSize":1},{"declaration":1791,"isOffset":false,"isSlot":false,"src":"1505:11:10","valueSize":1}],"id":1796,"nodeType":"InlineAssembly","src":"1367:309:10"}]},"documentation":{"id":1789,"nodeType":"StructuredDocumentation","src":"552:665:10","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}."},"id":1798,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"1231:22:10","nodeType":"FunctionDefinition","parameters":{"id":1792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"mutability":"mutable","name":"messageHash","nameLocation":"1262:11:10","nodeType":"VariableDeclaration","scope":1798,"src":"1254:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1254:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1253:21:10"},"returnParameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1794,"mutability":"mutable","name":"digest","nameLocation":"1306:6:10","nodeType":"VariableDeclaration","scope":1798,"src":"1298:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1298:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1297:16:10"},"scope":1857,"src":"1222:460:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1823,"nodeType":"Block","src":"2234:143:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2286:32:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"arguments":[{"expression":{"id":1815,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"2343:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2351:6:10","memberName":"length","nodeType":"MemberAccess","src":"2343:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1813,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"2326:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$1435_$","typeString":"type(library Strings)"}},"id":1814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2334:8:10","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1248,"src":"2326:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2320:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1811,"name":"bytes","nodeType":"ElementaryTypeName","src":"2320:5:10","typeDescriptions":{}}},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2320:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1819,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"2361:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2273:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1807,"name":"bytes","nodeType":"ElementaryTypeName","src":"2273:5:10","typeDescriptions":{}}},"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2279:6:10","memberName":"concat","nodeType":"MemberAccess","src":"2273:12:10","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:96:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1806,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2263:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:107:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1805,"id":1822,"nodeType":"Return","src":"2244:126:10"}]},"documentation":{"id":1799,"nodeType":"StructuredDocumentation","src":"1688:455:10","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}."},"id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"2157:22:10","nodeType":"FunctionDefinition","parameters":{"id":1802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"message","nameLocation":"2193:7:10","nodeType":"VariableDeclaration","scope":1824,"src":"2180:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1800,"name":"bytes","nodeType":"ElementaryTypeName","src":"2180:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2179:22:10"},"returnParameters":{"id":1805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1824,"src":"2225:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2225:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2224:9:10"},"scope":1857,"src":"2148:229:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1843,"nodeType":"Block","src":"2831:80:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":1837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2875:10:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":1838,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"2887:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"2898:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1835,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2858:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2862:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"2858:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1834,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2848:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:56:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1833,"id":1842,"nodeType":"Return","src":"2841:63:10"}]},"documentation":{"id":1825,"nodeType":"StructuredDocumentation","src":"2383:332:10","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}."},"id":1844,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"2729:31:10","nodeType":"FunctionDefinition","parameters":{"id":1830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1827,"mutability":"mutable","name":"validator","nameLocation":"2769:9:10","nodeType":"VariableDeclaration","scope":1844,"src":"2761:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1826,"name":"address","nodeType":"ElementaryTypeName","src":"2761:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1829,"mutability":"mutable","name":"data","nameLocation":"2793:4:10","nodeType":"VariableDeclaration","scope":1844,"src":"2780:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1828,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2760:38:10"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1844,"src":"2822:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2822:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2821:9:10"},"scope":1857,"src":"2720:191:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1855,"nodeType":"Block","src":"3462:292:10","statements":[{"AST":{"nodeType":"YulBlock","src":"3524:224:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3538:22:10","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3555:4:10","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3549:5:10"},"nodeType":"YulFunctionCall","src":"3549:11:10"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"3542:3:10","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3580:3:10"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"3585:10:10","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:10"},"nodeType":"YulFunctionCall","src":"3573:23:10"},"nodeType":"YulExpressionStatement","src":"3573:23:10"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3620:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"3625:4:10","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:10"},"nodeType":"YulFunctionCall","src":"3616:14:10"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"3632:15:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3609:6:10"},"nodeType":"YulFunctionCall","src":"3609:39:10"},"nodeType":"YulExpressionStatement","src":"3609:39:10"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3672:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:10","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3668:3:10"},"nodeType":"YulFunctionCall","src":"3668:14:10"},{"name":"structHash","nodeType":"YulIdentifier","src":"3684:10:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3661:6:10"},"nodeType":"YulFunctionCall","src":"3661:34:10"},"nodeType":"YulExpressionStatement","src":"3661:34:10"},{"nodeType":"YulAssignment","src":"3708:30:10","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3728:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"3733:4:10","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"3718:9:10"},"nodeType":"YulFunctionCall","src":"3718:20:10"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"3708:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1852,"isOffset":false,"isSlot":false,"src":"3708:6:10","valueSize":1},{"declaration":1847,"isOffset":false,"isSlot":false,"src":"3632:15:10","valueSize":1},{"declaration":1849,"isOffset":false,"isSlot":false,"src":"3684:10:10","valueSize":1}],"id":1854,"nodeType":"InlineAssembly","src":"3515:233:10"}]},"documentation":{"id":1845,"nodeType":"StructuredDocumentation","src":"2917:431:10","text":" @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}."},"id":1856,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"3362:15:10","nodeType":"FunctionDefinition","parameters":{"id":1850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1847,"mutability":"mutable","name":"domainSeparator","nameLocation":"3386:15:10","nodeType":"VariableDeclaration","scope":1856,"src":"3378:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3378:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1849,"mutability":"mutable","name":"structHash","nameLocation":"3411:10:10","nodeType":"VariableDeclaration","scope":1856,"src":"3403:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3403:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3377:45:10"},"returnParameters":{"id":1853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1852,"mutability":"mutable","name":"digest","nameLocation":"3454:6:10","nodeType":"VariableDeclaration","scope":1856,"src":"3446:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3446:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3445:16:10"},"scope":1857,"src":"3353:401:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1858,"src":"521:3235:10","usedErrors":[],"usedEvents":[]}],"src":"123:3634:10"},"id":10},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[2911]},"id":2912,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1859,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:11"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":1860,"nodeType":"StructuredDocumentation","src":"129:73:11","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":2911,"linearizedBaseContracts":[2911],"name":"Math","nameLocation":"211:4:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1861,"nodeType":"StructuredDocumentation","src":"222:50:11","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","id":1863,"name":"MathOverflowedMulDiv","nameLocation":"283:20:11","nodeType":"ErrorDefinition","parameters":{"id":1862,"nodeType":"ParameterList","parameters":[],"src":"303:2:11"},"src":"277:29:11"},{"canonicalName":"Math.Rounding","id":1868,"members":[{"id":1864,"name":"Floor","nameLocation":"336:5:11","nodeType":"EnumValue","src":"336:5:11"},{"id":1865,"name":"Ceil","nameLocation":"379:4:11","nodeType":"EnumValue","src":"379:4:11"},{"id":1866,"name":"Trunc","nameLocation":"421:5:11","nodeType":"EnumValue","src":"421:5:11"},{"id":1867,"name":"Expand","nameLocation":"451:6:11","nodeType":"EnumValue","src":"451:6:11"}],"name":"Rounding","nameLocation":"317:8:11","nodeType":"EnumDefinition","src":"312:169:11"},{"body":{"id":1899,"nodeType":"Block","src":"661:140:11","statements":[{"id":1898,"nodeType":"UncheckedBlock","src":"671:124:11","statements":[{"assignments":[1881],"declarations":[{"constant":false,"id":1881,"mutability":"mutable","name":"c","nameLocation":"703:1:11","nodeType":"VariableDeclaration","scope":1898,"src":"695:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1880,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1885,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1882,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"707:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1883,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"711:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"707:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"695:17:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1886,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"730:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1887,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"734:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"730:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1893,"nodeType":"IfStatement","src":"726:28:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"745:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"752:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1891,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"744:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1879,"id":1892,"nodeType":"Return","src":"737:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"776:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":1895,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"782:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"775:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1879,"id":1897,"nodeType":"Return","src":"768:16:11"}]}]},"documentation":{"id":1869,"nodeType":"StructuredDocumentation","src":"487:93:11","text":" @dev Returns the addition of two unsigned integers, with an overflow flag."},"id":1900,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"594:6:11","nodeType":"FunctionDefinition","parameters":{"id":1874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1871,"mutability":"mutable","name":"a","nameLocation":"609:1:11","nodeType":"VariableDeclaration","scope":1900,"src":"601:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1870,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1873,"mutability":"mutable","name":"b","nameLocation":"620:1:11","nodeType":"VariableDeclaration","scope":1900,"src":"612:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1872,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:11"},"returnParameters":{"id":1879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1900,"src":"646:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1875,"name":"bool","nodeType":"ElementaryTypeName","src":"646:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1900,"src":"652:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1877,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:15:11"},"scope":2911,"src":"585:216:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1927,"nodeType":"Block","src":"984:113:11","statements":[{"id":1926,"nodeType":"UncheckedBlock","src":"994:97:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1912,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"1022:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1913,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"1026:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1022:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1919,"nodeType":"IfStatement","src":"1018:28:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1037:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1917,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1036:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1911,"id":1918,"nodeType":"Return","src":"1029:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1068:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"1074:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1922,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"1078:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1074:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1924,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1067:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1911,"id":1925,"nodeType":"Return","src":"1060:20:11"}]}]},"documentation":{"id":1901,"nodeType":"StructuredDocumentation","src":"807:96:11","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag."},"id":1928,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"917:6:11","nodeType":"FunctionDefinition","parameters":{"id":1906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"a","nameLocation":"932:1:11","nodeType":"VariableDeclaration","scope":1928,"src":"924:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1902,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1905,"mutability":"mutable","name":"b","nameLocation":"943:1:11","nodeType":"VariableDeclaration","scope":1928,"src":"935:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1904,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"923:22:11"},"returnParameters":{"id":1911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1928,"src":"969:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1907,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1928,"src":"975:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1909,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:15:11"},"scope":2911,"src":"908:189:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1969,"nodeType":"Block","src":"1283:417:11","statements":[{"id":1968,"nodeType":"UncheckedBlock","src":"1293:401:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1940,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"1551:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1556:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1551:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1947,"nodeType":"IfStatement","src":"1547:28:11","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":1943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1567:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1573:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1945,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1566:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1939,"id":1946,"nodeType":"Return","src":"1559:16:11"}},{"assignments":[1949],"declarations":[{"constant":false,"id":1949,"mutability":"mutable","name":"c","nameLocation":"1597:1:11","nodeType":"VariableDeclaration","scope":1968,"src":"1589:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1953,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1950,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"1601:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1951,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"1605:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1601:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1589:17:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1954,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"1624:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1955,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"1628:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1957,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"1633:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1963,"nodeType":"IfStatement","src":"1620:33:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1644:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1651:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1961,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1939,"id":1962,"nodeType":"Return","src":"1636:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1675:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":1965,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"1681:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1966,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1674:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1939,"id":1967,"nodeType":"Return","src":"1667:16:11"}]}]},"documentation":{"id":1929,"nodeType":"StructuredDocumentation","src":"1103:99:11","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag."},"id":1970,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1216:6:11","nodeType":"FunctionDefinition","parameters":{"id":1934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1931,"mutability":"mutable","name":"a","nameLocation":"1231:1:11","nodeType":"VariableDeclaration","scope":1970,"src":"1223:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1933,"mutability":"mutable","name":"b","nameLocation":"1242:1:11","nodeType":"VariableDeclaration","scope":1970,"src":"1234:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:22:11"},"returnParameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1970,"src":"1268:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1935,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1970,"src":"1274:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1267:15:11"},"scope":2911,"src":"1207:493:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1997,"nodeType":"Block","src":"1887:114:11","statements":[{"id":1996,"nodeType":"UncheckedBlock","src":"1897:98:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"1925:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1930:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1925:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1989,"nodeType":"IfStatement","src":"1921:29:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1941:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1987,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1940:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1981,"id":1988,"nodeType":"Return","src":"1933:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1972:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1991,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"1978:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1992,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"1982:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1978:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1981,"id":1995,"nodeType":"Return","src":"1964:20:11"}]}]},"documentation":{"id":1971,"nodeType":"StructuredDocumentation","src":"1706:100:11","text":" @dev Returns the division of two unsigned integers, with a division by zero flag."},"id":1998,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1820:6:11","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1973,"mutability":"mutable","name":"a","nameLocation":"1835:1:11","nodeType":"VariableDeclaration","scope":1998,"src":"1827:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1975,"mutability":"mutable","name":"b","nameLocation":"1846:1:11","nodeType":"VariableDeclaration","scope":1998,"src":"1838:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:22:11"},"returnParameters":{"id":1981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1998,"src":"1872:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1977,"name":"bool","nodeType":"ElementaryTypeName","src":"1872:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1998,"src":"1878:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1979,"name":"uint256","nodeType":"ElementaryTypeName","src":"1878:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:15:11"},"scope":2911,"src":"1811:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2025,"nodeType":"Block","src":"2198:114:11","statements":[{"id":2024,"nodeType":"UncheckedBlock","src":"2208:98:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2010,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"2236:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2017,"nodeType":"IfStatement","src":"2232:29:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2252:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2259:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2015,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2251:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2009,"id":2016,"nodeType":"Return","src":"2244:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":2018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2283:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2019,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2001,"src":"2289:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2020,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"2293:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2289:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2282:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2009,"id":2023,"nodeType":"Return","src":"2275:20:11"}]}]},"documentation":{"id":1999,"nodeType":"StructuredDocumentation","src":"2007:110:11","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."},"id":2026,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2131:6:11","nodeType":"FunctionDefinition","parameters":{"id":2004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2001,"mutability":"mutable","name":"a","nameLocation":"2146:1:11","nodeType":"VariableDeclaration","scope":2026,"src":"2138:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2000,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2003,"mutability":"mutable","name":"b","nameLocation":"2157:1:11","nodeType":"VariableDeclaration","scope":2026,"src":"2149:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2149:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2137:22:11"},"returnParameters":{"id":2009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2026,"src":"2183:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2005,"name":"bool","nodeType":"ElementaryTypeName","src":"2183:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2026,"src":"2189:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2007,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2182:15:11"},"scope":2911,"src":"2122:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2043,"nodeType":"Block","src":"2449:37:11","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2036,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2466:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2037,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"2470:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2466:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2040,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"2478:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2466:13:11","trueExpression":{"id":2039,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2474:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2035,"id":2042,"nodeType":"Return","src":"2459:20:11"}]},"documentation":{"id":2027,"nodeType":"StructuredDocumentation","src":"2318:59:11","text":" @dev Returns the largest of two numbers."},"id":2044,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2391:3:11","nodeType":"FunctionDefinition","parameters":{"id":2032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2029,"mutability":"mutable","name":"a","nameLocation":"2403:1:11","nodeType":"VariableDeclaration","scope":2044,"src":"2395:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2028,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2031,"mutability":"mutable","name":"b","nameLocation":"2414:1:11","nodeType":"VariableDeclaration","scope":2044,"src":"2406:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2030,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2394:22:11"},"returnParameters":{"id":2035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2044,"src":"2440:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2440:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2439:9:11"},"scope":2911,"src":"2382:104:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2061,"nodeType":"Block","src":"2624:37:11","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2054,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"2641:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2055,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"2645:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2641:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2058,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"2653:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2641:13:11","trueExpression":{"id":2057,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"2649:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2053,"id":2060,"nodeType":"Return","src":"2634:20:11"}]},"documentation":{"id":2045,"nodeType":"StructuredDocumentation","src":"2492:60:11","text":" @dev Returns the smallest of two numbers."},"id":2062,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2566:3:11","nodeType":"FunctionDefinition","parameters":{"id":2050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2047,"mutability":"mutable","name":"a","nameLocation":"2578:1:11","nodeType":"VariableDeclaration","scope":2062,"src":"2570:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2046,"name":"uint256","nodeType":"ElementaryTypeName","src":"2570:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2049,"mutability":"mutable","name":"b","nameLocation":"2589:1:11","nodeType":"VariableDeclaration","scope":2062,"src":"2581:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2048,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2569:22:11"},"returnParameters":{"id":2053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2062,"src":"2615:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2051,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:9:11"},"scope":2911,"src":"2557:104:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2084,"nodeType":"Block","src":"2845:82:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2072,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2065,"src":"2900:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2073,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"2904:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2900:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2899:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2076,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2065,"src":"2910:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2077,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"2914:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2910:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2909:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2919:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2909:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2071,"id":2083,"nodeType":"Return","src":"2892:28:11"}]},"documentation":{"id":2063,"nodeType":"StructuredDocumentation","src":"2667:102:11","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2085,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2783:7:11","nodeType":"FunctionDefinition","parameters":{"id":2068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2065,"mutability":"mutable","name":"a","nameLocation":"2799:1:11","nodeType":"VariableDeclaration","scope":2085,"src":"2791:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2064,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2067,"mutability":"mutable","name":"b","nameLocation":"2810:1:11","nodeType":"VariableDeclaration","scope":2085,"src":"2802:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2066,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2790:22:11"},"returnParameters":{"id":2071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2085,"src":"2836:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2069,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:9:11"},"scope":2911,"src":"2774:153:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2118,"nodeType":"Block","src":"3219:260:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2095,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"3233:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3233:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2103,"nodeType":"IfStatement","src":"3229:127:11","trueBody":{"id":2102,"nodeType":"Block","src":"3241:115:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2098,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"3340:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2099,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"3344:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2094,"id":2101,"nodeType":"Return","src":"3333:12:11"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2104,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"3444:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3449:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3444:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2108,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"3458:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3458:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2111,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3457:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2112,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"3467:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3457:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3471:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3457:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3444:28:11","trueExpression":{"hexValue":"30","id":2107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3453:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2094,"id":2117,"nodeType":"Return","src":"3437:35:11"}]},"documentation":{"id":2086,"nodeType":"StructuredDocumentation","src":"2933:210:11","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":2119,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3157:7:11","nodeType":"FunctionDefinition","parameters":{"id":2091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2088,"mutability":"mutable","name":"a","nameLocation":"3173:1:11","nodeType":"VariableDeclaration","scope":2119,"src":"3165:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2087,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2090,"mutability":"mutable","name":"b","nameLocation":"3184:1:11","nodeType":"VariableDeclaration","scope":2119,"src":"3176:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2089,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3164:22:11"},"returnParameters":{"id":2094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2119,"src":"3210:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2092,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3209:9:11"},"scope":2911,"src":"3148:331:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2244,"nodeType":"Block","src":"3901:4018:11","statements":[{"id":2243,"nodeType":"UncheckedBlock","src":"3911:4002:11","statements":[{"assignments":[2132],"declarations":[{"constant":false,"id":2132,"mutability":"mutable","name":"prod0","nameLocation":"4240:5:11","nodeType":"VariableDeclaration","scope":2243,"src":"4232:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2131,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2136,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2133,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"4248:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2134,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"4252:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4248:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4232:21:11"},{"assignments":[2138],"declarations":[{"constant":false,"id":2138,"mutability":"mutable","name":"prod1","nameLocation":"4320:5:11","nodeType":"VariableDeclaration","scope":2243,"src":"4312:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2137,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2139,"nodeType":"VariableDeclarationStatement","src":"4312:13:11"},{"AST":{"nodeType":"YulBlock","src":"4392:122:11","statements":[{"nodeType":"YulVariableDeclaration","src":"4410:30:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4427:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"4430:1:11"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4437:1:11","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4433:3:11"},"nodeType":"YulFunctionCall","src":"4433:6:11"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4420:6:11"},"nodeType":"YulFunctionCall","src":"4420:20:11"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4414:2:11","type":""}]},{"nodeType":"YulAssignment","src":"4457:43:11","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4474:2:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"4478:5:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4470:3:11"},"nodeType":"YulFunctionCall","src":"4470:14:11"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4489:2:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"4493:5:11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4486:2:11"},"nodeType":"YulFunctionCall","src":"4486:13:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4466:3:11"},"nodeType":"YulFunctionCall","src":"4466:34:11"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4457:5:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2132,"isOffset":false,"isSlot":false,"src":"4478:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"4493:5:11","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"4457:5:11","valueSize":1},{"declaration":2122,"isOffset":false,"isSlot":false,"src":"4427:1:11","valueSize":1},{"declaration":2124,"isOffset":false,"isSlot":false,"src":"4430:1:11","valueSize":1}],"id":2140,"nodeType":"InlineAssembly","src":"4383:131:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2141,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"4595:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4604:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4595:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2149,"nodeType":"IfStatement","src":"4591:368:11","trueBody":{"id":2148,"nodeType":"Block","src":"4607:352:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2144,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"4925:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2145,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"4933:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2130,"id":2147,"nodeType":"Return","src":"4918:26:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2150,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"5065:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2151,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"5080:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2157,"nodeType":"IfStatement","src":"5061:88:11","trueBody":{"id":2156,"nodeType":"Block","src":"5087:62:11","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2153,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"5112:20:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5112:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2155,"nodeType":"RevertStatement","src":"5105:29:11"}]}},{"assignments":[2159],"declarations":[{"constant":false,"id":2159,"mutability":"mutable","name":"remainder","nameLocation":"5412:9:11","nodeType":"VariableDeclaration","scope":2243,"src":"5404:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2158,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2160,"nodeType":"VariableDeclarationStatement","src":"5404:17:11"},{"AST":{"nodeType":"YulBlock","src":"5444:291:11","statements":[{"nodeType":"YulAssignment","src":"5513:38:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5533:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"5536:1:11"},{"name":"denominator","nodeType":"YulIdentifier","src":"5539:11:11"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5526:6:11"},"nodeType":"YulFunctionCall","src":"5526:25:11"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5513:9:11"}]},{"nodeType":"YulAssignment","src":"5633:41:11","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5646:5:11"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5656:9:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"5667:5:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5653:2:11"},"nodeType":"YulFunctionCall","src":"5653:20:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5642:3:11"},"nodeType":"YulFunctionCall","src":"5642:32:11"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5633:5:11"}]},{"nodeType":"YulAssignment","src":"5691:30:11","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5704:5:11"},{"name":"remainder","nodeType":"YulIdentifier","src":"5711:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5700:3:11"},"nodeType":"YulFunctionCall","src":"5700:21:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5691:5:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2126,"isOffset":false,"isSlot":false,"src":"5539:11:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"5667:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"5691:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"5704:5:11","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"5633:5:11","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"5646:5:11","valueSize":1},{"declaration":2159,"isOffset":false,"isSlot":false,"src":"5513:9:11","valueSize":1},{"declaration":2159,"isOffset":false,"isSlot":false,"src":"5656:9:11","valueSize":1},{"declaration":2159,"isOffset":false,"isSlot":false,"src":"5711:9:11","valueSize":1},{"declaration":2122,"isOffset":false,"isSlot":false,"src":"5533:1:11","valueSize":1},{"declaration":2124,"isOffset":false,"isSlot":false,"src":"5536:1:11","valueSize":1}],"id":2161,"nodeType":"InlineAssembly","src":"5435:300:11"},{"assignments":[2163],"declarations":[{"constant":false,"id":2163,"mutability":"mutable","name":"twos","nameLocation":"5947:4:11","nodeType":"VariableDeclaration","scope":2243,"src":"5939:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2162,"name":"uint256","nodeType":"ElementaryTypeName","src":"5939:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2164,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"5954:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":2165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5969:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2166,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"5973:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5969:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5968:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5954:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5939:46:11"},{"AST":{"nodeType":"YulBlock","src":"6008:362:11","statements":[{"nodeType":"YulAssignment","src":"6073:37:11","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6092:11:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6105:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6088:3:11"},"nodeType":"YulFunctionCall","src":"6088:22:11"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6073:11:11"}]},{"nodeType":"YulAssignment","src":"6177:25:11","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6190:5:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6197:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6186:3:11"},"nodeType":"YulFunctionCall","src":"6186:16:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6177:5:11"}]},{"nodeType":"YulAssignment","src":"6317:39:11","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6337:1:11","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6340:4:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6333:3:11"},"nodeType":"YulFunctionCall","src":"6333:12:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6347:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6329:3:11"},"nodeType":"YulFunctionCall","src":"6329:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"6354:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6325:3:11"},"nodeType":"YulFunctionCall","src":"6325:31:11"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6317:4:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2126,"isOffset":false,"isSlot":false,"src":"6073:11:11","valueSize":1},{"declaration":2126,"isOffset":false,"isSlot":false,"src":"6092:11:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"6177:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"6190:5:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6105:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6197:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6317:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6340:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6347:4:11","valueSize":1}],"id":2171,"nodeType":"InlineAssembly","src":"5999:371:11"},{"expression":{"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2172,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"6436:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2173,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"6445:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2174,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2163,"src":"6453:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6436:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2177,"nodeType":"ExpressionStatement","src":"6436:21:11"},{"assignments":[2179],"declarations":[{"constant":false,"id":2179,"mutability":"mutable","name":"inverse","nameLocation":"6783:7:11","nodeType":"VariableDeclaration","scope":2243,"src":"6775:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2178,"name":"uint256","nodeType":"ElementaryTypeName","src":"6775:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2186,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2181,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"6798:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6794:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6793:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6793:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6775:39:11"},{"expression":{"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2187,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7031:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7042:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2189,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7046:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2190,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7060:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7046:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7042:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7031:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2194,"nodeType":"ExpressionStatement","src":"7031:36:11"},{"expression":{"id":2201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2195,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7100:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2197,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7115:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2198,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7129:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7115:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7100:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2202,"nodeType":"ExpressionStatement","src":"7100:36:11"},{"expression":{"id":2209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2203,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7170:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7181:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2205,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7185:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2206,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7199:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7185:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7170:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2210,"nodeType":"ExpressionStatement","src":"7170:36:11"},{"expression":{"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2211,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7240:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2213,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7255:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2214,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7269:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7251:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7240:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2218,"nodeType":"ExpressionStatement","src":"7240:36:11"},{"expression":{"id":2225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2219,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7310:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7321:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2221,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7325:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2222,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7339:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7325:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7321:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2226,"nodeType":"ExpressionStatement","src":"7310:36:11"},{"expression":{"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2227,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7381:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7392:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2229,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7396:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2230,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7410:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7396:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7392:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7381:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2234,"nodeType":"ExpressionStatement","src":"7381:36:11"},{"expression":{"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2235,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2129,"src":"7851:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2236,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"7860:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2237,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7868:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7860:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7851:24:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2240,"nodeType":"ExpressionStatement","src":"7851:24:11"},{"expression":{"id":2241,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2129,"src":"7896:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2130,"id":2242,"nodeType":"Return","src":"7889:13:11"}]}]},"documentation":{"id":2120,"nodeType":"StructuredDocumentation","src":"3485:313:11","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":2245,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3812:6:11","nodeType":"FunctionDefinition","parameters":{"id":2127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2122,"mutability":"mutable","name":"x","nameLocation":"3827:1:11","nodeType":"VariableDeclaration","scope":2245,"src":"3819:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2121,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2124,"mutability":"mutable","name":"y","nameLocation":"3838:1:11","nodeType":"VariableDeclaration","scope":2245,"src":"3830:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"3830:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2126,"mutability":"mutable","name":"denominator","nameLocation":"3849:11:11","nodeType":"VariableDeclaration","scope":2245,"src":"3841:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2125,"name":"uint256","nodeType":"ElementaryTypeName","src":"3841:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:43:11"},"returnParameters":{"id":2130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2129,"mutability":"mutable","name":"result","nameLocation":"3893:6:11","nodeType":"VariableDeclaration","scope":2245,"src":"3885:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3885:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3884:16:11"},"scope":2911,"src":"3803:4116:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2287,"nodeType":"Block","src":"8161:192:11","statements":[{"assignments":[2261],"declarations":[{"constant":false,"id":2261,"mutability":"mutable","name":"result","nameLocation":"8179:6:11","nodeType":"VariableDeclaration","scope":2287,"src":"8171:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2260,"name":"uint256","nodeType":"ElementaryTypeName","src":"8171:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2267,"initialValue":{"arguments":[{"id":2263,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"8195:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2264,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"8198:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2265,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2252,"src":"8201:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2262,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2245,2288],"referencedDeclaration":2245,"src":"8188:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8171:42:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2269,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"8244:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2268,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"8227:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8227:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2272,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"8264:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2273,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"8267:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2274,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2252,"src":"8270:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2271,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8257:6:11","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8285:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8227:59:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2284,"nodeType":"IfStatement","src":"8223:101:11","trueBody":{"id":2283,"nodeType":"Block","src":"8288:36:11","statements":[{"expression":{"id":2281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2279,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"8302:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8312:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8302:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2282,"nodeType":"ExpressionStatement","src":"8302:11:11"}]}},{"expression":{"id":2285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"8340:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2259,"id":2286,"nodeType":"Return","src":"8333:13:11"}]},"documentation":{"id":2246,"nodeType":"StructuredDocumentation","src":"7925:121:11","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2288,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8060:6:11","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"x","nameLocation":"8075:1:11","nodeType":"VariableDeclaration","scope":2288,"src":"8067:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2247,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2250,"mutability":"mutable","name":"y","nameLocation":"8086:1:11","nodeType":"VariableDeclaration","scope":2288,"src":"8078:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2249,"name":"uint256","nodeType":"ElementaryTypeName","src":"8078:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2252,"mutability":"mutable","name":"denominator","nameLocation":"8097:11:11","nodeType":"VariableDeclaration","scope":2288,"src":"8089:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2251,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2255,"mutability":"mutable","name":"rounding","nameLocation":"8119:8:11","nodeType":"VariableDeclaration","scope":2288,"src":"8110:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2254,"nodeType":"UserDefinedTypeName","pathNode":{"id":2253,"name":"Rounding","nameLocations":["8110:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"8110:8:11"},"referencedDeclaration":1868,"src":"8110:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8066:62:11"},"returnParameters":{"id":2259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2288,"src":"8152:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2257,"name":"uint256","nodeType":"ElementaryTypeName","src":"8152:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8151:9:11"},"scope":2911,"src":"8051:302:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2399,"nodeType":"Block","src":"8644:1585:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2296,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"8658:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8658:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2302,"nodeType":"IfStatement","src":"8654:45:11","trueBody":{"id":2301,"nodeType":"Block","src":"8666:33:11","statements":[{"expression":{"hexValue":"30","id":2299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2295,"id":2300,"nodeType":"Return","src":"8680:8:11"}]}},{"assignments":[2304],"declarations":[{"constant":false,"id":2304,"mutability":"mutable","name":"result","nameLocation":"9386:6:11","nodeType":"VariableDeclaration","scope":2399,"src":"9378:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2303,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2307,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9406:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2306,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2567,2602],"referencedDeclaration":2567,"src":"9401:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9401:7:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9401:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9400:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9395:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9378:36:11"},{"id":2398,"nodeType":"UncheckedBlock","src":"9815:408:11","statements":[{"expression":{"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2314,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9839:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2315,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9849:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2316,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9858:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2317,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9862:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9849:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9848:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9873:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9848:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9839:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2324,"nodeType":"ExpressionStatement","src":"9839:35:11"},{"expression":{"id":2334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2325,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9888:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9898:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2327,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9907:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2328,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9911:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9907:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9898:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2331,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9897:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9922:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9897:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2335,"nodeType":"ExpressionStatement","src":"9888:35:11"},{"expression":{"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2336,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9937:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2337,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9947:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2338,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9956:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2339,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9960:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9956:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2342,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9946:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9971:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9946:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9937:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2346,"nodeType":"ExpressionStatement","src":"9937:35:11"},{"expression":{"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2347,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9986:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2348,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9996:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2349,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10005:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2350,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10009:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9996:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2353,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9995:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9995:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9986:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2357,"nodeType":"ExpressionStatement","src":"9986:35:11"},{"expression":{"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2358,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10035:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2359,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10045:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2360,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10054:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2361,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10058:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10054:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10045:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10044:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10069:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10044:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10035:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2368,"nodeType":"ExpressionStatement","src":"10035:35:11"},{"expression":{"id":2378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2369,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10084:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2370,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10094:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2371,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10103:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2372,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10107:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10103:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10094:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10093:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10093:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2379,"nodeType":"ExpressionStatement","src":"10084:35:11"},{"expression":{"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2380,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10133:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2381,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10143:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2382,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10152:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2383,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10156:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10152:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10142:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10142:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2390,"nodeType":"ExpressionStatement","src":"10133:35:11"},{"expression":{"arguments":[{"id":2392,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10193:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2393,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10201:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2394,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10205:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10201:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2391,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"10189:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2295,"id":2397,"nodeType":"Return","src":"10182:30:11"}]}]},"documentation":{"id":2289,"nodeType":"StructuredDocumentation","src":"8359:223:11","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":2400,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8596:4:11","nodeType":"FunctionDefinition","parameters":{"id":2292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2291,"mutability":"mutable","name":"a","nameLocation":"8609:1:11","nodeType":"VariableDeclaration","scope":2400,"src":"8601:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2290,"name":"uint256","nodeType":"ElementaryTypeName","src":"8601:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8600:11:11"},"returnParameters":{"id":2295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2400,"src":"8635:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2293,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8634:9:11"},"scope":2911,"src":"8587:1642:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2434,"nodeType":"Block","src":"10405:164:11","statements":[{"id":2433,"nodeType":"UncheckedBlock","src":"10415:148:11","statements":[{"assignments":[2412],"declarations":[{"constant":false,"id":2412,"mutability":"mutable","name":"result","nameLocation":"10447:6:11","nodeType":"VariableDeclaration","scope":2433,"src":"10439:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2411,"name":"uint256","nodeType":"ElementaryTypeName","src":"10439:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2416,"initialValue":{"arguments":[{"id":2414,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"10461:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2413,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[2400,2435],"referencedDeclaration":2400,"src":"10456:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10456:7:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10439:24:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2417,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"10484:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2419,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"10511:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2418,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"10494:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2421,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"10524:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2422,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"10533:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2424,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"10542:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10494:49:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10550:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10494:57:11","trueExpression":{"hexValue":"31","id":2427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10546:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2430,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10493:59:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10484:68:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2410,"id":2432,"nodeType":"Return","src":"10477:75:11"}]}]},"documentation":{"id":2401,"nodeType":"StructuredDocumentation","src":"10235:89:11","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":2435,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10338:4:11","nodeType":"FunctionDefinition","parameters":{"id":2407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"a","nameLocation":"10351:1:11","nodeType":"VariableDeclaration","scope":2435,"src":"10343:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint256","nodeType":"ElementaryTypeName","src":"10343:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2406,"mutability":"mutable","name":"rounding","nameLocation":"10363:8:11","nodeType":"VariableDeclaration","scope":2435,"src":"10354:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2405,"nodeType":"UserDefinedTypeName","pathNode":{"id":2404,"name":"Rounding","nameLocations":["10354:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"10354:8:11"},"referencedDeclaration":1868,"src":"10354:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10342:30:11"},"returnParameters":{"id":2410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2435,"src":"10396:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2408,"name":"uint256","nodeType":"ElementaryTypeName","src":"10396:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10395:9:11"},"scope":2911,"src":"10329:240:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2566,"nodeType":"Block","src":"10760:922:11","statements":[{"assignments":[2444],"declarations":[{"constant":false,"id":2444,"mutability":"mutable","name":"result","nameLocation":"10778:6:11","nodeType":"VariableDeclaration","scope":2566,"src":"10770:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2443,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2446,"initialValue":{"hexValue":"30","id":2445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10787:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10770:18:11"},{"id":2563,"nodeType":"UncheckedBlock","src":"10798:855:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2447,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10826:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10835:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10826:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10841:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10826:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2461,"nodeType":"IfStatement","src":"10822:99:11","trueBody":{"id":2460,"nodeType":"Block","src":"10844:77:11","statements":[{"expression":{"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10862:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10872:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10862:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2455,"nodeType":"ExpressionStatement","src":"10862:13:11"},{"expression":{"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2456,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"10893:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10903:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10893:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2459,"nodeType":"ExpressionStatement","src":"10893:13:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2462,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10938:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10947:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10938:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10952:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10938:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2476,"nodeType":"IfStatement","src":"10934:96:11","trueBody":{"id":2475,"nodeType":"Block","src":"10955:75:11","statements":[{"expression":{"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2467,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10973:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10983:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10973:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2470,"nodeType":"ExpressionStatement","src":"10973:12:11"},{"expression":{"id":2473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2471,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11003:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11013:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11003:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2474,"nodeType":"ExpressionStatement","src":"11003:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11047:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11056:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11047:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11061:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11047:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2491,"nodeType":"IfStatement","src":"11043:96:11","trueBody":{"id":2490,"nodeType":"Block","src":"11064:75:11","statements":[{"expression":{"id":2484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2482,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11082:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11092:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11082:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2485,"nodeType":"ExpressionStatement","src":"11082:12:11"},{"expression":{"id":2488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2486,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11112:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11122:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11112:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2489,"nodeType":"ExpressionStatement","src":"11112:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11156:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11156:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11170:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11156:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2506,"nodeType":"IfStatement","src":"11152:96:11","trueBody":{"id":2505,"nodeType":"Block","src":"11173:75:11","statements":[{"expression":{"id":2499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2497,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11191:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11201:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11191:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2500,"nodeType":"ExpressionStatement","src":"11191:12:11"},{"expression":{"id":2503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2501,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11221:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11231:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11221:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2504,"nodeType":"ExpressionStatement","src":"11221:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11265:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11274:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11265:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11265:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2521,"nodeType":"IfStatement","src":"11261:93:11","trueBody":{"id":2520,"nodeType":"Block","src":"11281:73:11","statements":[{"expression":{"id":2514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2512,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11299:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":2513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11299:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2515,"nodeType":"ExpressionStatement","src":"11299:11:11"},{"expression":{"id":2518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2516,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11328:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11338:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11328:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2519,"nodeType":"ExpressionStatement","src":"11328:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11371:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11380:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11371:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11384:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11371:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2536,"nodeType":"IfStatement","src":"11367:93:11","trueBody":{"id":2535,"nodeType":"Block","src":"11387:73:11","statements":[{"expression":{"id":2529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11405:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11415:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11405:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2530,"nodeType":"ExpressionStatement","src":"11405:11:11"},{"expression":{"id":2533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2531,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11434:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11444:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11434:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2534,"nodeType":"ExpressionStatement","src":"11434:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11477:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":2538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11486:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11477:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11490:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11477:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2551,"nodeType":"IfStatement","src":"11473:93:11","trueBody":{"id":2550,"nodeType":"Block","src":"11493:73:11","statements":[{"expression":{"id":2544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11511:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":2543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11521:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11511:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2545,"nodeType":"ExpressionStatement","src":"11511:11:11"},{"expression":{"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2546,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11540:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11550:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11540:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2549,"nodeType":"ExpressionStatement","src":"11540:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2552,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11583:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11592:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11583:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11596:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11583:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2562,"nodeType":"IfStatement","src":"11579:64:11","trueBody":{"id":2561,"nodeType":"Block","src":"11599:44:11","statements":[{"expression":{"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2557,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11617:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11617:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2560,"nodeType":"ExpressionStatement","src":"11617:11:11"}]}}]},{"expression":{"id":2564,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11669:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2442,"id":2565,"nodeType":"Return","src":"11662:13:11"}]},"documentation":{"id":2436,"nodeType":"StructuredDocumentation","src":"10575:119:11","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":2567,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10708:4:11","nodeType":"FunctionDefinition","parameters":{"id":2439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"value","nameLocation":"10721:5:11","nodeType":"VariableDeclaration","scope":2567,"src":"10713:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2437,"name":"uint256","nodeType":"ElementaryTypeName","src":"10713:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10712:15:11"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2567,"src":"10751:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2440,"name":"uint256","nodeType":"ElementaryTypeName","src":"10751:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10750:9:11"},"scope":2911,"src":"10699:983:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2601,"nodeType":"Block","src":"11915:168:11","statements":[{"id":2600,"nodeType":"UncheckedBlock","src":"11925:152:11","statements":[{"assignments":[2579],"declarations":[{"constant":false,"id":2579,"mutability":"mutable","name":"result","nameLocation":"11957:6:11","nodeType":"VariableDeclaration","scope":2600,"src":"11949:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2578,"name":"uint256","nodeType":"ElementaryTypeName","src":"11949:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2583,"initialValue":{"arguments":[{"id":2581,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2570,"src":"11971:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2580,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2567,2602],"referencedDeclaration":2567,"src":"11966:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:11:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11949:28:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2584,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"11998:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2586,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"12025:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2585,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"12008:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12008:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2589,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"12043:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2570,"src":"12052:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12008:49:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12064:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12008:57:11","trueExpression":{"hexValue":"31","id":2594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12060:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12007:59:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11998:68:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2577,"id":2599,"nodeType":"Return","src":"11991:75:11"}]}]},"documentation":{"id":2568,"nodeType":"StructuredDocumentation","src":"11688:142:11","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2602,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"11844:4:11","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2570,"mutability":"mutable","name":"value","nameLocation":"11857:5:11","nodeType":"VariableDeclaration","scope":2602,"src":"11849:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2569,"name":"uint256","nodeType":"ElementaryTypeName","src":"11849:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2573,"mutability":"mutable","name":"rounding","nameLocation":"11873:8:11","nodeType":"VariableDeclaration","scope":2602,"src":"11864:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2572,"nodeType":"UserDefinedTypeName","pathNode":{"id":2571,"name":"Rounding","nameLocations":["11864:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"11864:8:11"},"referencedDeclaration":1868,"src":"11864:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11848:34:11"},"returnParameters":{"id":2577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2602,"src":"11906:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2575,"name":"uint256","nodeType":"ElementaryTypeName","src":"11906:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11905:9:11"},"scope":2911,"src":"11835:248:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2730,"nodeType":"Block","src":"12276:854:11","statements":[{"assignments":[2611],"declarations":[{"constant":false,"id":2611,"mutability":"mutable","name":"result","nameLocation":"12294:6:11","nodeType":"VariableDeclaration","scope":2730,"src":"12286:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2610,"name":"uint256","nodeType":"ElementaryTypeName","src":"12286:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2613,"initialValue":{"hexValue":"30","id":2612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12303:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12286:18:11"},{"id":2727,"nodeType":"UncheckedBlock","src":"12314:787:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12342:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":2617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12351:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12357:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12351:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12342:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2630,"nodeType":"IfStatement","src":"12338:103:11","trueBody":{"id":2629,"nodeType":"Block","src":"12361:80:11","statements":[{"expression":{"id":2623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12379:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":2622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12388:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12394:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12388:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12379:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2624,"nodeType":"ExpressionStatement","src":"12379:17:11"},{"expression":{"id":2627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2625,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12414:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12424:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12414:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2628,"nodeType":"ExpressionStatement","src":"12414:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12458:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":2634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12467:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12473:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12467:8:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12458:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2647,"nodeType":"IfStatement","src":"12454:103:11","trueBody":{"id":2646,"nodeType":"Block","src":"12477:80:11","statements":[{"expression":{"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12495:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":2639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12504:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12510:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12504:8:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12495:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2641,"nodeType":"ExpressionStatement","src":"12495:17:11"},{"expression":{"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2642,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12530:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12540:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12530:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2645,"nodeType":"ExpressionStatement","src":"12530:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12574:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12589:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12583:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12574:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2664,"nodeType":"IfStatement","src":"12570:103:11","trueBody":{"id":2663,"nodeType":"Block","src":"12593:80:11","statements":[{"expression":{"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2653,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12611:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12620:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12626:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12620:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12611:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2658,"nodeType":"ExpressionStatement","src":"12611:17:11"},{"expression":{"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2659,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12646:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12656:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12646:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2662,"nodeType":"ExpressionStatement","src":"12646:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2665,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12690:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12699:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12705:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12699:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12690:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2681,"nodeType":"IfStatement","src":"12686:100:11","trueBody":{"id":2680,"nodeType":"Block","src":"12708:78:11","statements":[{"expression":{"id":2674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2670,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12726:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12735:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12741:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12735:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12726:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2675,"nodeType":"ExpressionStatement","src":"12726:16:11"},{"expression":{"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2676,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12760:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12770:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12760:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2679,"nodeType":"ExpressionStatement","src":"12760:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2682,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12803:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12812:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12818:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12812:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12803:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2698,"nodeType":"IfStatement","src":"12799:100:11","trueBody":{"id":2697,"nodeType":"Block","src":"12821:78:11","statements":[{"expression":{"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12839:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12854:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12848:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12839:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2692,"nodeType":"ExpressionStatement","src":"12839:16:11"},{"expression":{"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2693,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12873:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12883:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12873:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2696,"nodeType":"ExpressionStatement","src":"12873:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2699,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12916:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12931:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12925:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12916:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2715,"nodeType":"IfStatement","src":"12912:100:11","trueBody":{"id":2714,"nodeType":"Block","src":"12934:78:11","statements":[{"expression":{"id":2708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12952:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12967:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12961:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12952:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2709,"nodeType":"ExpressionStatement","src":"12952:16:11"},{"expression":{"id":2712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2710,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12986:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12996:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12986:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2713,"nodeType":"ExpressionStatement","src":"12986:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2716,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"13029:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":2719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13038:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":2718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13038:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13029:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2726,"nodeType":"IfStatement","src":"13025:66:11","trueBody":{"id":2725,"nodeType":"Block","src":"13047:44:11","statements":[{"expression":{"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2721,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"13065:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13075:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13065:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2724,"nodeType":"ExpressionStatement","src":"13065:11:11"}]}}]},{"expression":{"id":2728,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"13117:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2609,"id":2729,"nodeType":"Return","src":"13110:13:11"}]},"documentation":{"id":2603,"nodeType":"StructuredDocumentation","src":"12089:120:11","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":2731,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12223:5:11","nodeType":"FunctionDefinition","parameters":{"id":2606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2605,"mutability":"mutable","name":"value","nameLocation":"12237:5:11","nodeType":"VariableDeclaration","scope":2731,"src":"12229:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2604,"name":"uint256","nodeType":"ElementaryTypeName","src":"12229:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12228:15:11"},"returnParameters":{"id":2609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2731,"src":"12267:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"12267:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12266:9:11"},"scope":2911,"src":"12214:916:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2765,"nodeType":"Block","src":"13365:170:11","statements":[{"id":2764,"nodeType":"UncheckedBlock","src":"13375:154:11","statements":[{"assignments":[2743],"declarations":[{"constant":false,"id":2743,"mutability":"mutable","name":"result","nameLocation":"13407:6:11","nodeType":"VariableDeclaration","scope":2764,"src":"13399:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2742,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2747,"initialValue":{"arguments":[{"id":2745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"13422:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2744,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[2731,2766],"referencedDeclaration":2731,"src":"13416:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13416:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13399:29:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2748,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"13449:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2750,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2737,"src":"13476:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2749,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"13459:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13459:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13489:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":2753,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"13495:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"13504:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13459:50:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13459:58:11","trueExpression":{"hexValue":"31","id":2758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13512:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13458:60:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13449:69:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2741,"id":2763,"nodeType":"Return","src":"13442:76:11"}]}]},"documentation":{"id":2732,"nodeType":"StructuredDocumentation","src":"13136:143:11","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2766,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13293:5:11","nodeType":"FunctionDefinition","parameters":{"id":2738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2734,"mutability":"mutable","name":"value","nameLocation":"13307:5:11","nodeType":"VariableDeclaration","scope":2766,"src":"13299:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2733,"name":"uint256","nodeType":"ElementaryTypeName","src":"13299:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2737,"mutability":"mutable","name":"rounding","nameLocation":"13323:8:11","nodeType":"VariableDeclaration","scope":2766,"src":"13314:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2736,"nodeType":"UserDefinedTypeName","pathNode":{"id":2735,"name":"Rounding","nameLocations":["13314:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"13314:8:11"},"referencedDeclaration":1868,"src":"13314:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13298:34:11"},"returnParameters":{"id":2741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2766,"src":"13356:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2739,"name":"uint256","nodeType":"ElementaryTypeName","src":"13356:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13355:9:11"},"scope":2911,"src":"13284:251:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2852,"nodeType":"Block","src":"13855:600:11","statements":[{"assignments":[2775],"declarations":[{"constant":false,"id":2775,"mutability":"mutable","name":"result","nameLocation":"13873:6:11","nodeType":"VariableDeclaration","scope":2852,"src":"13865:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2774,"name":"uint256","nodeType":"ElementaryTypeName","src":"13865:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2777,"initialValue":{"hexValue":"30","id":2776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13882:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13865:18:11"},{"id":2849,"nodeType":"UncheckedBlock","src":"13893:533:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"13921:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13930:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13921:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13936:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13921:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2792,"nodeType":"IfStatement","src":"13917:98:11","trueBody":{"id":2791,"nodeType":"Block","src":"13939:76:11","statements":[{"expression":{"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"13957:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13967:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13957:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2786,"nodeType":"ExpressionStatement","src":"13957:13:11"},{"expression":{"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2787,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"13988:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13988:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2790,"nodeType":"ExpressionStatement","src":"13988:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14032:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14041:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14032:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14046:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14032:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2807,"nodeType":"IfStatement","src":"14028:95:11","trueBody":{"id":2806,"nodeType":"Block","src":"14049:74:11","statements":[{"expression":{"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14067:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14077:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14067:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2801,"nodeType":"ExpressionStatement","src":"14067:12:11"},{"expression":{"id":2804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2802,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14097:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14097:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2805,"nodeType":"ExpressionStatement","src":"14097:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14140:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14149:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14140:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14154:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14140:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2822,"nodeType":"IfStatement","src":"14136:95:11","trueBody":{"id":2821,"nodeType":"Block","src":"14157:74:11","statements":[{"expression":{"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14175:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14185:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14175:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2816,"nodeType":"ExpressionStatement","src":"14175:12:11"},{"expression":{"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2817,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14205:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14215:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14205:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2820,"nodeType":"ExpressionStatement","src":"14205:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14248:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14248:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14248:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2837,"nodeType":"IfStatement","src":"14244:95:11","trueBody":{"id":2836,"nodeType":"Block","src":"14265:74:11","statements":[{"expression":{"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14283:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14293:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14283:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2831,"nodeType":"ExpressionStatement","src":"14283:12:11"},{"expression":{"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2832,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14313:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14323:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14313:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2835,"nodeType":"ExpressionStatement","src":"14313:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2838,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14356:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14365:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14356:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14369:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14356:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2848,"nodeType":"IfStatement","src":"14352:64:11","trueBody":{"id":2847,"nodeType":"Block","src":"14372:44:11","statements":[{"expression":{"id":2845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2843,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14390:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14400:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14390:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2846,"nodeType":"ExpressionStatement","src":"14390:11:11"}]}}]},{"expression":{"id":2850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14442:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2773,"id":2851,"nodeType":"Return","src":"14435:13:11"}]},"documentation":{"id":2767,"nodeType":"StructuredDocumentation","src":"13541:246:11","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":2853,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"13801:6:11","nodeType":"FunctionDefinition","parameters":{"id":2770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2769,"mutability":"mutable","name":"value","nameLocation":"13816:5:11","nodeType":"VariableDeclaration","scope":2853,"src":"13808:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2768,"name":"uint256","nodeType":"ElementaryTypeName","src":"13808:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13807:15:11"},"returnParameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2853,"src":"13846:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2771,"name":"uint256","nodeType":"ElementaryTypeName","src":"13846:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13845:9:11"},"scope":2911,"src":"13792:663:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2890,"nodeType":"Block","src":"14692:177:11","statements":[{"id":2889,"nodeType":"UncheckedBlock","src":"14702:161:11","statements":[{"assignments":[2865],"declarations":[{"constant":false,"id":2865,"mutability":"mutable","name":"result","nameLocation":"14734:6:11","nodeType":"VariableDeclaration","scope":2889,"src":"14726:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2864,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2869,"initialValue":{"arguments":[{"id":2867,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"14750:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2866,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[2853,2891],"referencedDeclaration":2853,"src":"14743:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14743:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:30:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2870,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"14777:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2872,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2859,"src":"14804:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2871,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"14787:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14787:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14817:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2875,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"14823:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14833:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14823:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14822:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2880,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"14838:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:26:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14787:56:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14850:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14787:64:11","trueExpression":{"hexValue":"31","id":2883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14846:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14786:66:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14777:75:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2863,"id":2888,"nodeType":"Return","src":"14770:82:11"}]}]},"documentation":{"id":2854,"nodeType":"StructuredDocumentation","src":"14461:144:11","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2891,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14619:6:11","nodeType":"FunctionDefinition","parameters":{"id":2860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2856,"mutability":"mutable","name":"value","nameLocation":"14634:5:11","nodeType":"VariableDeclaration","scope":2891,"src":"14626:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2855,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2859,"mutability":"mutable","name":"rounding","nameLocation":"14650:8:11","nodeType":"VariableDeclaration","scope":2891,"src":"14641:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2858,"nodeType":"UserDefinedTypeName","pathNode":{"id":2857,"name":"Rounding","nameLocations":["14641:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"14641:8:11"},"referencedDeclaration":1868,"src":"14641:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14625:34:11"},"returnParameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2891,"src":"14683:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2861,"name":"uint256","nodeType":"ElementaryTypeName","src":"14683:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14682:9:11"},"scope":2911,"src":"14610:259:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2909,"nodeType":"Block","src":"15067:48:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2902,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"15090:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15084:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2900,"name":"uint8","nodeType":"ElementaryTypeName","src":"15084:5:11","typeDescriptions":{}}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15084:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15102:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15084:19:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15107:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15084:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2899,"id":2908,"nodeType":"Return","src":"15077:31:11"}]},"documentation":{"id":2892,"nodeType":"StructuredDocumentation","src":"14875:113:11","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":2910,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"15002:16:11","nodeType":"FunctionDefinition","parameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2895,"mutability":"mutable","name":"rounding","nameLocation":"15028:8:11","nodeType":"VariableDeclaration","scope":2910,"src":"15019:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2894,"nodeType":"UserDefinedTypeName","pathNode":{"id":2893,"name":"Rounding","nameLocations":["15019:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"15019:8:11"},"referencedDeclaration":1868,"src":"15019:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"15018:19:11"},"returnParameters":{"id":2899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2910,"src":"15061:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2897,"name":"bool","nodeType":"ElementaryTypeName","src":"15061:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15060:6:11"},"scope":2911,"src":"14993:122:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2912,"src":"203:14914:11","usedErrors":[1863],"usedEvents":[]}],"src":"103:15015:11"},"id":11},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[3016]},"id":3017,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2913,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:12"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":2914,"nodeType":"StructuredDocumentation","src":"135:80:12","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3016,"linearizedBaseContracts":[3016],"name":"SignedMath","nameLocation":"224:10:12","nodeType":"ContractDefinition","nodes":[{"body":{"id":2931,"nodeType":"Block","src":"376:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2924,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2917,"src":"393:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2925,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"397:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2928,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"405:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:12","trueExpression":{"id":2927,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2917,"src":"401:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2923,"id":2930,"nodeType":"Return","src":"386:20:12"}]},"documentation":{"id":2915,"nodeType":"StructuredDocumentation","src":"241:66:12","text":" @dev Returns the largest of two signed numbers."},"id":2932,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:12","nodeType":"FunctionDefinition","parameters":{"id":2920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2917,"mutability":"mutable","name":"a","nameLocation":"332:1:12","nodeType":"VariableDeclaration","scope":2932,"src":"325:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2916,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2919,"mutability":"mutable","name":"b","nameLocation":"342:1:12","nodeType":"VariableDeclaration","scope":2932,"src":"335:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2918,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:12"},"returnParameters":{"id":2923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2932,"src":"368:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2921,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:12"},"scope":3016,"src":"312:101:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2949,"nodeType":"Block","src":"555:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2942,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"572:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2943,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2937,"src":"576:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2946,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2937,"src":"584:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:12","trueExpression":{"id":2945,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"580:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2941,"id":2948,"nodeType":"Return","src":"565:20:12"}]},"documentation":{"id":2933,"nodeType":"StructuredDocumentation","src":"419:67:12","text":" @dev Returns the smallest of two signed numbers."},"id":2950,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:12","nodeType":"FunctionDefinition","parameters":{"id":2938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2935,"mutability":"mutable","name":"a","nameLocation":"511:1:12","nodeType":"VariableDeclaration","scope":2950,"src":"504:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2934,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2937,"mutability":"mutable","name":"b","nameLocation":"521:1:12","nodeType":"VariableDeclaration","scope":2950,"src":"514:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2936,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:12"},"returnParameters":{"id":2941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2950,"src":"547:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2939,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:12"},"scope":3016,"src":"491:101:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2993,"nodeType":"Block","src":"797:162:12","statements":[{"assignments":[2961],"declarations":[{"constant":false,"id":2961,"mutability":"mutable","name":"x","nameLocation":"866:1:12","nodeType":"VariableDeclaration","scope":2993,"src":"859:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2960,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":2974,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2962,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"871:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2963,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"875:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2966,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"882:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2967,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"886:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2969,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:12"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2975,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"911:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2980,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2978,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:12","typeDescriptions":{}}},"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":2982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":2976,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:12","typeDescriptions":{}}},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2985,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"945:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2986,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"949:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2959,"id":2992,"nodeType":"Return","src":"904:48:12"}]},"documentation":{"id":2951,"nodeType":"StructuredDocumentation","src":"598:126:12","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":2994,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:12","nodeType":"FunctionDefinition","parameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2953,"mutability":"mutable","name":"a","nameLocation":"753:1:12","nodeType":"VariableDeclaration","scope":2994,"src":"746:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2952,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2955,"mutability":"mutable","name":"b","nameLocation":"763:1:12","nodeType":"VariableDeclaration","scope":2994,"src":"756:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2954,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:12"},"returnParameters":{"id":2959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2994,"src":"789:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2957,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:12"},"scope":3016,"src":"729:230:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3014,"nodeType":"Block","src":"1103:158:12","statements":[{"id":3013,"nodeType":"UncheckedBlock","src":"1113:142:12","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3004,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"1228:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:12","subExpression":{"id":3008,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"1242:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:12","trueExpression":{"id":3007,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"1237:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:12","typeDescriptions":{}}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3001,"id":3012,"nodeType":"Return","src":"1213:31:12"}]}]},"documentation":{"id":2995,"nodeType":"StructuredDocumentation","src":"965:78:12","text":" @dev Returns the absolute unsigned value of a signed value."},"id":3015,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:12","nodeType":"FunctionDefinition","parameters":{"id":2998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2997,"mutability":"mutable","name":"n","nameLocation":"1068:1:12","nodeType":"VariableDeclaration","scope":3015,"src":"1061:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2996,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:12"},"returnParameters":{"id":3001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3015,"src":"1094:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:12"},"scope":3016,"src":"1048:213:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3017,"src":"216:1047:12","usedErrors":[],"usedEvents":[]}],"src":"109:1155:12"},"id":12},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[3629]},"id":3630,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3018,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"205:24:13"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":3019,"nodeType":"StructuredDocumentation","src":"231:1098:13","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```solidity\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":3629,"linearizedBaseContracts":[3629],"name":"EnumerableSet","nameLocation":"1338:13:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":3027,"members":[{"constant":false,"id":3022,"mutability":"mutable","name":"_values","nameLocation":"1862:7:13","nodeType":"VariableDeclaration","scope":3027,"src":"1852:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1852:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3021,"nodeType":"ArrayTypeName","src":"1852:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3026,"mutability":"mutable","name":"_positions","nameLocation":"2054:10:13","nodeType":"VariableDeclaration","scope":3027,"src":"2020:44:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":3025,"keyName":"value","keyNameLocation":"2036:5:13","keyType":{"id":3023,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2028:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2020:33:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2045:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1805:3:13","nodeType":"StructDefinition","scope":3629,"src":"1798:273:13","visibility":"public"},{"body":{"id":3068,"nodeType":"Block","src":"2310:337:13","statements":[{"condition":{"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2324:22:13","subExpression":{"arguments":[{"id":3039,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2335:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":3040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"2340:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3038,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"2325:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:21:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3066,"nodeType":"Block","src":"2604:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":3064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2625:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3037,"id":3065,"nodeType":"Return","src":"2618:12:13"}]},"id":3067,"nodeType":"IfStatement","src":"2320:321:13","trueBody":{"id":3063,"nodeType":"Block","src":"2348:250:13","statements":[{"expression":{"arguments":[{"id":3048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"2379:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":3043,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2362:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2366:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"2362:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:4:13","memberName":"push","nodeType":"MemberAccess","src":"2362:16:13","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2362:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3050,"nodeType":"ExpressionStatement","src":"2362:23:13"},{"expression":{"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3051,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2520:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2524:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"2520:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3055,"indexExpression":{"id":3053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"2535:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2520:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":3056,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2544:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"2544:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2556:6:13","memberName":"length","nodeType":"MemberAccess","src":"2544:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2520:42:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3060,"nodeType":"ExpressionStatement","src":"2520:42:13"},{"expression":{"hexValue":"74727565","id":3061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2583:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3037,"id":3062,"nodeType":"Return","src":"2576:11:13"}]}}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"2077:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3069,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2250:4:13","nodeType":"FunctionDefinition","parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"set","nameLocation":"2267:3:13","nodeType":"VariableDeclaration","scope":3069,"src":"2255:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3030,"nodeType":"UserDefinedTypeName","pathNode":{"id":3029,"name":"Set","nameLocations":["2255:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"2255:3:13"},"referencedDeclaration":3027,"src":"2255:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3033,"mutability":"mutable","name":"value","nameLocation":"2280:5:13","nodeType":"VariableDeclaration","scope":3069,"src":"2272:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2272:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2254:32:13"},"returnParameters":{"id":3037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3069,"src":"2304:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3035,"name":"bool","nodeType":"ElementaryTypeName","src":"2304:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2303:6:13"},"scope":3629,"src":"2241:406:13","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3152,"nodeType":"Block","src":"2887:1296:13","statements":[{"assignments":[3081],"declarations":[{"constant":false,"id":3081,"mutability":"mutable","name":"position","nameLocation":"2999:8:13","nodeType":"VariableDeclaration","scope":3152,"src":"2991:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3080,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3086,"initialValue":{"baseExpression":{"expression":{"id":3082,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3010:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3014:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"3010:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3085,"indexExpression":{"id":3084,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"3025:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2991:40:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3087,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3046:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3058:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3046:13:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3150,"nodeType":"Block","src":"4140:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":3148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4161:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3079,"id":3149,"nodeType":"Return","src":"4154:12:13"}]},"id":3151,"nodeType":"IfStatement","src":"3042:1135:13","trueBody":{"id":3147,"nodeType":"Block","src":"3061:1073:13","statements":[{"assignments":[3091],"declarations":[{"constant":false,"id":3091,"mutability":"mutable","name":"valueIndex","nameLocation":"3421:10:13","nodeType":"VariableDeclaration","scope":3147,"src":"3413:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3090,"name":"uint256","nodeType":"ElementaryTypeName","src":"3413:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3095,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3092,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3434:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3445:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3434:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3413:33:13"},{"assignments":[3097],"declarations":[{"constant":false,"id":3097,"mutability":"mutable","name":"lastIndex","nameLocation":"3468:9:13","nodeType":"VariableDeclaration","scope":3147,"src":"3460:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3460:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3103,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3098,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3480:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3484:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3480:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3492:6:13","memberName":"length","nodeType":"MemberAccess","src":"3480:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3501:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3480:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3460:42:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3104,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"3521:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3105,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3535:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3521:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3131,"nodeType":"IfStatement","src":"3517:378:13","trueBody":{"id":3130,"nodeType":"Block","src":"3546:349:13","statements":[{"assignments":[3108],"declarations":[{"constant":false,"id":3108,"mutability":"mutable","name":"lastValue","nameLocation":"3572:9:13","nodeType":"VariableDeclaration","scope":3130,"src":"3564:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3564:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3113,"initialValue":{"baseExpression":{"expression":{"id":3109,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3584:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3588:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3584:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3112,"indexExpression":{"id":3111,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3596:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3584:22:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3564:42:13"},{"expression":{"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3114,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3705:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3709:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3705:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3118,"indexExpression":{"id":3116,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"3717:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3705:23:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3119,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"3731:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3705:35:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3121,"nodeType":"ExpressionStatement","src":"3705:35:13"},{"expression":{"id":3128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3122,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3844:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"3844:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3126,"indexExpression":{"id":3124,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"3859:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3844:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3127,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3872:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3844:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3129,"nodeType":"ExpressionStatement","src":"3844:36:13"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":3132,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3973:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3977:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3973:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3985:3:13","memberName":"pop","nodeType":"MemberAccess","src":"3973:15:13","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":3137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3973:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3138,"nodeType":"ExpressionStatement","src":"3973:17:13"},{"expression":{"id":3143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4069:28:13","subExpression":{"baseExpression":{"expression":{"id":3139,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"4076:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4080:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"4076:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3142,"indexExpression":{"id":3141,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"4091:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4076:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3144,"nodeType":"ExpressionStatement","src":"4069:28:13"},{"expression":{"hexValue":"74727565","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4119:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3079,"id":3146,"nodeType":"Return","src":"4112:11:13"}]}}]},"documentation":{"id":3070,"nodeType":"StructuredDocumentation","src":"2653:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3153,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2824:7:13","nodeType":"FunctionDefinition","parameters":{"id":3076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3073,"mutability":"mutable","name":"set","nameLocation":"2844:3:13","nodeType":"VariableDeclaration","scope":3153,"src":"2832:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3072,"nodeType":"UserDefinedTypeName","pathNode":{"id":3071,"name":"Set","nameLocations":["2832:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"2832:3:13"},"referencedDeclaration":3027,"src":"2832:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3075,"mutability":"mutable","name":"value","nameLocation":"2857:5:13","nodeType":"VariableDeclaration","scope":3153,"src":"2849:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2849:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2831:32:13"},"returnParameters":{"id":3079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"2881:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3077,"name":"bool","nodeType":"ElementaryTypeName","src":"2881:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2880:6:13"},"scope":3629,"src":"2815:1368:13","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3171,"nodeType":"Block","src":"4343:50:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":3164,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3157,"src":"4360:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4364:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"4360:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3167,"indexExpression":{"id":3166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3159,"src":"4375:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4360:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4385:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4360:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3163,"id":3170,"nodeType":"Return","src":"4353:33:13"}]},"documentation":{"id":3154,"nodeType":"StructuredDocumentation","src":"4189:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3172,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4273:9:13","nodeType":"FunctionDefinition","parameters":{"id":3160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3157,"mutability":"mutable","name":"set","nameLocation":"4295:3:13","nodeType":"VariableDeclaration","scope":3172,"src":"4283:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3156,"nodeType":"UserDefinedTypeName","pathNode":{"id":3155,"name":"Set","nameLocations":["4283:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"4283:3:13"},"referencedDeclaration":3027,"src":"4283:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3159,"mutability":"mutable","name":"value","nameLocation":"4308:5:13","nodeType":"VariableDeclaration","scope":3172,"src":"4300:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4300:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4282:32:13"},"returnParameters":{"id":3163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3172,"src":"4337:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3161,"name":"bool","nodeType":"ElementaryTypeName","src":"4337:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4336:6:13"},"scope":3629,"src":"4264:129:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3185,"nodeType":"Block","src":"4539:42:13","statements":[{"expression":{"expression":{"expression":{"id":3181,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3176,"src":"4556:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4560:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"4556:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4568:6:13","memberName":"length","nodeType":"MemberAccess","src":"4556:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3180,"id":3184,"nodeType":"Return","src":"4549:25:13"}]},"documentation":{"id":3173,"nodeType":"StructuredDocumentation","src":"4399:70:13","text":" @dev Returns the number of values on the set. O(1)."},"id":3186,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4483:7:13","nodeType":"FunctionDefinition","parameters":{"id":3177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3176,"mutability":"mutable","name":"set","nameLocation":"4503:3:13","nodeType":"VariableDeclaration","scope":3186,"src":"4491:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3175,"nodeType":"UserDefinedTypeName","pathNode":{"id":3174,"name":"Set","nameLocations":["4491:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"4491:3:13"},"referencedDeclaration":3027,"src":"4491:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4490:17:13"},"returnParameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3186,"src":"4530:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint256","nodeType":"ElementaryTypeName","src":"4530:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4529:9:13"},"scope":3629,"src":"4474:107:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3202,"nodeType":"Block","src":"4999:42:13","statements":[{"expression":{"baseExpression":{"expression":{"id":3197,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"5016:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"5016:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3200,"indexExpression":{"id":3199,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3192,"src":"5028:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5016:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3196,"id":3201,"nodeType":"Return","src":"5009:25:13"}]},"documentation":{"id":3187,"nodeType":"StructuredDocumentation","src":"4587:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3203,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4932:3:13","nodeType":"FunctionDefinition","parameters":{"id":3193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3190,"mutability":"mutable","name":"set","nameLocation":"4948:3:13","nodeType":"VariableDeclaration","scope":3203,"src":"4936:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3189,"nodeType":"UserDefinedTypeName","pathNode":{"id":3188,"name":"Set","nameLocations":["4936:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"4936:3:13"},"referencedDeclaration":3027,"src":"4936:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3192,"mutability":"mutable","name":"index","nameLocation":"4961:5:13","nodeType":"VariableDeclaration","scope":3203,"src":"4953:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3191,"name":"uint256","nodeType":"ElementaryTypeName","src":"4953:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4935:32:13"},"returnParameters":{"id":3196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3203,"src":"4990:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4990:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4989:9:13"},"scope":3629,"src":"4923:118:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3216,"nodeType":"Block","src":"5655:35:13","statements":[{"expression":{"expression":{"id":3213,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"5672:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5676:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"5672:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":3212,"id":3215,"nodeType":"Return","src":"5665:18:13"}]},"documentation":{"id":3204,"nodeType":"StructuredDocumentation","src":"5047:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3217,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5590:7:13","nodeType":"FunctionDefinition","parameters":{"id":3208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3207,"mutability":"mutable","name":"set","nameLocation":"5610:3:13","nodeType":"VariableDeclaration","scope":3217,"src":"5598:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3206,"nodeType":"UserDefinedTypeName","pathNode":{"id":3205,"name":"Set","nameLocations":["5598:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"5598:3:13"},"referencedDeclaration":3027,"src":"5598:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5597:17:13"},"returnParameters":{"id":3212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3217,"src":"5637:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5637:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3210,"nodeType":"ArrayTypeName","src":"5637:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5636:18:13"},"scope":3629,"src":"5581:109:13","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":3221,"members":[{"constant":false,"id":3220,"mutability":"mutable","name":"_inner","nameLocation":"5747:6:13","nodeType":"VariableDeclaration","scope":3221,"src":"5743:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3219,"nodeType":"UserDefinedTypeName","pathNode":{"id":3218,"name":"Set","nameLocations":["5743:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"5743:3:13"},"referencedDeclaration":3027,"src":"5743:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5722:10:13","nodeType":"StructDefinition","scope":3629,"src":"5715:45:13","visibility":"public"},{"body":{"id":3238,"nodeType":"Block","src":"6006:47:13","statements":[{"expression":{"arguments":[{"expression":{"id":3233,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3225,"src":"6028:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6032:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6028:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"6040:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3232,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"6023:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6023:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3231,"id":3237,"nodeType":"Return","src":"6016:30:13"}]},"documentation":{"id":3222,"nodeType":"StructuredDocumentation","src":"5766:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3239,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5939:3:13","nodeType":"FunctionDefinition","parameters":{"id":3228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3225,"mutability":"mutable","name":"set","nameLocation":"5962:3:13","nodeType":"VariableDeclaration","scope":3239,"src":"5943:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3224,"nodeType":"UserDefinedTypeName","pathNode":{"id":3223,"name":"Bytes32Set","nameLocations":["5943:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"5943:10:13"},"referencedDeclaration":3221,"src":"5943:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3227,"mutability":"mutable","name":"value","nameLocation":"5975:5:13","nodeType":"VariableDeclaration","scope":3239,"src":"5967:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5967:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5942:39:13"},"returnParameters":{"id":3231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3239,"src":"6000:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3229,"name":"bool","nodeType":"ElementaryTypeName","src":"6000:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5999:6:13"},"scope":3629,"src":"5930:123:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3256,"nodeType":"Block","src":"6300:50:13","statements":[{"expression":{"arguments":[{"expression":{"id":3251,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"6325:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6329:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6325:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3245,"src":"6337:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3250,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"6317:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3249,"id":3255,"nodeType":"Return","src":"6310:33:13"}]},"documentation":{"id":3240,"nodeType":"StructuredDocumentation","src":"6059:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3257,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6230:6:13","nodeType":"FunctionDefinition","parameters":{"id":3246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3243,"mutability":"mutable","name":"set","nameLocation":"6256:3:13","nodeType":"VariableDeclaration","scope":3257,"src":"6237:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3242,"nodeType":"UserDefinedTypeName","pathNode":{"id":3241,"name":"Bytes32Set","nameLocations":["6237:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"6237:10:13"},"referencedDeclaration":3221,"src":"6237:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3245,"mutability":"mutable","name":"value","nameLocation":"6269:5:13","nodeType":"VariableDeclaration","scope":3257,"src":"6261:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6261:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6236:39:13"},"returnParameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3257,"src":"6294:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3247,"name":"bool","nodeType":"ElementaryTypeName","src":"6294:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6293:6:13"},"scope":3629,"src":"6221:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3274,"nodeType":"Block","src":"6517:52:13","statements":[{"expression":{"arguments":[{"expression":{"id":3269,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3261,"src":"6544:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6548:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6544:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3271,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3263,"src":"6556:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3268,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"6534:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6534:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3267,"id":3273,"nodeType":"Return","src":"6527:35:13"}]},"documentation":{"id":3258,"nodeType":"StructuredDocumentation","src":"6356:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3275,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6440:8:13","nodeType":"FunctionDefinition","parameters":{"id":3264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3261,"mutability":"mutable","name":"set","nameLocation":"6468:3:13","nodeType":"VariableDeclaration","scope":3275,"src":"6449:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3260,"nodeType":"UserDefinedTypeName","pathNode":{"id":3259,"name":"Bytes32Set","nameLocations":["6449:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"6449:10:13"},"referencedDeclaration":3221,"src":"6449:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3263,"mutability":"mutable","name":"value","nameLocation":"6481:5:13","nodeType":"VariableDeclaration","scope":3275,"src":"6473:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6473:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6448:39:13"},"returnParameters":{"id":3267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3275,"src":"6511:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3265,"name":"bool","nodeType":"ElementaryTypeName","src":"6511:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6510:6:13"},"scope":3629,"src":"6431:138:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3289,"nodeType":"Block","src":"6722:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":3285,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"6747:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6751:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6747:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3284,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"6739:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":3287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6739:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3283,"id":3288,"nodeType":"Return","src":"6732:26:13"}]},"documentation":{"id":3276,"nodeType":"StructuredDocumentation","src":"6575:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":3290,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6659:6:13","nodeType":"FunctionDefinition","parameters":{"id":3280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"set","nameLocation":"6685:3:13","nodeType":"VariableDeclaration","scope":3290,"src":"6666:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3278,"nodeType":"UserDefinedTypeName","pathNode":{"id":3277,"name":"Bytes32Set","nameLocations":["6666:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"6666:10:13"},"referencedDeclaration":3221,"src":"6666:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6665:24:13"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3290,"src":"6713:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"6713:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6712:9:13"},"scope":3629,"src":"6650:115:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3307,"nodeType":"Block","src":"7190:46:13","statements":[{"expression":{"arguments":[{"expression":{"id":3302,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"7211:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"7211:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3304,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"7223:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3301,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"7207:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7207:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3300,"id":3306,"nodeType":"Return","src":"7200:29:13"}]},"documentation":{"id":3291,"nodeType":"StructuredDocumentation","src":"6771:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3308,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7116:2:13","nodeType":"FunctionDefinition","parameters":{"id":3297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3294,"mutability":"mutable","name":"set","nameLocation":"7138:3:13","nodeType":"VariableDeclaration","scope":3308,"src":"7119:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3293,"nodeType":"UserDefinedTypeName","pathNode":{"id":3292,"name":"Bytes32Set","nameLocations":["7119:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"7119:10:13"},"referencedDeclaration":3221,"src":"7119:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3296,"mutability":"mutable","name":"index","nameLocation":"7151:5:13","nodeType":"VariableDeclaration","scope":3308,"src":"7143:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3295,"name":"uint256","nodeType":"ElementaryTypeName","src":"7143:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7118:39:13"},"returnParameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3308,"src":"7181:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7181:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7180:9:13"},"scope":3629,"src":"7107:129:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3337,"nodeType":"Block","src":"7857:219:13","statements":[{"assignments":[3322],"declarations":[{"constant":false,"id":3322,"mutability":"mutable","name":"store","nameLocation":"7884:5:13","nodeType":"VariableDeclaration","scope":3337,"src":"7867:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7867:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3321,"nodeType":"ArrayTypeName","src":"7867:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3327,"initialValue":{"arguments":[{"expression":{"id":3324,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"7900:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7904:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"7900:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3323,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"7892:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7892:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:44:13"},{"assignments":[3332],"declarations":[{"constant":false,"id":3332,"mutability":"mutable","name":"result","nameLocation":"7938:6:13","nodeType":"VariableDeclaration","scope":3337,"src":"7921:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7921:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3331,"nodeType":"ArrayTypeName","src":"7921:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3333,"nodeType":"VariableDeclarationStatement","src":"7921:23:13"},{"AST":{"nodeType":"YulBlock","src":"8007:39:13","statements":[{"nodeType":"YulAssignment","src":"8021:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"8031:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8021:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3332,"isOffset":false,"isSlot":false,"src":"8021:6:13","valueSize":1},{"declaration":3322,"isOffset":false,"isSlot":false,"src":"8031:5:13","valueSize":1}],"id":3334,"nodeType":"InlineAssembly","src":"7998:48:13"},{"expression":{"id":3335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"8063:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":3317,"id":3336,"nodeType":"Return","src":"8056:13:13"}]},"documentation":{"id":3309,"nodeType":"StructuredDocumentation","src":"7242:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3338,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7785:6:13","nodeType":"FunctionDefinition","parameters":{"id":3313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3312,"mutability":"mutable","name":"set","nameLocation":"7811:3:13","nodeType":"VariableDeclaration","scope":3338,"src":"7792:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3311,"nodeType":"UserDefinedTypeName","pathNode":{"id":3310,"name":"Bytes32Set","nameLocations":["7792:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"7792:10:13"},"referencedDeclaration":3221,"src":"7792:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7791:24:13"},"returnParameters":{"id":3317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3338,"src":"7839:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7839:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3315,"nodeType":"ArrayTypeName","src":"7839:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7838:18:13"},"scope":3629,"src":"7776:300:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":3342,"members":[{"constant":false,"id":3341,"mutability":"mutable","name":"_inner","nameLocation":"8133:6:13","nodeType":"VariableDeclaration","scope":3342,"src":"8129:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3340,"nodeType":"UserDefinedTypeName","pathNode":{"id":3339,"name":"Set","nameLocations":["8129:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"8129:3:13"},"referencedDeclaration":3027,"src":"8129:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8108:10:13","nodeType":"StructDefinition","scope":3629,"src":"8101:45:13","visibility":"public"},{"body":{"id":3368,"nodeType":"Block","src":"8392:74:13","statements":[{"expression":{"arguments":[{"expression":{"id":3354,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8414:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8418:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"8414:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":3362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8450:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8442:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3360,"name":"uint160","nodeType":"ElementaryTypeName","src":"8442:7:13","typeDescriptions":{}}},"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8442:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8434:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3358,"name":"uint256","nodeType":"ElementaryTypeName","src":"8434:7:13","typeDescriptions":{}}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8426:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8426:7:13","typeDescriptions":{}}},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8426:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3353,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"8409:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8409:50:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3352,"id":3367,"nodeType":"Return","src":"8402:57:13"}]},"documentation":{"id":3343,"nodeType":"StructuredDocumentation","src":"8152:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3369,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8325:3:13","nodeType":"FunctionDefinition","parameters":{"id":3349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3346,"mutability":"mutable","name":"set","nameLocation":"8348:3:13","nodeType":"VariableDeclaration","scope":3369,"src":"8329:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3345,"nodeType":"UserDefinedTypeName","pathNode":{"id":3344,"name":"AddressSet","nameLocations":["8329:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"8329:10:13"},"referencedDeclaration":3342,"src":"8329:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"value","nameLocation":"8361:5:13","nodeType":"VariableDeclaration","scope":3369,"src":"8353:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3347,"name":"address","nodeType":"ElementaryTypeName","src":"8353:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8328:39:13"},"returnParameters":{"id":3352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3369,"src":"8386:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3350,"name":"bool","nodeType":"ElementaryTypeName","src":"8386:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8385:6:13"},"scope":3629,"src":"8316:150:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3395,"nodeType":"Block","src":"8713:77:13","statements":[{"expression":{"arguments":[{"expression":{"id":3381,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"8738:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8742:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"8738:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":3389,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"8774:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8766:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3387,"name":"uint160","nodeType":"ElementaryTypeName","src":"8766:7:13","typeDescriptions":{}}},"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8766:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8758:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3385,"name":"uint256","nodeType":"ElementaryTypeName","src":"8758:7:13","typeDescriptions":{}}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8758:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8750:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8750:7:13","typeDescriptions":{}}},"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8750:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3380,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"8730:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8730:53:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3379,"id":3394,"nodeType":"Return","src":"8723:60:13"}]},"documentation":{"id":3370,"nodeType":"StructuredDocumentation","src":"8472:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3396,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8643:6:13","nodeType":"FunctionDefinition","parameters":{"id":3376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3373,"mutability":"mutable","name":"set","nameLocation":"8669:3:13","nodeType":"VariableDeclaration","scope":3396,"src":"8650:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3372,"nodeType":"UserDefinedTypeName","pathNode":{"id":3371,"name":"AddressSet","nameLocations":["8650:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"8650:10:13"},"referencedDeclaration":3342,"src":"8650:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3375,"mutability":"mutable","name":"value","nameLocation":"8682:5:13","nodeType":"VariableDeclaration","scope":3396,"src":"8674:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3374,"name":"address","nodeType":"ElementaryTypeName","src":"8674:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8649:39:13"},"returnParameters":{"id":3379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3396,"src":"8707:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3377,"name":"bool","nodeType":"ElementaryTypeName","src":"8707:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8706:6:13"},"scope":3629,"src":"8634:156:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3422,"nodeType":"Block","src":"8957:79:13","statements":[{"expression":{"arguments":[{"expression":{"id":3408,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"8984:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8988:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"8984:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":3416,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"9020:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9012:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3414,"name":"uint160","nodeType":"ElementaryTypeName","src":"9012:7:13","typeDescriptions":{}}},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9004:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3412,"name":"uint256","nodeType":"ElementaryTypeName","src":"9004:7:13","typeDescriptions":{}}},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9004:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8996:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8996:7:13","typeDescriptions":{}}},"id":3419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8996:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3407,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"8974:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8974:55:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3406,"id":3421,"nodeType":"Return","src":"8967:62:13"}]},"documentation":{"id":3397,"nodeType":"StructuredDocumentation","src":"8796:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3423,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8880:8:13","nodeType":"FunctionDefinition","parameters":{"id":3403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"set","nameLocation":"8908:3:13","nodeType":"VariableDeclaration","scope":3423,"src":"8889:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3399,"nodeType":"UserDefinedTypeName","pathNode":{"id":3398,"name":"AddressSet","nameLocations":["8889:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"8889:10:13"},"referencedDeclaration":3342,"src":"8889:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3402,"mutability":"mutable","name":"value","nameLocation":"8921:5:13","nodeType":"VariableDeclaration","scope":3423,"src":"8913:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3401,"name":"address","nodeType":"ElementaryTypeName","src":"8913:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8888:39:13"},"returnParameters":{"id":3406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3423,"src":"8951:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3404,"name":"bool","nodeType":"ElementaryTypeName","src":"8951:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8950:6:13"},"scope":3629,"src":"8871:165:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3437,"nodeType":"Block","src":"9189:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":3433,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"9214:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9218:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"9214:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3432,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"9206:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9206:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3431,"id":3436,"nodeType":"Return","src":"9199:26:13"}]},"documentation":{"id":3424,"nodeType":"StructuredDocumentation","src":"9042:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":3438,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9126:6:13","nodeType":"FunctionDefinition","parameters":{"id":3428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3427,"mutability":"mutable","name":"set","nameLocation":"9152:3:13","nodeType":"VariableDeclaration","scope":3438,"src":"9133:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3426,"nodeType":"UserDefinedTypeName","pathNode":{"id":3425,"name":"AddressSet","nameLocations":["9133:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"9133:10:13"},"referencedDeclaration":3342,"src":"9133:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9132:24:13"},"returnParameters":{"id":3431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3438,"src":"9180:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3429,"name":"uint256","nodeType":"ElementaryTypeName","src":"9180:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9179:9:13"},"scope":3629,"src":"9117:115:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3464,"nodeType":"Block","src":"9657:73:13","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3456,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"9702:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9706:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"9702:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3458,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3444,"src":"9714:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3455,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"9698:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9698:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9690:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3453,"name":"uint256","nodeType":"ElementaryTypeName","src":"9690:7:13","typeDescriptions":{}}},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9690:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9682:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3451,"name":"uint160","nodeType":"ElementaryTypeName","src":"9682:7:13","typeDescriptions":{}}},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9682:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9674:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3449,"name":"address","nodeType":"ElementaryTypeName","src":"9674:7:13","typeDescriptions":{}}},"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9674:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3448,"id":3463,"nodeType":"Return","src":"9667:56:13"}]},"documentation":{"id":3439,"nodeType":"StructuredDocumentation","src":"9238:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3465,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9583:2:13","nodeType":"FunctionDefinition","parameters":{"id":3445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3442,"mutability":"mutable","name":"set","nameLocation":"9605:3:13","nodeType":"VariableDeclaration","scope":3465,"src":"9586:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3441,"nodeType":"UserDefinedTypeName","pathNode":{"id":3440,"name":"AddressSet","nameLocations":["9586:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"9586:10:13"},"referencedDeclaration":3342,"src":"9586:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3444,"mutability":"mutable","name":"index","nameLocation":"9618:5:13","nodeType":"VariableDeclaration","scope":3465,"src":"9610:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3443,"name":"uint256","nodeType":"ElementaryTypeName","src":"9610:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9585:39:13"},"returnParameters":{"id":3448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3465,"src":"9648:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3446,"name":"address","nodeType":"ElementaryTypeName","src":"9648:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9647:9:13"},"scope":3629,"src":"9574:156:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3494,"nodeType":"Block","src":"10351:219:13","statements":[{"assignments":[3479],"declarations":[{"constant":false,"id":3479,"mutability":"mutable","name":"store","nameLocation":"10378:5:13","nodeType":"VariableDeclaration","scope":3494,"src":"10361:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10361:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3478,"nodeType":"ArrayTypeName","src":"10361:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3484,"initialValue":{"arguments":[{"expression":{"id":3481,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3469,"src":"10394:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"10394:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3480,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"10386:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10386:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10361:44:13"},{"assignments":[3489],"declarations":[{"constant":false,"id":3489,"mutability":"mutable","name":"result","nameLocation":"10432:6:13","nodeType":"VariableDeclaration","scope":3494,"src":"10415:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3487,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3488,"nodeType":"ArrayTypeName","src":"10415:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":3490,"nodeType":"VariableDeclarationStatement","src":"10415:23:13"},{"AST":{"nodeType":"YulBlock","src":"10501:39:13","statements":[{"nodeType":"YulAssignment","src":"10515:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"10525:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10515:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3489,"isOffset":false,"isSlot":false,"src":"10515:6:13","valueSize":1},{"declaration":3479,"isOffset":false,"isSlot":false,"src":"10525:5:13","valueSize":1}],"id":3491,"nodeType":"InlineAssembly","src":"10492:48:13"},{"expression":{"id":3492,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"10557:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":3474,"id":3493,"nodeType":"Return","src":"10550:13:13"}]},"documentation":{"id":3466,"nodeType":"StructuredDocumentation","src":"9736:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3495,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10279:6:13","nodeType":"FunctionDefinition","parameters":{"id":3470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3469,"mutability":"mutable","name":"set","nameLocation":"10305:3:13","nodeType":"VariableDeclaration","scope":3495,"src":"10286:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3468,"nodeType":"UserDefinedTypeName","pathNode":{"id":3467,"name":"AddressSet","nameLocations":["10286:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"10286:10:13"},"referencedDeclaration":3342,"src":"10286:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10285:24:13"},"returnParameters":{"id":3474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3495,"src":"10333:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3471,"name":"address","nodeType":"ElementaryTypeName","src":"10333:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3472,"nodeType":"ArrayTypeName","src":"10333:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10332:18:13"},"scope":3629,"src":"10270:300:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":3499,"members":[{"constant":false,"id":3498,"mutability":"mutable","name":"_inner","nameLocation":"10621:6:13","nodeType":"VariableDeclaration","scope":3499,"src":"10617:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3497,"nodeType":"UserDefinedTypeName","pathNode":{"id":3496,"name":"Set","nameLocations":["10617:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"10617:3:13"},"referencedDeclaration":3027,"src":"10617:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10599:7:13","nodeType":"StructDefinition","scope":3629,"src":"10592:42:13","visibility":"public"},{"body":{"id":3519,"nodeType":"Block","src":"10877:56:13","statements":[{"expression":{"arguments":[{"expression":{"id":3511,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"10899:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10903:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"10899:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":3515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3505,"src":"10919:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10911:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10911:7:13","typeDescriptions":{}}},"id":3516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10911:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3510,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"10894:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10894:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3509,"id":3518,"nodeType":"Return","src":"10887:39:13"}]},"documentation":{"id":3500,"nodeType":"StructuredDocumentation","src":"10640:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3520,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10813:3:13","nodeType":"FunctionDefinition","parameters":{"id":3506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3503,"mutability":"mutable","name":"set","nameLocation":"10833:3:13","nodeType":"VariableDeclaration","scope":3520,"src":"10817:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3502,"nodeType":"UserDefinedTypeName","pathNode":{"id":3501,"name":"UintSet","nameLocations":["10817:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"10817:7:13"},"referencedDeclaration":3499,"src":"10817:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3505,"mutability":"mutable","name":"value","nameLocation":"10846:5:13","nodeType":"VariableDeclaration","scope":3520,"src":"10838:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3504,"name":"uint256","nodeType":"ElementaryTypeName","src":"10838:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10816:36:13"},"returnParameters":{"id":3509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3520,"src":"10871:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3507,"name":"bool","nodeType":"ElementaryTypeName","src":"10871:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10870:6:13"},"scope":3629,"src":"10804:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3540,"nodeType":"Block","src":"11177:59:13","statements":[{"expression":{"arguments":[{"expression":{"id":3532,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11202:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"11202:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":3536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"11222:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11214:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11214:7:13","typeDescriptions":{}}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11214:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3531,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"11194:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11194:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3530,"id":3539,"nodeType":"Return","src":"11187:42:13"}]},"documentation":{"id":3521,"nodeType":"StructuredDocumentation","src":"10939:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3541,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11110:6:13","nodeType":"FunctionDefinition","parameters":{"id":3527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3524,"mutability":"mutable","name":"set","nameLocation":"11133:3:13","nodeType":"VariableDeclaration","scope":3541,"src":"11117:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3523,"nodeType":"UserDefinedTypeName","pathNode":{"id":3522,"name":"UintSet","nameLocations":["11117:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"11117:7:13"},"referencedDeclaration":3499,"src":"11117:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3526,"mutability":"mutable","name":"value","nameLocation":"11146:5:13","nodeType":"VariableDeclaration","scope":3541,"src":"11138:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3525,"name":"uint256","nodeType":"ElementaryTypeName","src":"11138:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11116:36:13"},"returnParameters":{"id":3530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3541,"src":"11171:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3528,"name":"bool","nodeType":"ElementaryTypeName","src":"11171:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11170:6:13"},"scope":3629,"src":"11101:135:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3561,"nodeType":"Block","src":"11400:61:13","statements":[{"expression":{"arguments":[{"expression":{"id":3553,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3545,"src":"11427:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11431:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"11427:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":3557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3547,"src":"11447:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11439:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11439:7:13","typeDescriptions":{}}},"id":3558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11439:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3552,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"11417:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3551,"id":3560,"nodeType":"Return","src":"11410:44:13"}]},"documentation":{"id":3542,"nodeType":"StructuredDocumentation","src":"11242:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3562,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11326:8:13","nodeType":"FunctionDefinition","parameters":{"id":3548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3545,"mutability":"mutable","name":"set","nameLocation":"11351:3:13","nodeType":"VariableDeclaration","scope":3562,"src":"11335:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3544,"nodeType":"UserDefinedTypeName","pathNode":{"id":3543,"name":"UintSet","nameLocations":["11335:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"11335:7:13"},"referencedDeclaration":3499,"src":"11335:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3547,"mutability":"mutable","name":"value","nameLocation":"11364:5:13","nodeType":"VariableDeclaration","scope":3562,"src":"11356:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11356:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11334:36:13"},"returnParameters":{"id":3551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3562,"src":"11394:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3549,"name":"bool","nodeType":"ElementaryTypeName","src":"11394:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11393:6:13"},"scope":3629,"src":"11317:144:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3576,"nodeType":"Block","src":"11611:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":3572,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3566,"src":"11636:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11640:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"11636:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3571,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"11628:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11628:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3570,"id":3575,"nodeType":"Return","src":"11621:26:13"}]},"documentation":{"id":3563,"nodeType":"StructuredDocumentation","src":"11467:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":3577,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11551:6:13","nodeType":"FunctionDefinition","parameters":{"id":3567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3566,"mutability":"mutable","name":"set","nameLocation":"11574:3:13","nodeType":"VariableDeclaration","scope":3577,"src":"11558:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3565,"nodeType":"UserDefinedTypeName","pathNode":{"id":3564,"name":"UintSet","nameLocations":["11558:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"11558:7:13"},"referencedDeclaration":3499,"src":"11558:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11557:21:13"},"returnParameters":{"id":3570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3577,"src":"11602:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3568,"name":"uint256","nodeType":"ElementaryTypeName","src":"11602:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11601:9:13"},"scope":3629,"src":"11542:112:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3597,"nodeType":"Block","src":"12076:55:13","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3591,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"12105:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12109:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"12105:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3593,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"12117:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3590,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"12101:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12101:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12093:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3588,"name":"uint256","nodeType":"ElementaryTypeName","src":"12093:7:13","typeDescriptions":{}}},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12093:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3587,"id":3596,"nodeType":"Return","src":"12086:38:13"}]},"documentation":{"id":3578,"nodeType":"StructuredDocumentation","src":"11660:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3598,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"12005:2:13","nodeType":"FunctionDefinition","parameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"set","nameLocation":"12024:3:13","nodeType":"VariableDeclaration","scope":3598,"src":"12008:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3580,"nodeType":"UserDefinedTypeName","pathNode":{"id":3579,"name":"UintSet","nameLocations":["12008:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"12008:7:13"},"referencedDeclaration":3499,"src":"12008:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3583,"mutability":"mutable","name":"index","nameLocation":"12037:5:13","nodeType":"VariableDeclaration","scope":3598,"src":"12029:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3582,"name":"uint256","nodeType":"ElementaryTypeName","src":"12029:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12007:36:13"},"returnParameters":{"id":3587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3598,"src":"12067:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3585,"name":"uint256","nodeType":"ElementaryTypeName","src":"12067:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12066:9:13"},"scope":3629,"src":"11996:135:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3627,"nodeType":"Block","src":"12749:219:13","statements":[{"assignments":[3612],"declarations":[{"constant":false,"id":3612,"mutability":"mutable","name":"store","nameLocation":"12776:5:13","nodeType":"VariableDeclaration","scope":3627,"src":"12759:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12759:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3611,"nodeType":"ArrayTypeName","src":"12759:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3617,"initialValue":{"arguments":[{"expression":{"id":3614,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3602,"src":"12792:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12796:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"12792:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3613,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"12784:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12784:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12759:44:13"},{"assignments":[3622],"declarations":[{"constant":false,"id":3622,"mutability":"mutable","name":"result","nameLocation":"12830:6:13","nodeType":"VariableDeclaration","scope":3627,"src":"12813:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3620,"name":"uint256","nodeType":"ElementaryTypeName","src":"12813:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3621,"nodeType":"ArrayTypeName","src":"12813:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":3623,"nodeType":"VariableDeclarationStatement","src":"12813:23:13"},{"AST":{"nodeType":"YulBlock","src":"12899:39:13","statements":[{"nodeType":"YulAssignment","src":"12913:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"12923:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12913:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3622,"isOffset":false,"isSlot":false,"src":"12913:6:13","valueSize":1},{"declaration":3612,"isOffset":false,"isSlot":false,"src":"12923:5:13","valueSize":1}],"id":3624,"nodeType":"InlineAssembly","src":"12890:48:13"},{"expression":{"id":3625,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"12955:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":3607,"id":3626,"nodeType":"Return","src":"12948:13:13"}]},"documentation":{"id":3599,"nodeType":"StructuredDocumentation","src":"12137:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3628,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12680:6:13","nodeType":"FunctionDefinition","parameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3602,"mutability":"mutable","name":"set","nameLocation":"12703:3:13","nodeType":"VariableDeclaration","scope":3628,"src":"12687:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3601,"nodeType":"UserDefinedTypeName","pathNode":{"id":3600,"name":"UintSet","nameLocations":["12687:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"12687:7:13"},"referencedDeclaration":3499,"src":"12687:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12686:21:13"},"returnParameters":{"id":3607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3628,"src":"12731:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"12731:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3605,"nodeType":"ArrayTypeName","src":"12731:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12730:18:13"},"scope":3629,"src":"12671:297:13","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3630,"src":"1330:11640:13","usedErrors":[],"usedEvents":[]}],"src":"205:12766:13"},"id":13},"contracts/Bridged.sol":{"ast":{"absolutePath":"contracts/Bridged.sol","exportedSymbols":{"Bridged":[3756],"Create2":[1180],"ECDSA":[1783],"EnumerableSet":[3629],"Initializable":[390],"MessageHashUtils":[1857],"Relayer":[4434],"Strings":[1435],"ValidatorManager":[4775],"console":[12860]},"id":3757,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3631,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:14"},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":3632,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":12861,"src":"72:29:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":3633,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":391,"src":"103:63:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Relayer.sol","file":"./Relayer.sol","id":3634,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":4435,"src":"167:23:14","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3635,"name":"Initializable","nameLocations":["221:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":390,"src":"221:13:14"},"id":3636,"nodeType":"InheritanceSpecifier","src":"221:13:14"}],"canonicalName":"Bridged","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3756,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[3756,390],"name":"Bridged","nameLocation":"210:7:14","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3639,"mutability":"mutable","name":"_relayer","nameLocation":"257:8:14","nodeType":"VariableDeclaration","scope":3756,"src":"241:24:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"},"typeName":{"id":3638,"nodeType":"UserDefinedTypeName","pathNode":{"id":3637,"name":"Relayer","nameLocations":["241:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":4434,"src":"241:7:14"},"referencedDeclaration":4434,"src":"241:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"visibility":"private"},{"body":{"id":3651,"nodeType":"Block","src":"328:35:14","statements":[{"expression":{"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3647,"name":"_relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"338:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3648,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3642,"src":"349:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"src":"338:18:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"id":3650,"nodeType":"ExpressionStatement","src":"338:18:14"}]},"functionSelector":"c4d66de8","id":3652,"implemented":true,"kind":"function","modifiers":[{"id":3645,"kind":"modifierInvocation","modifierName":{"id":3644,"name":"initializer","nameLocations":["316:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":244,"src":"316:11:14"},"nodeType":"ModifierInvocation","src":"316:11:14"}],"name":"initialize","nameLocation":"281:10:14","nodeType":"FunctionDefinition","parameters":{"id":3643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3642,"mutability":"mutable","name":"relayer","nameLocation":"300:7:14","nodeType":"VariableDeclaration","scope":3652,"src":"292:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"},"typeName":{"id":3641,"nodeType":"UserDefinedTypeName","pathNode":{"id":3640,"name":"Relayer","nameLocations":["292:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":4434,"src":"292:7:14"},"referencedDeclaration":4434,"src":"292:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"visibility":"internal"}],"src":"291:17:14"},"returnParameters":{"id":3646,"nodeType":"ParameterList","parameters":[],"src":"328:0:14"},"scope":3756,"src":"272:91:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3666,"nodeType":"Block","src":"392:97:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3655,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"410:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"414:6:14","memberName":"sender","nodeType":"MemberAccess","src":"410:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3659,"name":"_relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"432:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}],"id":3658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"424:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3657,"name":"address","nodeType":"ElementaryTypeName","src":"424:7:14","typeDescriptions":{}}},"id":3660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"410:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742062652063616c6c65642062792072656c61796572","id":3662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"443:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057","typeString":"literal_string \"Must be called by relayer\""},"value":"Must be called by relayer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057","typeString":"literal_string \"Must be called by relayer\""}],"id":3654,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"402:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"402:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3664,"nodeType":"ExpressionStatement","src":"402:69:14"},{"id":3665,"nodeType":"PlaceholderStatement","src":"481:1:14"}]},"id":3667,"name":"onlyRelayer","nameLocation":"378:11:14","nodeType":"ModifierDefinition","parameters":{"id":3653,"nodeType":"ParameterList","parameters":[],"src":"389:2:14"},"src":"369:120:14","virtual":false,"visibility":"internal"},{"body":{"id":3699,"nodeType":"Block","src":"645:124:14","statements":[{"expression":{"arguments":[{"hexValue":"646973706174636865642829","id":3683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"667:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_406595f4dd7f396ab5e82085b525e09aa90c999e6237fc3c83265df1b315cdbc","typeString":"literal_string \"dispatched()\""},"value":"dispatched()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_406595f4dd7f396ab5e82085b525e09aa90c999e6237fc3c83265df1b315cdbc","typeString":"literal_string \"dispatched()\""}],"expression":{"id":3680,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"655:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"663:3:14","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"655:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"655:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3685,"nodeType":"ExpressionStatement","src":"655:27:14"},{"expression":{"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3686,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3676,"src":"693:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3687,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3678,"src":"702:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3688,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"692:19:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3695,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3671,"src":"757:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3689,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3669,"src":"714:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"721:4:14","memberName":"call","nodeType":"MemberAccess","src":"714:11:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value","gas"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":3691,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"733:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"737:5:14","memberName":"value","nodeType":"MemberAccess","src":"733:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030303030","id":3693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"749:6:14","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"src":"714:42:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"714:48:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"692:70:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3698,"nodeType":"ExpressionStatement","src":"692:70:14"}]},"functionSelector":"5d903f03","id":3700,"implemented":true,"kind":"function","modifiers":[{"id":3674,"kind":"modifierInvocation","modifierName":{"id":3673,"name":"onlyRelayer","nameLocations":["587:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"587:11:14"},"nodeType":"ModifierInvocation","src":"587:11:14"}],"name":"dispatched","nameLocation":"504:10:14","nodeType":"FunctionDefinition","parameters":{"id":3672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3669,"mutability":"mutable","name":"target","nameLocation":"532:6:14","nodeType":"VariableDeclaration","scope":3700,"src":"524:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3668,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3671,"mutability":"mutable","name":"call","nameLocation":"561:4:14","nodeType":"VariableDeclaration","scope":3700,"src":"548:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3670,"name":"bytes","nodeType":"ElementaryTypeName","src":"548:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"514:57:14"},"returnParameters":{"id":3679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3676,"mutability":"mutable","name":"success","nameLocation":"613:7:14","nodeType":"VariableDeclaration","scope":3700,"src":"608:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3675,"name":"bool","nodeType":"ElementaryTypeName","src":"608:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3678,"mutability":"mutable","name":"response","nameLocation":"635:8:14","nodeType":"VariableDeclaration","scope":3700,"src":"622:21:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3677,"name":"bytes","nodeType":"ElementaryTypeName","src":"622:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"607:37:14"},"scope":3756,"src":"495:274:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":3730,"nodeType":"Block","src":"919:109:14","statements":[{"expression":{"arguments":[{"hexValue":"717565726965642829","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"941:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6b676a21b1e38ae2b96d4578c9ad9968fa16442c69ee030e1ee1503f28bc5ff","typeString":"literal_string \"queried()\""},"value":"queried()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f6b676a21b1e38ae2b96d4578c9ad9968fa16442c69ee030e1ee1503f28bc5ff","typeString":"literal_string \"queried()\""}],"expression":{"id":3713,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"929:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"937:3:14","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"929:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:24:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3718,"nodeType":"ExpressionStatement","src":"929:24:14"},{"expression":{"id":3728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3719,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"964:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3720,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3711,"src":"973:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3721,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"963:19:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3726,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3704,"src":"1016:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3722,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"985:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"992:10:14","memberName":"staticcall","nodeType":"MemberAccess","src":"985:17:14","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"313030303030","id":3724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1008:6:14","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"src":"985:30:14","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"963:58:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3729,"nodeType":"ExpressionStatement","src":"963:58:14"}]},"functionSelector":"82dcc731","id":3731,"implemented":true,"kind":"function","modifiers":[{"id":3707,"kind":"modifierInvocation","modifierName":{"id":3706,"name":"onlyRelayer","nameLocations":["861:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"861:11:14"},"nodeType":"ModifierInvocation","src":"861:11:14"}],"name":"queried","nameLocation":"784:7:14","nodeType":"FunctionDefinition","parameters":{"id":3705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3702,"mutability":"mutable","name":"target","nameLocation":"809:6:14","nodeType":"VariableDeclaration","scope":3731,"src":"801:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3701,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3704,"mutability":"mutable","name":"call","nameLocation":"838:4:14","nodeType":"VariableDeclaration","scope":3731,"src":"825:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3703,"name":"bytes","nodeType":"ElementaryTypeName","src":"825:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"791:57:14"},"returnParameters":{"id":3712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3709,"mutability":"mutable","name":"success","nameLocation":"887:7:14","nodeType":"VariableDeclaration","scope":3731,"src":"882:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3708,"name":"bool","nodeType":"ElementaryTypeName","src":"882:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3711,"mutability":"mutable","name":"response","nameLocation":"909:8:14","nodeType":"VariableDeclaration","scope":3731,"src":"896:21:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3710,"name":"bytes","nodeType":"ElementaryTypeName","src":"896:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"881:37:14"},"scope":3756,"src":"775:253:14","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3754,"nodeType":"Block","src":"1184:73:14","statements":[{"expression":{"id":3752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3744,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"1194:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3747,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"1217:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3748,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1225:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3749,"name":"readonly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3737,"src":"1231:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3750,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3739,"src":"1241:8:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3745,"name":"_relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"1202:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1211:5:14","memberName":"relay","nodeType":"MemberAccess","referencedDeclaration":4178,"src":"1202:14:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) external returns (uint256)"}},"id":3751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:48:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1194:56:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3753,"nodeType":"ExpressionStatement","src":"1194:56:14"}]},"id":3755,"implemented":true,"kind":"function","modifiers":[],"name":"relay","nameLocation":"1043:5:14","nodeType":"FunctionDefinition","parameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3733,"mutability":"mutable","name":"target","nameLocation":"1066:6:14","nodeType":"VariableDeclaration","scope":3755,"src":"1058:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3732,"name":"address","nodeType":"ElementaryTypeName","src":"1058:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3735,"mutability":"mutable","name":"call","nameLocation":"1095:4:14","nodeType":"VariableDeclaration","scope":3755,"src":"1082:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3734,"name":"bytes","nodeType":"ElementaryTypeName","src":"1082:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3737,"mutability":"mutable","name":"readonly","nameLocation":"1114:8:14","nodeType":"VariableDeclaration","scope":3755,"src":"1109:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3736,"name":"bool","nodeType":"ElementaryTypeName","src":"1109:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3739,"mutability":"mutable","name":"callback","nameLocation":"1139:8:14","nodeType":"VariableDeclaration","scope":3755,"src":"1132:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3738,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1132:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1048:105:14"},"returnParameters":{"id":3743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"nonce","nameLocation":"1177:5:14","nodeType":"VariableDeclaration","scope":3755,"src":"1172:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3741,"name":"uint","nodeType":"ElementaryTypeName","src":"1172:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1171:12:14"},"scope":3756,"src":"1034:223:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3757,"src":"192:1067:14","usedErrors":[153,156],"usedEvents":[161]}],"src":"46:1214:14"},"id":14},"contracts/Collector.sol":{"ast":{"absolutePath":"contracts/Collector.sol","exportedSymbols":{"Collector":[3802],"ECDSA":[1783],"EnumerableSet":[3629],"MessageHashUtils":[1857],"Strings":[1435],"ValidatorManager":[4775]},"id":3803,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3758,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:15"},{"absolutePath":"contracts/ValidatorManager.sol","file":"./ValidatorManager.sol","id":3759,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3803,"sourceUnit":4776,"src":"72:32:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Collector","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3802,"linearizedBaseContracts":[3802],"name":"Collector","nameLocation":"115:9:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3762,"mutability":"mutable","name":"validatorManager","nameLocation":"156:16:15","nodeType":"VariableDeclaration","scope":3802,"src":"131:41:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":3761,"nodeType":"UserDefinedTypeName","pathNode":{"id":3760,"name":"ValidatorManager","nameLocations":["131:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"131:16:15"},"referencedDeclaration":4775,"src":"131:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"private"},{"anonymous":false,"eventSelector":"84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e0","id":3768,"name":"Echoed","nameLocation":"184:6:15","nodeType":"EventDefinition","parameters":{"id":3767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3764,"indexed":true,"mutability":"mutable","name":"hash","nameLocation":"207:4:15","nodeType":"VariableDeclaration","scope":3768,"src":"191:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3766,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"219:9:15","nodeType":"VariableDeclaration","scope":3768,"src":"213:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3765,"name":"bytes","nodeType":"ElementaryTypeName","src":"213:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"190:39:15"},"src":"178:52:15"},{"body":{"id":3778,"nodeType":"Block","src":"284:53:15","statements":[{"expression":{"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3774,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"294:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3775,"name":"_validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3771,"src":"313:17:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"src":"294:36:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":3777,"nodeType":"ExpressionStatement","src":"294:36:15"}]},"id":3779,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3771,"mutability":"mutable","name":"_validatorManager","nameLocation":"265:17:15","nodeType":"VariableDeclaration","scope":3779,"src":"248:34:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":3770,"nodeType":"UserDefinedTypeName","pathNode":{"id":3769,"name":"ValidatorManager","nameLocations":["248:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"248:16:15"},"referencedDeclaration":4775,"src":"248:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"internal"}],"src":"247:36:15"},"returnParameters":{"id":3773,"nodeType":"ParameterList","parameters":[],"src":"284:0:15"},"scope":3802,"src":"236:101:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3800,"nodeType":"Block","src":"402:168:15","statements":[{"expression":{"arguments":[{"arguments":[{"id":3789,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"468:4:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3790,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"474:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3787,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"433:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"450:17:15","memberName":"validateSignature","nodeType":"MemberAccess","referencedDeclaration":4774,"src":"433:34:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes32,bytes memory) view external returns (bool)"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"433:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"57726f6e672076616c696461746f72","id":3792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"498:17:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945","typeString":"literal_string \"Wrong validator\""},"value":"Wrong validator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945","typeString":"literal_string \"Wrong validator\""}],"id":3786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"412:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"412:113:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3794,"nodeType":"ExpressionStatement","src":"412:113:15"},{"eventCall":{"arguments":[{"id":3796,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"547:4:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3797,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"553:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3795,"name":"Echoed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"540:6:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory)"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"540:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3799,"nodeType":"EmitStatement","src":"535:28:15"}]},"functionSelector":"274b9f10","id":3801,"implemented":true,"kind":"function","modifiers":[],"name":"echo","nameLocation":"352:4:15","nodeType":"FunctionDefinition","parameters":{"id":3784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3781,"mutability":"mutable","name":"hash","nameLocation":"365:4:15","nodeType":"VariableDeclaration","scope":3801,"src":"357:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"357:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3783,"mutability":"mutable","name":"signature","nameLocation":"384:9:15","nodeType":"VariableDeclaration","scope":3801,"src":"371:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3782,"name":"bytes","nodeType":"ElementaryTypeName","src":"371:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"356:38:15"},"returnParameters":{"id":3785,"nodeType":"ParameterList","parameters":[],"src":"402:0:15"},"scope":3802,"src":"343:227:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":3803,"src":"106:466:15","usedErrors":[],"usedEvents":[3768]}],"src":"46:527:15"},"id":15},"contracts/ERC20Bridge.sol":{"ast":{"absolutePath":"contracts/ERC20Bridge.sol","exportedSymbols":{"Bridged":[3756],"BridgedERC20":[3880],"Context":[1077],"Create2":[1180],"ECDSA":[1783],"ERC20":[905],"ERC20Bridge":[4046],"ERC20Burnable":[1029],"EnumerableSet":[3629],"IERC20":[983],"IERC20Errors":[41],"IERC20Metadata":[1055],"Initializable":[390],"MessageHashUtils":[1857],"MyToken":[3894],"Relayer":[4434],"Strings":[1435],"ValidatorManager":[4775],"console":[12860]},"id":4047,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":3804,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"39:24:16"},{"absolutePath":"contracts/Bridged.sol","file":"./Bridged.sol","id":3805,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4047,"sourceUnit":3757,"src":"65:23:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":3806,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4047,"sourceUnit":906,"src":"90:55:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":3807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4047,"sourceUnit":1030,"src":"146:74:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3808,"name":"ERC20","nameLocations":["247:5:16"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"247:5:16"},"id":3809,"nodeType":"InheritanceSpecifier","src":"247:5:16"},{"baseName":{"id":3810,"name":"ERC20Burnable","nameLocations":["254:13:16"],"nodeType":"IdentifierPath","referencedDeclaration":1029,"src":"254:13:16"},"id":3811,"nodeType":"InheritanceSpecifier","src":"254:13:16"}],"canonicalName":"BridgedERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3880,"linearizedBaseContracts":[3880,1029,905,41,1055,983,1077],"name":"BridgedERC20","nameLocation":"231:12:16","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3813,"mutability":"mutable","name":"_bridge","nameLocation":"282:7:16","nodeType":"VariableDeclaration","scope":3880,"src":"274:15:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3812,"name":"address","nodeType":"ElementaryTypeName","src":"274:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":3836,"nodeType":"Block","src":"421:67:16","statements":[{"expression":{"id":3828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3826,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"431:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3827,"name":"bridge_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"441:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"431:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3829,"nodeType":"ExpressionStatement","src":"431:17:16"},{"expression":{"arguments":[{"expression":{"id":3831,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"464:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:16","memberName":"sender","nodeType":"MemberAccess","src":"464:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31303030","id":3833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"476:4:16","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":3830,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"458:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3835,"nodeType":"ExpressionStatement","src":"458:23:16"}]},"id":3837,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3822,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"405:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3823,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"412:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3824,"kind":"baseConstructorSpecifier","modifierName":{"id":3821,"name":"ERC20","nameLocations":["399:5:16"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"399:5:16"},"nodeType":"ModifierInvocation","src":"399:21:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3815,"mutability":"mutable","name":"name_","nameLocation":"331:5:16","nodeType":"VariableDeclaration","scope":3837,"src":"317:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3814,"name":"string","nodeType":"ElementaryTypeName","src":"317:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3817,"mutability":"mutable","name":"symbol_","nameLocation":"360:7:16","nodeType":"VariableDeclaration","scope":3837,"src":"346:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3816,"name":"string","nodeType":"ElementaryTypeName","src":"346:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3819,"mutability":"mutable","name":"bridge_","nameLocation":"385:7:16","nodeType":"VariableDeclaration","scope":3837,"src":"377:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3818,"name":"address","nodeType":"ElementaryTypeName","src":"377:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"307:91:16"},"returnParameters":{"id":3825,"nodeType":"ParameterList","parameters":[],"src":"421:0:16"},"scope":3880,"src":"296:192:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3848,"nodeType":"Block","src":"516:76:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3840,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"534:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"538:6:16","memberName":"sender","nodeType":"MemberAccess","src":"534:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3842,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"548:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"534:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f742074686520627269646765","id":3844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"557:16:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3","typeString":"literal_string \"Not the bridge\""},"value":"Not the bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3","typeString":"literal_string \"Not the bridge\""}],"id":3839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"526:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:48:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3846,"nodeType":"ExpressionStatement","src":"526:48:16"},{"id":3847,"nodeType":"PlaceholderStatement","src":"584:1:16"}]},"id":3849,"name":"onlyBridge","nameLocation":"503:10:16","nodeType":"ModifierDefinition","parameters":{"id":3838,"nodeType":"ParameterList","parameters":[],"src":"513:2:16"},"src":"494:98:16","virtual":false,"visibility":"internal"},{"body":{"id":3863,"nodeType":"Block","src":"658:34:16","statements":[{"expression":{"arguments":[{"id":3859,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"674:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"678:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3858,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"668:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"668:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3862,"nodeType":"ExpressionStatement","src":"668:17:16"}]},"functionSelector":"40c10f19","id":3864,"implemented":true,"kind":"function","modifiers":[{"id":3856,"kind":"modifierInvocation","modifierName":{"id":3855,"name":"onlyBridge","nameLocations":["647:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":3849,"src":"647:10:16"},"nodeType":"ModifierInvocation","src":"647:10:16"}],"name":"mint","nameLocation":"607:4:16","nodeType":"FunctionDefinition","parameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3851,"mutability":"mutable","name":"to","nameLocation":"620:2:16","nodeType":"VariableDeclaration","scope":3864,"src":"612:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3850,"name":"address","nodeType":"ElementaryTypeName","src":"612:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3853,"mutability":"mutable","name":"amount","nameLocation":"632:6:16","nodeType":"VariableDeclaration","scope":3864,"src":"624:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3852,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"611:28:16"},"returnParameters":{"id":3857,"nodeType":"ParameterList","parameters":[],"src":"658:0:16"},"scope":3880,"src":"598:94:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3878,"nodeType":"Block","src":"760:39:16","statements":[{"expression":{"arguments":[{"id":3874,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"779:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3875,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"785:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3873,"name":"burnFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"770:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"770:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3877,"nodeType":"ExpressionStatement","src":"770:22:16"}]},"functionSelector":"9dc29fac","id":3879,"implemented":true,"kind":"function","modifiers":[{"id":3871,"kind":"modifierInvocation","modifierName":{"id":3870,"name":"onlyBridge","nameLocations":["749:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":3849,"src":"749:10:16"},"nodeType":"ModifierInvocation","src":"749:10:16"}],"name":"burn","nameLocation":"707:4:16","nodeType":"FunctionDefinition","parameters":{"id":3869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3866,"mutability":"mutable","name":"from","nameLocation":"720:4:16","nodeType":"VariableDeclaration","scope":3879,"src":"712:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3865,"name":"address","nodeType":"ElementaryTypeName","src":"712:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3868,"mutability":"mutable","name":"amount","nameLocation":"734:6:16","nodeType":"VariableDeclaration","scope":3879,"src":"726:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3867,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"711:30:16"},"returnParameters":{"id":3872,"nodeType":"ParameterList","parameters":[],"src":"760:0:16"},"scope":3880,"src":"698:101:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4047,"src":"222:579:16","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]},{"abstract":false,"baseContracts":[{"baseName":{"id":3881,"name":"BridgedERC20","nameLocations":["823:12:16"],"nodeType":"IdentifierPath","referencedDeclaration":3880,"src":"823:12:16"},"id":3882,"nodeType":"InheritanceSpecifier","src":"823:12:16"}],"canonicalName":"MyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3894,"linearizedBaseContracts":[3894,3880,1029,905,41,1055,983,1077],"name":"MyToken","nameLocation":"812:7:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3892,"nodeType":"Block","src":"911:2:16","statements":[]},"id":3893,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d79546f6b656e","id":3887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"884:9:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_245c734e6d4ec044daf7beffa09d54d4bafba490113c199734d790b04a7390e5","typeString":"literal_string \"MyToken\""},"value":"MyToken"},{"hexValue":"4d544b","id":3888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"895:5:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_793539e36336d70961c91bdb898dff4b065dbb5ef5ac709025f5b68be91dd01e","typeString":"literal_string \"MTK\""},"value":"MTK"},{"id":3889,"name":"bridge_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"902:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3890,"kind":"baseConstructorSpecifier","modifierName":{"id":3886,"name":"BridgedERC20","nameLocations":["871:12:16"],"nodeType":"IdentifierPath","referencedDeclaration":3880,"src":"871:12:16"},"nodeType":"ModifierInvocation","src":"871:39:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3884,"mutability":"mutable","name":"bridge_","nameLocation":"862:7:16","nodeType":"VariableDeclaration","scope":3893,"src":"854:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3883,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"853:17:16"},"returnParameters":{"id":3891,"nodeType":"ParameterList","parameters":[],"src":"911:0:16"},"scope":3894,"src":"842:71:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4047,"src":"803:112:16","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]},{"abstract":false,"baseContracts":[{"baseName":{"id":3895,"name":"Bridged","nameLocations":["941:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":3756,"src":"941:7:16"},"id":3896,"nodeType":"InheritanceSpecifier","src":"941:7:16"}],"canonicalName":"ERC20Bridge","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4046,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[4046,3756,390],"name":"ERC20Bridge","nameLocation":"926:11:16","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"f9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da5408320","id":3904,"name":"Started","nameLocation":"961:7:16","nodeType":"EventDefinition","parameters":{"id":3903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3898,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"969:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3897,"name":"address","nodeType":"ElementaryTypeName","src":"969:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3900,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"978:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3899,"name":"address","nodeType":"ElementaryTypeName","src":"978:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3902,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"987:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3901,"name":"uint","nodeType":"ElementaryTypeName","src":"987:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:24:16"},"src":"955:38:16"},{"body":{"id":3949,"nodeType":"Block","src":"1115:297:16","statements":[{"expression":{"arguments":[{"id":3919,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1153:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":3922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1168:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}],"id":3921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1160:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3920,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:16","typeDescriptions":{}}},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1160:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3924,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1175:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3916,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"1133:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3915,"name":"MyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"1125:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MyToken_$3894_$","typeString":"type(contract MyToken)"}},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MyToken_$3894","typeString":"contract MyToken"}},"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1140:12:16","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":588,"src":"1125:27:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":3925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:56:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3926,"nodeType":"ExpressionStatement","src":"1125:56:16"},{"expression":{"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3927,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"1191:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3929,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"1218:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6d696e7428616464726573732c75696e7432353629","id":3932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1261:23:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842","typeString":"literal_string \"mint(address,uint256)\""},"value":"mint(address,uint256)"},{"id":3933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1286:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1293:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842","typeString":"literal_string \"mint(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1237:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1241:19:16","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1237:23:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":3936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1313:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"expression":{"expression":{"id":3937,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1332:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}},"id":3938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1337:6:16","memberName":"finish","nodeType":"MemberAccess","referencedDeclaration":4045,"src":"1332:11:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bool,bytes memory,uint256) external"}},"id":3939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1344:8:16","memberName":"selector","nodeType":"MemberAccess","src":"1332:20:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3928,"name":"relay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"1199:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) returns (uint256)"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1199:163:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1191:171:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3942,"nodeType":"ExpressionStatement","src":"1191:171:16"},{"eventCall":{"arguments":[{"id":3944,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"1385:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3945,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1392:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1399:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3943,"name":"Started","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"1377:7:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3948,"nodeType":"EmitStatement","src":"1372:33:16"}]},"functionSelector":"87121759","id":3950,"implemented":true,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"1008:6:16","nodeType":"FunctionDefinition","parameters":{"id":3911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3906,"mutability":"mutable","name":"token","nameLocation":"1032:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1024:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3905,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3908,"mutability":"mutable","name":"owner","nameLocation":"1055:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1047:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3907,"name":"address","nodeType":"ElementaryTypeName","src":"1047:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3910,"mutability":"mutable","name":"value","nameLocation":"1075:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1070:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3909,"name":"uint","nodeType":"ElementaryTypeName","src":"1070:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:72:16"},"returnParameters":{"id":3914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3913,"mutability":"mutable","name":"nonce","nameLocation":"1108:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1103:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3912,"name":"uint","nodeType":"ElementaryTypeName","src":"1103:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1102:12:16"},"scope":4046,"src":"999:413:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3991,"nodeType":"Block","src":"1532:278:16","statements":[{"expression":{"arguments":[{"id":3965,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"1562:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3966,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3956,"src":"1569:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3962,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1550:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3961,"name":"MyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"1542:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MyToken_$3894_$","typeString":"type(contract MyToken)"}},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1542:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MyToken_$3894","typeString":"contract MyToken"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1557:4:16","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":3879,"src":"1542:19:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1542:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3968,"nodeType":"ExpressionStatement","src":"1542:33:16"},{"expression":{"id":3983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3969,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"1585:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3971,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1612:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"7472616e7366657228616464726573732c75696e7432353629","id":3974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1655:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""},"value":"transfer(address,uint256)"},{"id":3975,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"1684:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3956,"src":"1691:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1631:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1635:19:16","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1631:23:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1631:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":3978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1711:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"expression":{"expression":{"id":3979,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1730:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}},"id":3980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1735:6:16","memberName":"finish","nodeType":"MemberAccess","referencedDeclaration":4045,"src":"1730:11:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bool,bytes memory,uint256) external"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1742:8:16","memberName":"selector","nodeType":"MemberAccess","src":"1730:20:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3970,"name":"relay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"1593:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) returns (uint256)"}},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:167:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1585:175:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3984,"nodeType":"ExpressionStatement","src":"1585:175:16"},{"eventCall":{"arguments":[{"id":3986,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1783:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3987,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"1790:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3988,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3956,"src":"1797:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3985,"name":"Started","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"1775:7:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1775:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3990,"nodeType":"EmitStatement","src":"1770:33:16"}]},"functionSelector":"71006c09","id":3992,"implemented":true,"kind":"function","modifiers":[],"name":"exit","nameLocation":"1427:4:16","nodeType":"FunctionDefinition","parameters":{"id":3957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3952,"mutability":"mutable","name":"token","nameLocation":"1449:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1441:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3951,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3954,"mutability":"mutable","name":"owner","nameLocation":"1472:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1464:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3953,"name":"address","nodeType":"ElementaryTypeName","src":"1464:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3956,"mutability":"mutable","name":"value","nameLocation":"1492:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1487:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3955,"name":"uint","nodeType":"ElementaryTypeName","src":"1487:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1431:72:16"},"returnParameters":{"id":3960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3959,"mutability":"mutable","name":"nonce","nameLocation":"1525:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1520:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3958,"name":"uint","nodeType":"ElementaryTypeName","src":"1520:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1519:12:16"},"scope":4046,"src":"1418:392:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c","id":3994,"name":"Succeeded","nameLocation":"1822:9:16","nodeType":"EventDefinition","parameters":{"id":3993,"nodeType":"ParameterList","parameters":[],"src":"1831:2:16"},"src":"1816:18:16"},{"anonymous":false,"eventSelector":"c65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51","id":3998,"name":"Failed","nameLocation":"1845:6:16","nodeType":"EventDefinition","parameters":{"id":3997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3996,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3998,"src":"1852:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3995,"name":"string","nodeType":"ElementaryTypeName","src":"1852:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1851:8:16"},"src":"1839:21:16"},{"body":{"id":4044,"nodeType":"Block","src":"1977:228:16","statements":[{"condition":{"id":4009,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"1991:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4042,"nodeType":"Block","src":"2047:152:16","statements":[{"assignments":[4015],"declarations":[{"constant":false,"id":4015,"mutability":"mutable","name":"sig","nameLocation":"2068:3:16","nodeType":"VariableDeclaration","scope":4042,"src":"2061:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4014,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2061:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":4022,"initialValue":{"arguments":[{"baseExpression":{"id":4018,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"2081:3:16","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":4019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2086:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2081:7:16","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2074:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4016,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2074:6:16","typeDescriptions":{}}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2074:15:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"2061:28:16"},{"assignments":[4024],"declarations":[{"constant":false,"id":4024,"mutability":"mutable","name":"err","nameLocation":"2116:3:16","nodeType":"VariableDeclaration","scope":4042,"src":"2103:16:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4023,"name":"bytes","nodeType":"ElementaryTypeName","src":"2103:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4031,"initialValue":{"arguments":[{"baseExpression":{"id":4027,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"2128:3:16","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2128:7:16","startExpression":{"hexValue":"34","id":4028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2122:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4025,"name":"bytes","nodeType":"ElementaryTypeName","src":"2122:5:16","typeDescriptions":{}}},"id":4030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"2103:33:16"},{"eventCall":{"arguments":[{"arguments":[{"id":4035,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"2173:3:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2179:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4036,"name":"string","nodeType":"ElementaryTypeName","src":"2179:6:16","typeDescriptions":{}}}],"id":4038,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2178:8:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":4033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2162:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2166:6:16","memberName":"decode","nodeType":"MemberAccess","src":"2162:10:16","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4032,"name":"Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"2155:6:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2155:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4041,"nodeType":"EmitStatement","src":"2150:38:16"}]},"id":4043,"nodeType":"IfStatement","src":"1987:212:16","trueBody":{"id":4013,"nodeType":"Block","src":"2000:41:16","statements":[{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4010,"name":"Succeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"2019:9:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4012,"nodeType":"EmitStatement","src":"2014:16:16"}]}}]},"functionSelector":"b2c642d1","id":4045,"implemented":true,"kind":"function","modifiers":[{"id":4007,"kind":"modifierInvocation","modifierName":{"id":4006,"name":"onlyRelayer","nameLocations":["1965:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"1965:11:16"},"nodeType":"ModifierInvocation","src":"1965:11:16"}],"name":"finish","nameLocation":"1875:6:16","nodeType":"FunctionDefinition","parameters":{"id":4005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"mutability":"mutable","name":"success","nameLocation":"1896:7:16","nodeType":"VariableDeclaration","scope":4045,"src":"1891:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3999,"name":"bool","nodeType":"ElementaryTypeName","src":"1891:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"res","nameLocation":"1928:3:16","nodeType":"VariableDeclaration","scope":4045,"src":"1913:18:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1913:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"nonce","nameLocation":"1946:5:16","nodeType":"VariableDeclaration","scope":4045,"src":"1941:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4003,"name":"uint","nodeType":"ElementaryTypeName","src":"1941:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1881:76:16"},"returnParameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"1977:0:16"},"scope":4046,"src":"1866:339:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4047,"src":"917:1290:16","usedErrors":[153,156],"usedEvents":[161,3904,3994,3998]}],"src":"39:2169:16"},"id":16},"contracts/Relayer.sol":{"ast":{"absolutePath":"contracts/Relayer.sol","exportedSymbols":{"Bridged":[3756],"Create2":[1180],"ECDSA":[1783],"EnumerableSet":[3629],"MessageHashUtils":[1857],"Relayer":[4434],"Strings":[1435],"ValidatorManager":[4775],"console":[12860]},"id":4435,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4048,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:17"},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":4049,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":12861,"src":"72:29:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":4050,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":1784,"src":"103:62:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","id":4051,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":1858,"src":"166:73:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","file":"@openzeppelin/contracts/utils/Create2.sol","id":4052,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":1181,"src":"240:51:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/ValidatorManager.sol","file":"./ValidatorManager.sol","id":4053,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":4776,"src":"292:32:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Bridged.sol","file":"./Bridged.sol","id":4054,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":3757,"src":"325:23:17","symbolAliases":[],"unitAlias":""},{"global":false,"id":4057,"libraryName":{"id":4055,"name":"ECDSA","nameLocations":["356:5:17"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"356:5:17"},"nodeType":"UsingForDirective","src":"350:24:17","typeName":{"id":4056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":4060,"libraryName":{"id":4058,"name":"MessageHashUtils","nameLocations":["381:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":1857,"src":"381:16:17"},"nodeType":"UsingForDirective","src":"375:33:17","typeName":{"id":4059,"name":"bytes","nodeType":"ElementaryTypeName","src":"402:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"abstract":false,"baseContracts":[],"canonicalName":"Relayer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4434,"linearizedBaseContracts":[4434],"name":"Relayer","nameLocation":"419:7:17","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4063,"mutability":"mutable","name":"validatorManager","nameLocation":"458:16:17","nodeType":"VariableDeclaration","scope":4434,"src":"433:41:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":4062,"nodeType":"UserDefinedTypeName","pathNode":{"id":4061,"name":"ValidatorManager","nameLocations":["433:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"433:16:17"},"referencedDeclaration":4775,"src":"433:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"private"},{"anonymous":false,"eventSelector":"0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc9","id":4067,"name":"TwinDeployment","nameLocation":"487:14:17","nodeType":"EventDefinition","parameters":{"id":4066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4065,"indexed":true,"mutability":"mutable","name":"twin","nameLocation":"518:4:17","nodeType":"VariableDeclaration","scope":4067,"src":"502:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4064,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"501:22:17"},"src":"481:43:17"},{"body":{"id":4098,"nodeType":"Block","src":"636:205:17","statements":[{"assignments":[4077],"declarations":[{"constant":false,"id":4077,"mutability":"mutable","name":"bridgedContract","nameLocation":"654:15:17","nodeType":"VariableDeclaration","scope":4098,"src":"646:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4076,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4084,"initialValue":{"arguments":[{"hexValue":"30","id":4080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"687:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4081,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"690:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4082,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4071,"src":"696:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4078,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"672:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Create2_$1180_$","typeString":"type(library Create2)"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"680:6:17","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":1145,"src":"672:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,bytes32,bytes memory) returns (address)"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"672:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"646:59:17"},{"expression":{"arguments":[{"id":4089,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"751:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}],"expression":{"arguments":[{"id":4086,"name":"bridgedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"723:15:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4085,"name":"Bridged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"715:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Bridged_$3756_$","typeString":"type(contract Bridged)"}},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Bridged_$3756","typeString":"contract Bridged"}},"id":4088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"740:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":3652,"src":"715:35:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Relayer_$4434_$returns$__$","typeString":"function (contract Relayer) external"}},"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:41:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4091,"nodeType":"ExpressionStatement","src":"715:41:17"},{"eventCall":{"arguments":[{"id":4093,"name":"bridgedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"786:15:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4092,"name":"TwinDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4067,"src":"771:14:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"771:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4095,"nodeType":"EmitStatement","src":"766:36:17"},{"expression":{"id":4096,"name":"bridgedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"819:15:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4075,"id":4097,"nodeType":"Return","src":"812:22:17"}]},"functionSelector":"5390e474","id":4099,"implemented":true,"kind":"function","modifiers":[],"name":"deployTwin","nameLocation":"539:10:17","nodeType":"FunctionDefinition","parameters":{"id":4072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4069,"mutability":"mutable","name":"salt","nameLocation":"567:4:17","nodeType":"VariableDeclaration","scope":4099,"src":"559:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"559:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4071,"mutability":"mutable","name":"bytecode","nameLocation":"596:8:17","nodeType":"VariableDeclaration","scope":4099,"src":"581:23:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4070,"name":"bytes","nodeType":"ElementaryTypeName","src":"581:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"549:61:17"},"returnParameters":{"id":4075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4099,"src":"627:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4073,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"626:9:17"},"scope":4434,"src":"530:311:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4109,"nodeType":"Block","src":"895:53:17","statements":[{"expression":{"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4105,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"905:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4106,"name":"_validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4102,"src":"924:17:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"src":"905:36:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":4108,"nodeType":"ExpressionStatement","src":"905:36:17"}]},"id":4110,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4102,"mutability":"mutable","name":"_validatorManager","nameLocation":"876:17:17","nodeType":"VariableDeclaration","scope":4110,"src":"859:34:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":4101,"nodeType":"UserDefinedTypeName","pathNode":{"id":4100,"name":"ValidatorManager","nameLocations":["859:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"859:16:17"},"referencedDeclaration":4775,"src":"859:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"internal"}],"src":"858:36:17"},"returnParameters":{"id":4104,"nodeType":"ParameterList","parameters":[],"src":"895:0:17"},"scope":4434,"src":"847:101:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"constant":false,"id":4114,"mutability":"mutable","name":"nonces","nameLocation":"979:6:17","nodeType":"VariableDeclaration","scope":4434,"src":"954:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4113,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4111,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"954:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4112,"name":"uint","nodeType":"ElementaryTypeName","src":"973:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":4120,"mutability":"mutable","name":"dispatched","nameLocation":"1033:10:17","nodeType":"VariableDeclaration","scope":4434,"src":"991:52:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"typeName":{"id":4119,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4115,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"991:41:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4118,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4116,"name":"uint","nodeType":"ElementaryTypeName","src":"1018:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1010:21:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4117,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"constant":false,"id":4126,"mutability":"mutable","name":"resumed","nameLocation":"1091:7:17","nodeType":"VariableDeclaration","scope":4434,"src":"1049:49:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"typeName":{"id":4125,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4121,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1049:41:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4124,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4122,"name":"uint","nodeType":"ElementaryTypeName","src":"1076:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1068:21:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4123,"name":"bool","nodeType":"ElementaryTypeName","src":"1084:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"anonymous":false,"eventSelector":"7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e15","id":4140,"name":"Relayed","nameLocation":"1111:7:17","nodeType":"EventDefinition","parameters":{"id":4139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4128,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"1136:6:17","nodeType":"VariableDeclaration","scope":4140,"src":"1128:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4127,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4130,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"1160:6:17","nodeType":"VariableDeclaration","scope":4140,"src":"1152:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4129,"name":"address","nodeType":"ElementaryTypeName","src":"1152:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4132,"indexed":false,"mutability":"mutable","name":"call","nameLocation":"1182:4:17","nodeType":"VariableDeclaration","scope":4140,"src":"1176:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4131,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4134,"indexed":false,"mutability":"mutable","name":"readonly","nameLocation":"1201:8:17","nodeType":"VariableDeclaration","scope":4140,"src":"1196:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4133,"name":"bool","nodeType":"ElementaryTypeName","src":"1196:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4136,"indexed":false,"mutability":"mutable","name":"callback","nameLocation":"1226:8:17","nodeType":"VariableDeclaration","scope":4140,"src":"1219:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4135,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1219:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4138,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"1249:5:17","nodeType":"VariableDeclaration","scope":4140,"src":"1244:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4137,"name":"uint","nodeType":"ElementaryTypeName","src":"1244:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1118:142:17"},"src":"1105:156:17"},{"body":{"id":4177,"nodeType":"Block","src":"1409:242:17","statements":[{"eventCall":{"arguments":[{"expression":{"id":4154,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1445:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1449:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1445:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4156,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"1469:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4157,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"1489:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4158,"name":"readonly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1507:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4159,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"1529:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"baseExpression":{"id":4160,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1551:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4163,"indexExpression":{"expression":{"id":4161,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1558:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1562:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1558:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1551:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4153,"name":"Relayed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4140,"src":"1424:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (address,address,bytes memory,bool,bytes4,uint256)"}},"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1424:155:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4165,"nodeType":"EmitStatement","src":"1419:160:17"},{"expression":{"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1589:20:17","subExpression":{"baseExpression":{"id":4166,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1589:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4169,"indexExpression":{"expression":{"id":4167,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1596:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1600:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1596:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1589:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4171,"nodeType":"ExpressionStatement","src":"1589:20:17"},{"expression":{"baseExpression":{"id":4172,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1626:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4175,"indexExpression":{"expression":{"id":4173,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1633:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1637:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1633:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1626:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4152,"id":4176,"nodeType":"Return","src":"1619:25:17"}]},"functionSelector":"139b4a87","id":4178,"implemented":true,"kind":"function","modifiers":[],"name":"relay","nameLocation":"1276:5:17","nodeType":"FunctionDefinition","parameters":{"id":4149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4142,"mutability":"mutable","name":"target","nameLocation":"1299:6:17","nodeType":"VariableDeclaration","scope":4178,"src":"1291:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4141,"name":"address","nodeType":"ElementaryTypeName","src":"1291:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4144,"mutability":"mutable","name":"call","nameLocation":"1328:4:17","nodeType":"VariableDeclaration","scope":4178,"src":"1315:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4143,"name":"bytes","nodeType":"ElementaryTypeName","src":"1315:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4146,"mutability":"mutable","name":"readonly","nameLocation":"1347:8:17","nodeType":"VariableDeclaration","scope":4178,"src":"1342:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4145,"name":"bool","nodeType":"ElementaryTypeName","src":"1342:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4148,"mutability":"mutable","name":"callback","nameLocation":"1372:8:17","nodeType":"VariableDeclaration","scope":4178,"src":"1365:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4147,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1365:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1281:105:17"},"returnParameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4178,"src":"1403:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4150,"name":"uint","nodeType":"ElementaryTypeName","src":"1403:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:6:17"},"scope":4434,"src":"1267:384:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"f3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d72","id":4190,"name":"Dispatched","nameLocation":"1663:10:17","nodeType":"EventDefinition","parameters":{"id":4189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4180,"indexed":true,"mutability":"mutable","name":"caller","nameLocation":"1699:6:17","nodeType":"VariableDeclaration","scope":4190,"src":"1683:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4179,"name":"address","nodeType":"ElementaryTypeName","src":"1683:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4182,"indexed":false,"mutability":"mutable","name":"callback","nameLocation":"1722:8:17","nodeType":"VariableDeclaration","scope":4190,"src":"1715:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4181,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1715:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4184,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1745:7:17","nodeType":"VariableDeclaration","scope":4190,"src":"1740:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4183,"name":"bool","nodeType":"ElementaryTypeName","src":"1740:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4186,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"1768:8:17","nodeType":"VariableDeclaration","scope":4190,"src":"1762:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4185,"name":"bytes","nodeType":"ElementaryTypeName","src":"1762:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4188,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"1799:5:17","nodeType":"VariableDeclaration","scope":4190,"src":"1786:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4187,"name":"uint","nodeType":"ElementaryTypeName","src":"1786:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1673:137:17"},"src":"1657:154:17"},{"body":{"id":4222,"nodeType":"Block","src":"1933:330:17","statements":[{"assignments":[4199],"declarations":[{"constant":false,"id":4199,"mutability":"mutable","name":"hash","nameLocation":"1951:4:17","nodeType":"VariableDeclaration","scope":4222,"src":"1943:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1943:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4203,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4200,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4192,"src":"1958:14:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1973:22:17","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":1824,"src":"1958:37:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1958:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1943:54:17"},{"expression":{"arguments":[{"arguments":[{"id":4207,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4199,"src":"2070:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4208,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4195,"src":"2076:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":4205,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"2028:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2045:24:17","memberName":"validateUniqueSignatures","nodeType":"MemberAccess","referencedDeclaration":4736,"src":"2028:41:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes32,bytes memory[] memory) view external returns (bool)"}},"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2028:59:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207369676e617475726573","id":4210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2101:20:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e","typeString":"literal_string \"Invalid signatures\""},"value":"Invalid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e","typeString":"literal_string \"Invalid signatures\""}],"id":4204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2007:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2007:124:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4212,"nodeType":"ExpressionStatement","src":"2007:124:17"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":4216,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4195,"src":"2196:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2207:6:17","memberName":"length","nodeType":"MemberAccess","src":"2196:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4214,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"2162:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2179:16:17","memberName":"hasSupermajority","nodeType":"MemberAccess","referencedDeclaration":4753,"src":"2162:33:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":4218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:52:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f2073757065726d616a6f72697479","id":4219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2228:18:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0","typeString":"literal_string \"No supermajority\""},"value":"No supermajority"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0","typeString":"literal_string \"No supermajority\""}],"id":4213,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2141:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2141:115:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4221,"nodeType":"ExpressionStatement","src":"2141:115:17"}]},"id":4223,"implemented":true,"kind":"function","modifiers":[],"name":"validateRequest","nameLocation":"1826:15:17","nodeType":"FunctionDefinition","parameters":{"id":4196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4192,"mutability":"mutable","name":"encodedMessage","nameLocation":"1864:14:17","nodeType":"VariableDeclaration","scope":4223,"src":"1851:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4191,"name":"bytes","nodeType":"ElementaryTypeName","src":"1851:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4195,"mutability":"mutable","name":"signatures","nameLocation":"1903:10:17","nodeType":"VariableDeclaration","scope":4223,"src":"1888:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4193,"name":"bytes","nodeType":"ElementaryTypeName","src":"1888:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4194,"nodeType":"ArrayTypeName","src":"1888:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1841:78:17"},"returnParameters":{"id":4197,"nodeType":"ParameterList","parameters":[],"src":"1933:0:17"},"scope":4434,"src":"1817:446:17","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4303,"nodeType":"Block","src":"2455:584:17","statements":[{"expression":{"arguments":[{"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2473:26:17","subExpression":{"baseExpression":{"baseExpression":{"id":4240,"name":"dispatched","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"2474:10:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4242,"indexExpression":{"id":4241,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2485:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2474:18:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4244,"indexExpression":{"id":4243,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"2493:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2474:25:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c72656164792064697370617463686564","id":4246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2501:20:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719","typeString":"literal_string \"Already dispatched\""},"value":"Already dispatched"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719","typeString":"literal_string \"Already dispatched\""}],"id":4239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2465:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:57:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4248,"nodeType":"ExpressionStatement","src":"2465:57:17"},{"assignments":[4250],"declarations":[{"constant":false,"id":4250,"mutability":"mutable","name":"message","nameLocation":"2546:7:17","nodeType":"VariableDeclaration","scope":4303,"src":"2533:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4249,"name":"bytes","nodeType":"ElementaryTypeName","src":"2533:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4260,"initialValue":{"arguments":[{"id":4253,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2580:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4254,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2600:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4255,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"2620:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":4256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2638:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":4257,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"2657:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4258,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"2679:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2556:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2560:6:17","memberName":"encode","nodeType":"MemberAccess","src":"2556:10:17","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:138:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2533:161:17"},{"expression":{"arguments":[{"id":4262,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"2720:7:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4263,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"2729:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"id":4261,"name":"validateRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"2704:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory[] memory) view"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2704:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"2704:36:17"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4267,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2759:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2766:4:17","memberName":"code","nodeType":"MemberAccess","src":"2759:11:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:6:17","memberName":"length","nodeType":"MemberAccess","src":"2759:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2780:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2759:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206c656e677468","id":4272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2783:13:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""},"value":"code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""}],"id":4266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2751:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:46:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4274,"nodeType":"ExpressionStatement","src":"2751:46:17"},{"assignments":[4276,4278],"declarations":[{"constant":false,"id":4276,"mutability":"mutable","name":"success","nameLocation":"2813:7:17","nodeType":"VariableDeclaration","scope":4303,"src":"2808:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4275,"name":"bool","nodeType":"ElementaryTypeName","src":"2808:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4278,"mutability":"mutable","name":"response","nameLocation":"2835:8:17","nodeType":"VariableDeclaration","scope":4303,"src":"2822:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4277,"name":"bytes","nodeType":"ElementaryTypeName","src":"2822:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4286,"initialValue":{"arguments":[{"id":4283,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2887:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4284,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"2907:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4280,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2855:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4279,"name":"Bridged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"2847:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Bridged_$3756_$","typeString":"type(contract Bridged)"}},"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2847:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Bridged_$3756","typeString":"contract Bridged"}},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2863:10:17","memberName":"dispatched","nodeType":"MemberAccess","referencedDeclaration":3700,"src":"2847:26:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) payable external returns (bool,bytes memory)"}},"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2847:74:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2807:114:17"},{"eventCall":{"arguments":[{"id":4288,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2947:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4289,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"2955:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4290,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4276,"src":"2965:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4291,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"2974:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4292,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"2984:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4287,"name":"Dispatched","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4190,"src":"2936:10:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bool,bytes memory,uint256)"}},"id":4293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:54:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4294,"nodeType":"EmitStatement","src":"2931:59:17"},{"expression":{"id":4301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4295,"name":"dispatched","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"3000:10:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4298,"indexExpression":{"id":4296,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"3011:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3000:18:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4299,"indexExpression":{"id":4297,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"3019:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3000:25:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3028:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3000:32:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4302,"nodeType":"ExpressionStatement","src":"3000:32:17"}]},"functionSelector":"c1b2f734","id":4304,"implemented":true,"kind":"function","modifiers":[],"name":"dispatch","nameLocation":"2278:8:17","nodeType":"FunctionDefinition","parameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4225,"mutability":"mutable","name":"caller","nameLocation":"2304:6:17","nodeType":"VariableDeclaration","scope":4304,"src":"2296:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4224,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4227,"mutability":"mutable","name":"target","nameLocation":"2328:6:17","nodeType":"VariableDeclaration","scope":4304,"src":"2320:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4226,"name":"address","nodeType":"ElementaryTypeName","src":"2320:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4229,"mutability":"mutable","name":"call","nameLocation":"2357:4:17","nodeType":"VariableDeclaration","scope":4304,"src":"2344:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4228,"name":"bytes","nodeType":"ElementaryTypeName","src":"2344:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4231,"mutability":"mutable","name":"callback","nameLocation":"2378:8:17","nodeType":"VariableDeclaration","scope":4304,"src":"2371:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4230,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2371:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4233,"mutability":"mutable","name":"nonce","nameLocation":"2401:5:17","nodeType":"VariableDeclaration","scope":4304,"src":"2396:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4232,"name":"uint","nodeType":"ElementaryTypeName","src":"2396:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"signatures","nameLocation":"2431:10:17","nodeType":"VariableDeclaration","scope":4304,"src":"2416:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4234,"name":"bytes","nodeType":"ElementaryTypeName","src":"2416:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4235,"nodeType":"ArrayTypeName","src":"2416:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2286:161:17"},"returnParameters":{"id":4238,"nodeType":"ParameterList","parameters":[],"src":"2455:0:17"},"scope":4434,"src":"2269:770:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4338,"nodeType":"Block","src":"3199:132:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4318,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"3217:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3224:4:17","memberName":"code","nodeType":"MemberAccess","src":"3217:11:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3229:6:17","memberName":"length","nodeType":"MemberAccess","src":"3217:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3217:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206c656e677468","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3241:13:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""},"value":"code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""}],"id":4317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3209:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3209:46:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4325,"nodeType":"ExpressionStatement","src":"3209:46:17"},{"expression":{"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4326,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"3266:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4327,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"3275:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":4328,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3265:19:17","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4333,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4308,"src":"3311:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4334,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4310,"src":"3319:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4330,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"3295:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4329,"name":"Bridged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"3287:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Bridged_$3756_$","typeString":"type(contract Bridged)"}},"id":4331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Bridged_$3756","typeString":"contract Bridged"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3303:7:17","memberName":"queried","nodeType":"MemberAccess","referencedDeclaration":3731,"src":"3287:23:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) view external returns (bool,bytes memory)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"3265:59:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4337,"nodeType":"ExpressionStatement","src":"3265:59:17"}]},"functionSelector":"adde344c","id":4339,"implemented":true,"kind":"function","modifiers":[],"name":"query","nameLocation":"3054:5:17","nodeType":"FunctionDefinition","parameters":{"id":4311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4306,"mutability":"mutable","name":"caller","nameLocation":"3077:6:17","nodeType":"VariableDeclaration","scope":4339,"src":"3069:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4305,"name":"address","nodeType":"ElementaryTypeName","src":"3069:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4308,"mutability":"mutable","name":"target","nameLocation":"3101:6:17","nodeType":"VariableDeclaration","scope":4339,"src":"3093:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4307,"name":"address","nodeType":"ElementaryTypeName","src":"3093:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4310,"mutability":"mutable","name":"call","nameLocation":"3130:4:17","nodeType":"VariableDeclaration","scope":4339,"src":"3117:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4309,"name":"bytes","nodeType":"ElementaryTypeName","src":"3117:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3059:81:17"},"returnParameters":{"id":4316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4313,"mutability":"mutable","name":"success","nameLocation":"3167:7:17","nodeType":"VariableDeclaration","scope":4339,"src":"3162:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4312,"name":"bool","nodeType":"ElementaryTypeName","src":"3162:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4315,"mutability":"mutable","name":"response","nameLocation":"3189:8:17","nodeType":"VariableDeclaration","scope":4339,"src":"3176:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4314,"name":"bytes","nodeType":"ElementaryTypeName","src":"3176:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3161:37:17"},"scope":4434,"src":"3045:286:17","stateMutability":"view","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf13856","id":4351,"name":"Resumed","nameLocation":"3343:7:17","nodeType":"EventDefinition","parameters":{"id":4350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4341,"indexed":true,"mutability":"mutable","name":"caller","nameLocation":"3376:6:17","nodeType":"VariableDeclaration","scope":4351,"src":"3360:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4340,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4343,"indexed":false,"mutability":"mutable","name":"call","nameLocation":"3398:4:17","nodeType":"VariableDeclaration","scope":4351,"src":"3392:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4342,"name":"bytes","nodeType":"ElementaryTypeName","src":"3392:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4345,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"3417:7:17","nodeType":"VariableDeclaration","scope":4351,"src":"3412:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4344,"name":"bool","nodeType":"ElementaryTypeName","src":"3412:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4347,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"3440:8:17","nodeType":"VariableDeclaration","scope":4351,"src":"3434:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4346,"name":"bytes","nodeType":"ElementaryTypeName","src":"3434:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4349,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"3471:5:17","nodeType":"VariableDeclaration","scope":4351,"src":"3458:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4348,"name":"uint","nodeType":"ElementaryTypeName","src":"3458:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3350:132:17"},"src":"3337:146:17"},{"body":{"id":4432,"nodeType":"Block","src":"3754:656:17","statements":[{"expression":{"arguments":[{"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3772:23:17","subExpression":{"baseExpression":{"baseExpression":{"id":4368,"name":"resumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"3773:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4370,"indexExpression":{"id":4369,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"3781:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3773:15:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4372,"indexExpression":{"id":4371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"3789:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3773:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920726573756d6564","id":4374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3797:17:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a","typeString":"literal_string \"Already resumed\""},"value":"Already resumed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a","typeString":"literal_string \"Already resumed\""}],"id":4367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3764:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:51:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4376,"nodeType":"ExpressionStatement","src":"3764:51:17"},{"assignments":[4378],"declarations":[{"constant":false,"id":4378,"mutability":"mutable","name":"message","nameLocation":"3838:7:17","nodeType":"VariableDeclaration","scope":4432,"src":"3825:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4377,"name":"bytes","nodeType":"ElementaryTypeName","src":"3825:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4387,"initialValue":{"arguments":[{"id":4381,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"3872:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4382,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4355,"src":"3892:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4383,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"3914:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4384,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4359,"src":"3935:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4385,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"3957:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3848:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3852:6:17","memberName":"encode","nodeType":"MemberAccess","src":"3848:10:17","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:124:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3825:147:17"},{"expression":{"arguments":[{"id":4389,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"3998:7:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4390,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"4007:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"id":4388,"name":"validateRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"3982:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory[] memory) view"}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4392,"nodeType":"ExpressionStatement","src":"3982:36:17"},{"assignments":[4394],"declarations":[{"constant":false,"id":4394,"mutability":"mutable","name":"call","nameLocation":"4042:4:17","nodeType":"VariableDeclaration","scope":4432,"src":"4029:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4393,"name":"bytes","nodeType":"ElementaryTypeName","src":"4029:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4402,"initialValue":{"arguments":[{"id":4397,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4355,"src":"4085:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4398,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"4107:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4399,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4359,"src":"4128:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4400,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"4150:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4395,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4049:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4053:18:17","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4049:22:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:116:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4029:136:17"},{"assignments":[4404,4406],"declarations":[{"constant":false,"id":4404,"mutability":"mutable","name":"success2","nameLocation":"4181:8:17","nodeType":"VariableDeclaration","scope":4432,"src":"4176:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4403,"name":"bool","nodeType":"ElementaryTypeName","src":"4176:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4406,"mutability":"mutable","name":"response2","nameLocation":"4204:9:17","nodeType":"VariableDeclaration","scope":4432,"src":"4191:22:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4405,"name":"bytes","nodeType":"ElementaryTypeName","src":"4191:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4415,"initialValue":{"arguments":[{"id":4413,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"4294:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4407,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"4217:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4224:4:17","memberName":"call","nodeType":"MemberAccess","src":"4217:11:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value","gas"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":4409,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4249:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4253:5:17","memberName":"value","nodeType":"MemberAccess","src":"4249:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030303030","id":4411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4277:6:17","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"src":"4217:76:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4217:82:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4175:124:17"},{"eventCall":{"arguments":[{"id":4417,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"4323:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4418,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"4331:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4419,"name":"success2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"4337:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4420,"name":"response2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"4347:9:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4421,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"4358:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4416,"name":"Resumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"4315:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes memory,bool,bytes memory,uint256)"}},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:49:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4423,"nodeType":"EmitStatement","src":"4310:54:17"},{"expression":{"id":4430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4424,"name":"resumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"4374:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4427,"indexExpression":{"id":4425,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"4382:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4374:15:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4428,"indexExpression":{"id":4426,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"4390:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4374:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4399:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4374:29:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4431,"nodeType":"ExpressionStatement","src":"4374:29:17"}]},"functionSelector":"0b0a6bd1","id":4433,"implemented":true,"kind":"function","modifiers":[],"name":"resume","nameLocation":"3569:6:17","nodeType":"FunctionDefinition","parameters":{"id":4365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4353,"mutability":"mutable","name":"caller","nameLocation":"3593:6:17","nodeType":"VariableDeclaration","scope":4433,"src":"3585:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4352,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4355,"mutability":"mutable","name":"callback","nameLocation":"3616:8:17","nodeType":"VariableDeclaration","scope":4433,"src":"3609:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4354,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3609:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4357,"mutability":"mutable","name":"success","nameLocation":"3639:7:17","nodeType":"VariableDeclaration","scope":4433,"src":"3634:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4356,"name":"bool","nodeType":"ElementaryTypeName","src":"3634:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4359,"mutability":"mutable","name":"response","nameLocation":"3669:8:17","nodeType":"VariableDeclaration","scope":4433,"src":"3656:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4358,"name":"bytes","nodeType":"ElementaryTypeName","src":"3656:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4361,"mutability":"mutable","name":"nonce","nameLocation":"3692:5:17","nodeType":"VariableDeclaration","scope":4433,"src":"3687:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4360,"name":"uint","nodeType":"ElementaryTypeName","src":"3687:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4364,"mutability":"mutable","name":"signatures","nameLocation":"3722:10:17","nodeType":"VariableDeclaration","scope":4433,"src":"3707:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4362,"name":"bytes","nodeType":"ElementaryTypeName","src":"3707:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4363,"nodeType":"ArrayTypeName","src":"3707:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3575:163:17"},"returnParameters":{"id":4366,"nodeType":"ParameterList","parameters":[],"src":"3754:0:17"},"scope":4434,"src":"3560:850:17","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":4435,"src":"410:4002:17","usedErrors":[1087,1090,1093],"usedEvents":[4067,4140,4190,4351]}],"src":"46:4367:17"},"id":17},"contracts/Test.sol":{"ast":{"absolutePath":"contracts/Test.sol","exportedSymbols":{"Bridged":[3756],"Create2":[1180],"ECDSA":[1783],"EnumerableSet":[3629],"Initializable":[390],"MessageHashUtils":[1857],"Relayer":[4434],"Strings":[1435],"Target":[4571],"Twin":[4545],"ValidatorManager":[4775],"console":[12860]},"id":4572,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":4436,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"39:24:18"},{"absolutePath":"contracts/Bridged.sol","file":"./Bridged.sol","id":4437,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4572,"sourceUnit":3757,"src":"65:23:18","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4438,"name":"Bridged","nameLocations":["107:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":3756,"src":"107:7:18"},"id":4439,"nodeType":"InheritanceSpecifier","src":"107:7:18"}],"canonicalName":"Twin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4545,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[4545,3756,390],"name":"Twin","nameLocation":"99:4:18","nodeType":"ContractDefinition","nodes":[{"body":{"id":4470,"nodeType":"Block","src":"184:219:18","statements":[{"assignments":[4449],"declarations":[{"constant":false,"id":4449,"mutability":"mutable","name":"nonce","nameLocation":"199:5:18","nodeType":"VariableDeclaration","scope":4470,"src":"194:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4448,"name":"uint","nodeType":"ElementaryTypeName","src":"194:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4462,"initialValue":{"arguments":[{"id":4451,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"226:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"746573742875696e7432353629","id":4454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:15:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_29e99f07d14aa8d30a12fa0b0789b43183ba1bf6b4a72b95459a3e397cca10d7","typeString":"literal_string \"test(uint256)\""},"value":"test(uint256)"},{"id":4455,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4443,"src":"287:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_29e99f07d14aa8d30a12fa0b0789b43183ba1bf6b4a72b95459a3e397cca10d7","typeString":"literal_string \"test(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4452,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"246:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"250:19:18","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"246:23:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4457,"name":"readonly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"305:8:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":4458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"327:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_Twin_$4545","typeString":"contract Twin"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"332:6:18","memberName":"finish","nodeType":"MemberAccess","referencedDeclaration":4544,"src":"327:11:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bool,bytes memory,uint256) external"}},"id":4460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"339:8:18","memberName":"selector","nodeType":"MemberAccess","src":"327:20:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":4450,"name":"relay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"207:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) returns (uint256)"}},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207:150:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"194:163:18"},{"expression":{"arguments":[{"hexValue":"73746172742829","id":4466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"379:9:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7","typeString":"literal_string \"start()\""},"value":"start()"},{"id":4467,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4449,"src":"390:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7","typeString":"literal_string \"start()\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4463,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"367:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":4465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"375:3:18","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5504,"src":"367:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":4468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"367:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4469,"nodeType":"ExpressionStatement","src":"367:29:18"}]},"functionSelector":"c2ab4e3e","id":4471,"implemented":true,"kind":"function","modifiers":[],"name":"start","nameLocation":"130:5:18","nodeType":"FunctionDefinition","parameters":{"id":4446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4441,"mutability":"mutable","name":"target","nameLocation":"144:6:18","nodeType":"VariableDeclaration","scope":4471,"src":"136:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4440,"name":"address","nodeType":"ElementaryTypeName","src":"136:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4443,"mutability":"mutable","name":"num","nameLocation":"157:3:18","nodeType":"VariableDeclaration","scope":4471,"src":"152:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4442,"name":"uint","nodeType":"ElementaryTypeName","src":"152:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4445,"mutability":"mutable","name":"readonly","nameLocation":"167:8:18","nodeType":"VariableDeclaration","scope":4471,"src":"162:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4444,"name":"bool","nodeType":"ElementaryTypeName","src":"162:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"135:41:18"},"returnParameters":{"id":4447,"nodeType":"ParameterList","parameters":[],"src":"184:0:18"},"scope":4545,"src":"121:282:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b","id":4475,"name":"Succeeded","nameLocation":"415:9:18","nodeType":"EventDefinition","parameters":{"id":4474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4473,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4475,"src":"425:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4472,"name":"uint","nodeType":"ElementaryTypeName","src":"425:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"424:6:18"},"src":"409:22:18"},{"anonymous":false,"eventSelector":"c65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51","id":4479,"name":"Failed","nameLocation":"442:6:18","nodeType":"EventDefinition","parameters":{"id":4478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4477,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4479,"src":"449:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4476,"name":"string","nodeType":"ElementaryTypeName","src":"449:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"448:8:18"},"src":"436:21:18"},{"body":{"id":4543,"nodeType":"Block","src":"574:319:18","statements":[{"expression":{"arguments":[{"hexValue":"66696e6973682829","id":4493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"596:10:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d56b28892cd23ae1d883e9f2b762c21ac0b40a8ad9be751878434c76c15eead0","typeString":"literal_string \"finish()\""},"value":"finish()"},{"id":4494,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"608:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d56b28892cd23ae1d883e9f2b762c21ac0b40a8ad9be751878434c76c15eead0","typeString":"literal_string \"finish()\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4490,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"584:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":4492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"592:3:18","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5504,"src":"584:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"584:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4496,"nodeType":"ExpressionStatement","src":"584:30:18"},{"condition":{"id":4497,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4481,"src":"628:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4541,"nodeType":"Block","src":"735:152:18","statements":[{"assignments":[4514],"declarations":[{"constant":false,"id":4514,"mutability":"mutable","name":"sig","nameLocation":"756:3:18","nodeType":"VariableDeclaration","scope":4541,"src":"749:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4513,"name":"bytes4","nodeType":"ElementaryTypeName","src":"749:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":4521,"initialValue":{"arguments":[{"baseExpression":{"id":4517,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"769:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"769:7:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"762:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4515,"name":"bytes4","nodeType":"ElementaryTypeName","src":"762:6:18","typeDescriptions":{}}},"id":4520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"749:28:18"},{"assignments":[4523],"declarations":[{"constant":false,"id":4523,"mutability":"mutable","name":"err","nameLocation":"804:3:18","nodeType":"VariableDeclaration","scope":4541,"src":"791:16:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4522,"name":"bytes","nodeType":"ElementaryTypeName","src":"791:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4530,"initialValue":{"arguments":[{"baseExpression":{"id":4526,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"816:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"816:7:18","startExpression":{"hexValue":"34","id":4527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4524,"name":"bytes","nodeType":"ElementaryTypeName","src":"810:5:18","typeDescriptions":{}}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"791:33:18"},{"eventCall":{"arguments":[{"arguments":[{"id":4534,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4523,"src":"861:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"867:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4535,"name":"string","nodeType":"ElementaryTypeName","src":"867:6:18","typeDescriptions":{}}}],"id":4537,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"866:8:18","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":4532,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"850:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"854:6:18","memberName":"decode","nodeType":"MemberAccess","src":"850:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"850:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4531,"name":"Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"843:6:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":4539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4540,"nodeType":"EmitStatement","src":"838:38:18"}]},"id":4542,"nodeType":"IfStatement","src":"624:263:18","trueBody":{"id":4512,"nodeType":"Block","src":"637:92:18","statements":[{"assignments":[4499],"declarations":[{"constant":false,"id":4499,"mutability":"mutable","name":"num","nameLocation":"656:3:18","nodeType":"VariableDeclaration","scope":4512,"src":"651:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4498,"name":"uint","nodeType":"ElementaryTypeName","src":"651:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4507,"initialValue":{"arguments":[{"id":4502,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"673:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":4504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"679:4:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4503,"name":"uint","nodeType":"ElementaryTypeName","src":"679:4:18","typeDescriptions":{}}}],"id":4505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"678:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":4500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"662:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"666:6:18","memberName":"decode","nodeType":"MemberAccess","src":"662:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"651:34:18"},{"eventCall":{"arguments":[{"id":4509,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4499,"src":"714:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4508,"name":"Succeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4475,"src":"704:9:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"704:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4511,"nodeType":"EmitStatement","src":"699:19:18"}]}}]},"functionSelector":"b2c642d1","id":4544,"implemented":true,"kind":"function","modifiers":[{"id":4488,"kind":"modifierInvocation","modifierName":{"id":4487,"name":"onlyRelayer","nameLocations":["562:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"562:11:18"},"nodeType":"ModifierInvocation","src":"562:11:18"}],"name":"finish","nameLocation":"472:6:18","nodeType":"FunctionDefinition","parameters":{"id":4486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4481,"mutability":"mutable","name":"success","nameLocation":"493:7:18","nodeType":"VariableDeclaration","scope":4544,"src":"488:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4480,"name":"bool","nodeType":"ElementaryTypeName","src":"488:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4483,"mutability":"mutable","name":"res","nameLocation":"525:3:18","nodeType":"VariableDeclaration","scope":4544,"src":"510:18:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4482,"name":"bytes","nodeType":"ElementaryTypeName","src":"510:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4485,"mutability":"mutable","name":"nonce","nameLocation":"543:5:18","nodeType":"VariableDeclaration","scope":4544,"src":"538:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4484,"name":"uint","nodeType":"ElementaryTypeName","src":"538:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"478:76:18"},"returnParameters":{"id":4489,"nodeType":"ParameterList","parameters":[],"src":"574:0:18"},"scope":4545,"src":"463:430:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4572,"src":"90:805:18","usedErrors":[153,156],"usedEvents":[161,4475,4479]},{"abstract":false,"baseContracts":[],"canonicalName":"Target","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4571,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[4571],"name":"Target","nameLocation":"906:6:18","nodeType":"ContractDefinition","nodes":[{"body":{"id":4569,"nodeType":"Block","src":"970:104:18","statements":[{"expression":{"arguments":[{"hexValue":"746573742829","id":4555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"992:8:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8a8fd6dd9544ca87214e80c840685bd13ff4682cacb0c90821ed74b1d248926","typeString":"literal_string \"test()\""},"value":"test()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8a8fd6dd9544ca87214e80c840685bd13ff4682cacb0c90821ed74b1d248926","typeString":"literal_string \"test()\""}],"expression":{"id":4552,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"980:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"988:3:18","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"980:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4557,"nodeType":"ExpressionStatement","src":"980:21:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4559,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"1019:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31303030","id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1025:4:18","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"1019:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546f6f206c61726765","id":4562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1031:11:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4","typeString":"literal_string \"Too large\""},"value":"Too large"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4","typeString":"literal_string \"Too large\""}],"id":4558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1011:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4564,"nodeType":"ExpressionStatement","src":"1011:32:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4565,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"1060:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1060:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4551,"id":4568,"nodeType":"Return","src":"1053:14:18"}]},"functionSelector":"29e99f07","id":4570,"implemented":true,"kind":"function","modifiers":[],"name":"test","nameLocation":"928:4:18","nodeType":"FunctionDefinition","parameters":{"id":4548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4547,"mutability":"mutable","name":"num","nameLocation":"938:3:18","nodeType":"VariableDeclaration","scope":4570,"src":"933:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4546,"name":"uint","nodeType":"ElementaryTypeName","src":"933:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"932:10:18"},"returnParameters":{"id":4551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4570,"src":"964:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4549,"name":"uint","nodeType":"ElementaryTypeName","src":"964:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"963:6:18"},"scope":4571,"src":"919:155:18","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":4572,"src":"897:179:18","usedErrors":[],"usedEvents":[]}],"src":"39:1038:18"},"id":18},"contracts/ValidatorManager.sol":{"ast":{"absolutePath":"contracts/ValidatorManager.sol","exportedSymbols":{"ECDSA":[1783],"EnumerableSet":[3629],"MessageHashUtils":[1857],"Strings":[1435],"ValidatorManager":[4775]},"id":4776,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4573,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:19"},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":4574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4776,"sourceUnit":3630,"src":"72:65:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":4575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4776,"sourceUnit":1784,"src":"138:62:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","id":4576,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4776,"sourceUnit":1858,"src":"201:73:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ValidatorManager","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4775,"linearizedBaseContracts":[4775],"name":"ValidatorManager","nameLocation":"285:16:19","nodeType":"ContractDefinition","nodes":[{"global":false,"id":4579,"libraryName":{"id":4577,"name":"ECDSA","nameLocations":["314:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"314:5:19"},"nodeType":"UsingForDirective","src":"308:24:19","typeName":{"id":4578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":4582,"libraryName":{"id":4580,"name":"MessageHashUtils","nameLocations":["343:16:19"],"nodeType":"IdentifierPath","referencedDeclaration":1857,"src":"343:16:19"},"nodeType":"UsingForDirective","src":"337:33:19","typeName":{"id":4581,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":4586,"libraryName":{"id":4583,"name":"EnumerableSet","nameLocations":["381:13:19"],"nodeType":"IdentifierPath","referencedDeclaration":3629,"src":"381:13:19"},"nodeType":"UsingForDirective","src":"375:49:19","typeName":{"id":4585,"nodeType":"UserDefinedTypeName","pathNode":{"id":4584,"name":"EnumerableSet.AddressSet","nameLocations":["399:13:19","413:10:19"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"399:24:19"},"referencedDeclaration":3342,"src":"399:24:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":4589,"mutability":"mutable","name":"_validators","nameLocation":"463:11:19","nodeType":"VariableDeclaration","scope":4775,"src":"430:44:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4588,"nodeType":"UserDefinedTypeName","pathNode":{"id":4587,"name":"EnumerableSet.AddressSet","nameLocations":["430:13:19","444:10:19"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"430:24:19"},"referencedDeclaration":3342,"src":"430:24:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"body":{"id":4614,"nodeType":"Block","src":"522:113:19","statements":[{"body":{"id":4612,"nodeType":"Block","src":"577:52:19","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4607,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"604:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4609,"indexExpression":{"id":4608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"615:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"604:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4606,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4628,"src":"591:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":4610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"591:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4611,"nodeType":"ExpressionStatement","src":"591:27:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"549:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4600,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"553:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"564:6:19","memberName":"length","nodeType":"MemberAccess","src":"553:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"549:21:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4613,"initializationExpression":{"assignments":[4596],"declarations":[{"constant":false,"id":4596,"mutability":"mutable","name":"i","nameLocation":"542:1:19","nodeType":"VariableDeclaration","scope":4613,"src":"537:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4595,"name":"uint","nodeType":"ElementaryTypeName","src":"537:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4598,"initialValue":{"hexValue":"30","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"546:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"537:10:19"},"loopExpression":{"expression":{"id":4604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"572:3:19","subExpression":{"id":4603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"572:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4605,"nodeType":"ExpressionStatement","src":"572:3:19"},"nodeType":"ForStatement","src":"532:97:19"}]},"id":4615,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4592,"mutability":"mutable","name":"validators","nameLocation":"510:10:19","nodeType":"VariableDeclaration","scope":4615,"src":"493:27:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4590,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4591,"nodeType":"ArrayTypeName","src":"493:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"492:29:19"},"returnParameters":{"id":4594,"nodeType":"ParameterList","parameters":[],"src":"522:0:19"},"scope":4775,"src":"481:154:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4627,"nodeType":"Block","src":"728:45:19","statements":[{"expression":{"arguments":[{"id":4624,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4617,"src":"761:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4622,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"745:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"757:3:19","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3369,"src":"745:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$3342_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":4625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"745:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4621,"id":4626,"nodeType":"Return","src":"738:28:19"}]},"functionSelector":"4d238c8e","id":4628,"implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"679:12:19","nodeType":"FunctionDefinition","parameters":{"id":4618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4617,"mutability":"mutable","name":"user","nameLocation":"700:4:19","nodeType":"VariableDeclaration","scope":4628,"src":"692:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4616,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"691:14:19"},"returnParameters":{"id":4621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4628,"src":"722:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4619,"name":"bool","nodeType":"ElementaryTypeName","src":"722:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"721:6:19"},"scope":4775,"src":"670:103:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4640,"nodeType":"Block","src":"869:48:19","statements":[{"expression":{"arguments":[{"id":4637,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4630,"src":"905:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4635,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"886:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"898:6:19","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":3396,"src":"886:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$3342_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"886:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4634,"id":4639,"nodeType":"Return","src":"879:31:19"}]},"functionSelector":"40a141ff","id":4641,"implemented":true,"kind":"function","modifiers":[],"name":"removeValidator","nameLocation":"817:15:19","nodeType":"FunctionDefinition","parameters":{"id":4631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4630,"mutability":"mutable","name":"user","nameLocation":"841:4:19","nodeType":"VariableDeclaration","scope":4641,"src":"833:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4629,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"832:14:19"},"returnParameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4641,"src":"863:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4632,"name":"bool","nodeType":"ElementaryTypeName","src":"863:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"862:6:19"},"scope":4775,"src":"808:109:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4651,"nodeType":"Block","src":"1037:44:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4647,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"1054:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1066:6:19","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":3495,"src":"1054:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$3342_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":4649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:20:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":4646,"id":4650,"nodeType":"Return","src":"1047:27:19"}]},"functionSelector":"b7ab4db5","id":4652,"implemented":true,"kind":"function","modifiers":[],"name":"getValidators","nameLocation":"982:13:19","nodeType":"FunctionDefinition","parameters":{"id":4642,"nodeType":"ParameterList","parameters":[],"src":"995:2:19"},"returnParameters":{"id":4646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4652,"src":"1019:16:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4643,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4644,"nodeType":"ArrayTypeName","src":"1019:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1018:18:19"},"scope":4775,"src":"973:108:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4664,"nodeType":"Block","src":"1149:50:19","statements":[{"expression":{"arguments":[{"id":4661,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"1187:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4659,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"1166:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1178:8:19","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":3423,"src":"1166:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$3342_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":4662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1166:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4658,"id":4663,"nodeType":"Return","src":"1159:33:19"}]},"functionSelector":"facd743b","id":4665,"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"1096:11:19","nodeType":"FunctionDefinition","parameters":{"id":4655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4654,"mutability":"mutable","name":"user","nameLocation":"1116:4:19","nodeType":"VariableDeclaration","scope":4665,"src":"1108:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4653,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1107:14:19"},"returnParameters":{"id":4658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4665,"src":"1143:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4656,"name":"bool","nodeType":"ElementaryTypeName","src":"1143:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1142:6:19"},"scope":4775,"src":"1087:112:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4674,"nodeType":"Block","src":"1259:44:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4670,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"1276:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1288:6:19","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":3438,"src":"1276:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$3342_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1276:20:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4669,"id":4673,"nodeType":"Return","src":"1269:27:19"}]},"functionSelector":"ed612f8c","id":4675,"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"1214:15:19","nodeType":"FunctionDefinition","parameters":{"id":4666,"nodeType":"ParameterList","parameters":[],"src":"1229:2:19"},"returnParameters":{"id":4669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4675,"src":"1253:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4667,"name":"uint","nodeType":"ElementaryTypeName","src":"1253:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1252:6:19"},"scope":4775,"src":"1205:98:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4735,"nodeType":"Block","src":"1449:467:19","statements":[{"assignments":[4686],"declarations":[{"constant":false,"id":4686,"mutability":"mutable","name":"lastSigner","nameLocation":"1467:10:19","nodeType":"VariableDeclaration","scope":4735,"src":"1459:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4685,"name":"address","nodeType":"ElementaryTypeName","src":"1459:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4691,"initialValue":{"arguments":[{"hexValue":"30","id":4689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1488:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1480:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4687,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:19","typeDescriptions":{}}},"id":4690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1480:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1459:31:19"},{"body":{"id":4731,"nodeType":"Block","src":"1546:343:19","statements":[{"assignments":[4704],"declarations":[{"constant":false,"id":4704,"mutability":"mutable","name":"signer","nameLocation":"1568:6:19","nodeType":"VariableDeclaration","scope":4731,"src":"1560:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4703,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4711,"initialValue":{"arguments":[{"baseExpression":{"id":4707,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4680,"src":"1606:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4709,"indexExpression":{"id":4708,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"1617:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1606:13:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4705,"name":"ethSignedMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4677,"src":"1577:20:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1598:7:19","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":1539,"src":"1577:28:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":4710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1560:60:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4713,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"1659:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4714,"name":"lastSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"1668:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1659:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e617475726573206d75737420626520756e6971756520616e6420696e20696e6372656173696e67206f72646572","id":4716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1696:51:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42","typeString":"literal_string \"Signatures must be unique and in increasing order\""},"value":"Signatures must be unique and in increasing order"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42","typeString":"literal_string \"Signatures must be unique and in increasing order\""}],"id":4712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1634:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:127:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4718,"nodeType":"ExpressionStatement","src":"1634:127:19"},{"condition":{"id":4722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1779:20:19","subExpression":{"arguments":[{"id":4720,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"1792:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4719,"name":"isValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4665,"src":"1780:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4726,"nodeType":"IfStatement","src":"1775:71:19","trueBody":{"id":4725,"nodeType":"Block","src":"1801:45:19","statements":[{"expression":{"hexValue":"66616c7365","id":4723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1826:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4684,"id":4724,"nodeType":"Return","src":"1819:12:19"}]}},{"expression":{"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4727,"name":"lastSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"1859:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4728,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"1872:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1859:19:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4730,"nodeType":"ExpressionStatement","src":"1859:19:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"1518:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4697,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4680,"src":"1522:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1533:6:19","memberName":"length","nodeType":"MemberAccess","src":"1522:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1518:21:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4732,"initializationExpression":{"assignments":[4693],"declarations":[{"constant":false,"id":4693,"mutability":"mutable","name":"i","nameLocation":"1511:1:19","nodeType":"VariableDeclaration","scope":4732,"src":"1506:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4692,"name":"uint","nodeType":"ElementaryTypeName","src":"1506:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4695,"initialValue":{"hexValue":"30","id":4694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1515:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1506:10:19"},"loopExpression":{"expression":{"id":4701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1541:3:19","subExpression":{"id":4700,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"1541:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4702,"nodeType":"ExpressionStatement","src":"1541:3:19"},"nodeType":"ForStatement","src":"1501:388:19"},{"expression":{"hexValue":"74727565","id":4733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1905:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4684,"id":4734,"nodeType":"Return","src":"1898:11:19"}]},"functionSelector":"7947c3fa","id":4736,"implemented":true,"kind":"function","modifiers":[],"name":"validateUniqueSignatures","nameLocation":"1318:24:19","nodeType":"FunctionDefinition","parameters":{"id":4681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4677,"mutability":"mutable","name":"ethSignedMessageHash","nameLocation":"1360:20:19","nodeType":"VariableDeclaration","scope":4736,"src":"1352:28:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1352:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4680,"mutability":"mutable","name":"signatures","nameLocation":"1405:10:19","nodeType":"VariableDeclaration","scope":4736,"src":"1390:25:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4678,"name":"bytes","nodeType":"ElementaryTypeName","src":"1390:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4679,"nodeType":"ArrayTypeName","src":"1390:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1342:79:19"},"returnParameters":{"id":4684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4736,"src":"1443:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4682,"name":"bool","nodeType":"ElementaryTypeName","src":"1443:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1442:6:19"},"scope":4775,"src":"1309:607:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4752,"nodeType":"Block","src":"1987:57:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4743,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"2004:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33","id":4744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2012:1:19","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2004:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4746,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"2016:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2016:17:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":4748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2016:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2004:33:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4742,"id":4751,"nodeType":"Return","src":"1997:40:19"}]},"functionSelector":"3e99d941","id":4753,"implemented":true,"kind":"function","modifiers":[],"name":"hasSupermajority","nameLocation":"1931:16:19","nodeType":"FunctionDefinition","parameters":{"id":4739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4738,"mutability":"mutable","name":"count","nameLocation":"1953:5:19","nodeType":"VariableDeclaration","scope":4753,"src":"1948:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4737,"name":"uint","nodeType":"ElementaryTypeName","src":"1948:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1947:12:19"},"returnParameters":{"id":4742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4753,"src":"1981:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4740,"name":"bool","nodeType":"ElementaryTypeName","src":"1981:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1980:6:19"},"scope":4775,"src":"1922:122:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4773,"nodeType":"Block","src":"2180:109:19","statements":[{"assignments":[4763],"declarations":[{"constant":false,"id":4763,"mutability":"mutable","name":"signer","nameLocation":"2198:6:19","nodeType":"VariableDeclaration","scope":4773,"src":"2190:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4762,"name":"address","nodeType":"ElementaryTypeName","src":"2190:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4768,"initialValue":{"arguments":[{"id":4766,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4757,"src":"2236:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4764,"name":"ethSignedMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"2207:20:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2228:7:19","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":1539,"src":"2207:28:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":4767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2190:56:19"},{"expression":{"arguments":[{"id":4770,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4763,"src":"2275:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4769,"name":"isValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4665,"src":"2263:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4761,"id":4772,"nodeType":"Return","src":"2256:26:19"}]},"functionSelector":"333daf92","id":4774,"implemented":true,"kind":"function","modifiers":[],"name":"validateSignature","nameLocation":"2059:17:19","nodeType":"FunctionDefinition","parameters":{"id":4758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4755,"mutability":"mutable","name":"ethSignedMessageHash","nameLocation":"2094:20:19","nodeType":"VariableDeclaration","scope":4774,"src":"2086:28:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2086:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4757,"mutability":"mutable","name":"signature","nameLocation":"2137:9:19","nodeType":"VariableDeclaration","scope":4774,"src":"2124:22:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4756,"name":"bytes","nodeType":"ElementaryTypeName","src":"2124:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2076:76:19"},"returnParameters":{"id":4761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4774,"src":"2174:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4759,"name":"bool","nodeType":"ElementaryTypeName","src":"2174:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2173:6:19"},"scope":4775,"src":"2050:239:19","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":4776,"src":"276:2015:19","usedErrors":[1446,1451,1456],"usedEvents":[]}],"src":"46:2246:19"},"id":19},"hardhat/console.sol":{"ast":{"absolutePath":"hardhat/console.sol","exportedSymbols":{"console":[12860]},"id":12861,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4777,"literals":["solidity",">=","0.4",".22","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:32:20"},{"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":12860,"linearizedBaseContracts":[12860],"name":"console","nameLocation":"74:7:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4780,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"105:15:20","nodeType":"VariableDeclaration","scope":12860,"src":"88:85:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4778,"name":"address","nodeType":"ElementaryTypeName","src":"88:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":4779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:42:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"body":{"id":4790,"nodeType":"Block","src":"255:388:20","statements":[{"assignments":[4786],"declarations":[{"constant":false,"id":4786,"mutability":"mutable","name":"consoleAddress","nameLocation":"273:14:20","nodeType":"VariableDeclaration","scope":4790,"src":"265:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4785,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4788,"initialValue":{"id":4787,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"290:15:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"265:40:20"},{"AST":{"nodeType":"YulBlock","src":"367:270:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"434:3:20"},"nodeType":"YulFunctionCall","src":"434:5:20"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"461:14:20"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"501:7:20"},{"kind":"number","nodeType":"YulLiteral","src":"510:2:20","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"497:3:20"},"nodeType":"YulFunctionCall","src":"497:16:20"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"541:7:20"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"535:5:20"},"nodeType":"YulFunctionCall","src":"535:14:20"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:20","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"594:1:20","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"402:10:20"},"nodeType":"YulFunctionCall","src":"402:211:20"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"381:3:20"},"nodeType":"YulFunctionCall","src":"381:246:20"},"nodeType":"YulExpressionStatement","src":"381:246:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4786,"isOffset":false,"isSlot":false,"src":"461:14:20","valueSize":1},{"declaration":4782,"isOffset":false,"isSlot":false,"src":"501:7:20","valueSize":1},{"declaration":4782,"isOffset":false,"isSlot":false,"src":"541:7:20","valueSize":1}],"id":4789,"nodeType":"InlineAssembly","src":"358:279:20"}]},"id":4791,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadImplementation","nameLocation":"189:29:20","nodeType":"FunctionDefinition","parameters":{"id":4783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4782,"mutability":"mutable","name":"payload","nameLocation":"232:7:20","nodeType":"VariableDeclaration","scope":4791,"src":"219:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4781,"name":"bytes","nodeType":"ElementaryTypeName","src":"219:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"218:22:20"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[],"src":"255:0:20"},"scope":12860,"src":"180:463:20","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4807,"nodeType":"Block","src":"783:62:20","statements":[{"AST":{"nodeType":"YulBlock","src":"802:37:20","statements":[{"nodeType":"YulAssignment","src":"816:13:20","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"825:4:20"},"variableNames":[{"name":"fnOut","nodeType":"YulIdentifier","src":"816:5:20"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4797,"isOffset":false,"isSlot":false,"src":"825:4:20","valueSize":1},{"declaration":4804,"isOffset":false,"isSlot":false,"src":"816:5:20","valueSize":1}],"id":4806,"nodeType":"InlineAssembly","src":"793:46:20"}]},"id":4808,"implemented":true,"kind":"function","modifiers":[],"name":"_castToPure","nameLocation":"658:11:20","nodeType":"FunctionDefinition","parameters":{"id":4798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4797,"mutability":"mutable","name":"fnIn","nameLocation":"714:4:20","nodeType":"VariableDeclaration","scope":4808,"src":"677:41:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":4796,"nodeType":"FunctionTypeName","parameterTypes":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4796,"src":"686:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4792,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"685:14:20"},"returnParameterTypes":{"id":4795,"nodeType":"ParameterList","parameters":[],"src":"714:0:20"},"src":"677:41:20","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"669:55:20"},"returnParameters":{"id":4805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4804,"mutability":"mutable","name":"fnOut","nameLocation":"776:5:20","nodeType":"VariableDeclaration","scope":4808,"src":"748:33:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":4803,"nodeType":"FunctionTypeName","parameterTypes":{"id":4801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4803,"src":"757:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4799,"name":"bytes","nodeType":"ElementaryTypeName","src":"757:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"756:14:20"},"returnParameterTypes":{"id":4802,"nodeType":"ParameterList","parameters":[],"src":"776:0:20"},"src":"748:33:20","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"747:35:20"},"scope":12860,"src":"649:196:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4819,"nodeType":"Block","src":"912:68:20","statements":[{"expression":{"arguments":[{"id":4816,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4810,"src":"965:7:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":4814,"name":"_sendLogPayloadImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"934:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":4813,"name":"_castToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"922:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4818,"nodeType":"ExpressionStatement","src":"922:51:20"}]},"id":4820,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"860:15:20","nodeType":"FunctionDefinition","parameters":{"id":4811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4810,"mutability":"mutable","name":"payload","nameLocation":"889:7:20","nodeType":"VariableDeclaration","scope":4820,"src":"876:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4809,"name":"bytes","nodeType":"ElementaryTypeName","src":"876:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"875:22:20"},"returnParameters":{"id":4812,"nodeType":"ParameterList","parameters":[],"src":"912:0:20"},"scope":12860,"src":"851:129:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4830,"nodeType":"Block","src":"1015:66:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":4826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1065:7:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":4824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1041:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1045:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1041:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1025:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1025:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4829,"nodeType":"ExpressionStatement","src":"1025:49:20"}]},"id":4831,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"995:3:20","nodeType":"FunctionDefinition","parameters":{"id":4821,"nodeType":"ParameterList","parameters":[],"src":"998:2:20"},"returnParameters":{"id":4822,"nodeType":"ParameterList","parameters":[],"src":"1015:0:20"},"scope":12860,"src":"986:95:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4844,"nodeType":"Block","src":"1127:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":4839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1177:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":4840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4833,"src":"1192:2:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":4837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1153:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1157:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1153:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1137:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4843,"nodeType":"ExpressionStatement","src":"1137:59:20"}]},"id":4845,"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"1095:6:20","nodeType":"FunctionDefinition","parameters":{"id":4834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4833,"mutability":"mutable","name":"p0","nameLocation":"1109:2:20","nodeType":"VariableDeclaration","scope":4845,"src":"1102:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4832,"name":"int256","nodeType":"ElementaryTypeName","src":"1102:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1101:11:20"},"returnParameters":{"id":4835,"nodeType":"ParameterList","parameters":[],"src":"1127:0:20"},"scope":12860,"src":"1086:117:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4858,"nodeType":"Block","src":"1252:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1302:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":4854,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4847,"src":"1318:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1278:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1282:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1278:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4850,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1262:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4857,"nodeType":"ExpressionStatement","src":"1262:60:20"}]},"id":4859,"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"1218:7:20","nodeType":"FunctionDefinition","parameters":{"id":4848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4847,"mutability":"mutable","name":"p0","nameLocation":"1234:2:20","nodeType":"VariableDeclaration","scope":4859,"src":"1226:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4846,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1225:12:20"},"returnParameters":{"id":4849,"nodeType":"ParameterList","parameters":[],"src":"1252:0:20"},"scope":12860,"src":"1209:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4872,"nodeType":"Block","src":"1386:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":4867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1436:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":4868,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4861,"src":"1451:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4865,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1412:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1416:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1412:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4864,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1396:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4871,"nodeType":"ExpressionStatement","src":"1396:59:20"}]},"id":4873,"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"1344:9:20","nodeType":"FunctionDefinition","parameters":{"id":4862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4861,"mutability":"mutable","name":"p0","nameLocation":"1368:2:20","nodeType":"VariableDeclaration","scope":4873,"src":"1354:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4860,"name":"string","nodeType":"ElementaryTypeName","src":"1354:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1353:18:20"},"returnParameters":{"id":4863,"nodeType":"ParameterList","parameters":[],"src":"1386:0:20"},"scope":12860,"src":"1335:127:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4886,"nodeType":"Block","src":"1508:74:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":4881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1558:11:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":4882,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4875,"src":"1571:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4879,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1534:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1538:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1534:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4878,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1518:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4885,"nodeType":"ExpressionStatement","src":"1518:57:20"}]},"id":4887,"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1477:7:20","nodeType":"FunctionDefinition","parameters":{"id":4876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4875,"mutability":"mutable","name":"p0","nameLocation":"1490:2:20","nodeType":"VariableDeclaration","scope":4887,"src":"1485:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4874,"name":"bool","nodeType":"ElementaryTypeName","src":"1485:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1484:9:20"},"returnParameters":{"id":4877,"nodeType":"ParameterList","parameters":[],"src":"1508:0:20"},"scope":12860,"src":"1468:114:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4900,"nodeType":"Block","src":"1634:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":4895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":4896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4889,"src":"1700:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1660:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1664:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1660:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1644:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4899,"nodeType":"ExpressionStatement","src":"1644:60:20"}]},"id":4901,"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1597:10:20","nodeType":"FunctionDefinition","parameters":{"id":4890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4889,"mutability":"mutable","name":"p0","nameLocation":"1616:2:20","nodeType":"VariableDeclaration","scope":4901,"src":"1608:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4888,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1607:12:20"},"returnParameters":{"id":4891,"nodeType":"ParameterList","parameters":[],"src":"1634:0:20"},"scope":12860,"src":"1588:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4914,"nodeType":"Block","src":"1766:75:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":4909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1816:12:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":4910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4903,"src":"1830:2:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1792:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1796:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1792:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1776:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:58:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4913,"nodeType":"ExpressionStatement","src":"1776:58:20"}]},"id":4915,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1726:8:20","nodeType":"FunctionDefinition","parameters":{"id":4904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4903,"mutability":"mutable","name":"p0","nameLocation":"1748:2:20","nodeType":"VariableDeclaration","scope":4915,"src":"1735:15:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4902,"name":"bytes","nodeType":"ElementaryTypeName","src":"1735:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1734:17:20"},"returnParameters":{"id":4905,"nodeType":"ParameterList","parameters":[],"src":"1766:0:20"},"scope":12860,"src":"1717:124:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4928,"nodeType":"Block","src":"1891:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":4923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":4924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"1956:2:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":4921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1917:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1921:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1917:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1901:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4927,"nodeType":"ExpressionStatement","src":"1901:59:20"}]},"id":4929,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1856:9:20","nodeType":"FunctionDefinition","parameters":{"id":4918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4917,"mutability":"mutable","name":"p0","nameLocation":"1873:2:20","nodeType":"VariableDeclaration","scope":4929,"src":"1866:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":4916,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1866:6:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1865:11:20"},"returnParameters":{"id":4919,"nodeType":"ParameterList","parameters":[],"src":"1891:0:20"},"scope":12860,"src":"1847:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4942,"nodeType":"Block","src":"2017:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":4937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2067:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":4938,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"2082:2:20","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":4935,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2043:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2047:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2043:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4934,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2027:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4941,"nodeType":"ExpressionStatement","src":"2027:59:20"}]},"id":4943,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1982:9:20","nodeType":"FunctionDefinition","parameters":{"id":4932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4931,"mutability":"mutable","name":"p0","nameLocation":"1999:2:20","nodeType":"VariableDeclaration","scope":4943,"src":"1992:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":4930,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1992:6:20","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1991:11:20"},"returnParameters":{"id":4933,"nodeType":"ParameterList","parameters":[],"src":"2017:0:20"},"scope":12860,"src":"1973:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4956,"nodeType":"Block","src":"2143:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":4951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":4952,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"2208:2:20","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":4949,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2169:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2173:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2169:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4948,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2153:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4955,"nodeType":"ExpressionStatement","src":"2153:59:20"}]},"id":4957,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"2108:9:20","nodeType":"FunctionDefinition","parameters":{"id":4946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4945,"mutability":"mutable","name":"p0","nameLocation":"2125:2:20","nodeType":"VariableDeclaration","scope":4957,"src":"2118:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":4944,"name":"bytes3","nodeType":"ElementaryTypeName","src":"2118:6:20","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"2117:11:20"},"returnParameters":{"id":4947,"nodeType":"ParameterList","parameters":[],"src":"2143:0:20"},"scope":12860,"src":"2099:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4970,"nodeType":"Block","src":"2269:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":4965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2319:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":4966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"2334:2:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":4963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2295:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2299:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2295:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2279:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4969,"nodeType":"ExpressionStatement","src":"2279:59:20"}]},"id":4971,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"2234:9:20","nodeType":"FunctionDefinition","parameters":{"id":4960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4959,"mutability":"mutable","name":"p0","nameLocation":"2251:2:20","nodeType":"VariableDeclaration","scope":4971,"src":"2244:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4958,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2244:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2243:11:20"},"returnParameters":{"id":4961,"nodeType":"ParameterList","parameters":[],"src":"2269:0:20"},"scope":12860,"src":"2225:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4984,"nodeType":"Block","src":"2395:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":4979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2445:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":4980,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4973,"src":"2460:2:20","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":4977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2421:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2425:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2421:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4976,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2405:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2405:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4983,"nodeType":"ExpressionStatement","src":"2405:59:20"}]},"id":4985,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"2360:9:20","nodeType":"FunctionDefinition","parameters":{"id":4974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4973,"mutability":"mutable","name":"p0","nameLocation":"2377:2:20","nodeType":"VariableDeclaration","scope":4985,"src":"2370:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":4972,"name":"bytes5","nodeType":"ElementaryTypeName","src":"2370:6:20","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"2369:11:20"},"returnParameters":{"id":4975,"nodeType":"ParameterList","parameters":[],"src":"2395:0:20"},"scope":12860,"src":"2351:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4998,"nodeType":"Block","src":"2521:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":4993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2571:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":4994,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4987,"src":"2586:2:20","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":4991,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2547:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2551:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2547:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4990,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2531:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4997,"nodeType":"ExpressionStatement","src":"2531:59:20"}]},"id":4999,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2486:9:20","nodeType":"FunctionDefinition","parameters":{"id":4988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4987,"mutability":"mutable","name":"p0","nameLocation":"2503:2:20","nodeType":"VariableDeclaration","scope":4999,"src":"2496:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":4986,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2496:6:20","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2495:11:20"},"returnParameters":{"id":4989,"nodeType":"ParameterList","parameters":[],"src":"2521:0:20"},"scope":12860,"src":"2477:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5012,"nodeType":"Block","src":"2647:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":5007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2697:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":5008,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"2712:2:20","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":5005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2673:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2677:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2673:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5004,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2657:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5011,"nodeType":"ExpressionStatement","src":"2657:59:20"}]},"id":5013,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2612:9:20","nodeType":"FunctionDefinition","parameters":{"id":5002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5001,"mutability":"mutable","name":"p0","nameLocation":"2629:2:20","nodeType":"VariableDeclaration","scope":5013,"src":"2622:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":5000,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2622:6:20","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2621:11:20"},"returnParameters":{"id":5003,"nodeType":"ParameterList","parameters":[],"src":"2647:0:20"},"scope":12860,"src":"2603:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5026,"nodeType":"Block","src":"2773:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":5021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2823:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":5022,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"2838:2:20","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":5019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2803:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2799:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5018,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2783:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5025,"nodeType":"ExpressionStatement","src":"2783:59:20"}]},"id":5027,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2738:9:20","nodeType":"FunctionDefinition","parameters":{"id":5016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5015,"mutability":"mutable","name":"p0","nameLocation":"2755:2:20","nodeType":"VariableDeclaration","scope":5027,"src":"2748:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":5014,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2748:6:20","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2747:11:20"},"returnParameters":{"id":5017,"nodeType":"ParameterList","parameters":[],"src":"2773:0:20"},"scope":12860,"src":"2729:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5040,"nodeType":"Block","src":"2899:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":5035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2949:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":5036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5029,"src":"2964:2:20","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":5033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2925:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2909:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2909:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5039,"nodeType":"ExpressionStatement","src":"2909:59:20"}]},"id":5041,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2864:9:20","nodeType":"FunctionDefinition","parameters":{"id":5030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5029,"mutability":"mutable","name":"p0","nameLocation":"2881:2:20","nodeType":"VariableDeclaration","scope":5041,"src":"2874:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":5028,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2874:6:20","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2873:11:20"},"returnParameters":{"id":5031,"nodeType":"ParameterList","parameters":[],"src":"2899:0:20"},"scope":12860,"src":"2855:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5054,"nodeType":"Block","src":"3027:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":5049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3077:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":5050,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5043,"src":"3093:2:20","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":5047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3053:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3057:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3053:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3053:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5046,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3037:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3037:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5053,"nodeType":"ExpressionStatement","src":"3037:60:20"}]},"id":5055,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2990:10:20","nodeType":"FunctionDefinition","parameters":{"id":5044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5043,"mutability":"mutable","name":"p0","nameLocation":"3009:2:20","nodeType":"VariableDeclaration","scope":5055,"src":"3001:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":5042,"name":"bytes10","nodeType":"ElementaryTypeName","src":"3001:7:20","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"3000:12:20"},"returnParameters":{"id":5045,"nodeType":"ParameterList","parameters":[],"src":"3027:0:20"},"scope":12860,"src":"2981:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5068,"nodeType":"Block","src":"3156:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":5063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3206:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":5064,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5057,"src":"3222:2:20","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":5061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3182:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3186:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3182:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5060,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3166:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3166:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5067,"nodeType":"ExpressionStatement","src":"3166:60:20"}]},"id":5069,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"3119:10:20","nodeType":"FunctionDefinition","parameters":{"id":5058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5057,"mutability":"mutable","name":"p0","nameLocation":"3138:2:20","nodeType":"VariableDeclaration","scope":5069,"src":"3130:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":5056,"name":"bytes11","nodeType":"ElementaryTypeName","src":"3130:7:20","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"3129:12:20"},"returnParameters":{"id":5059,"nodeType":"ParameterList","parameters":[],"src":"3156:0:20"},"scope":12860,"src":"3110:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5082,"nodeType":"Block","src":"3285:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":5077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":5078,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5071,"src":"3351:2:20","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":5075,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3311:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3315:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3311:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3311:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5074,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3295:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3295:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5081,"nodeType":"ExpressionStatement","src":"3295:60:20"}]},"id":5083,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"3248:10:20","nodeType":"FunctionDefinition","parameters":{"id":5072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5071,"mutability":"mutable","name":"p0","nameLocation":"3267:2:20","nodeType":"VariableDeclaration","scope":5083,"src":"3259:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":5070,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3259:7:20","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"3258:12:20"},"returnParameters":{"id":5073,"nodeType":"ParameterList","parameters":[],"src":"3285:0:20"},"scope":12860,"src":"3239:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5096,"nodeType":"Block","src":"3414:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":5091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3464:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":5092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"3480:2:20","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":5089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3440:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3444:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3440:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3424:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5095,"nodeType":"ExpressionStatement","src":"3424:60:20"}]},"id":5097,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"3377:10:20","nodeType":"FunctionDefinition","parameters":{"id":5086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5085,"mutability":"mutable","name":"p0","nameLocation":"3396:2:20","nodeType":"VariableDeclaration","scope":5097,"src":"3388:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":5084,"name":"bytes13","nodeType":"ElementaryTypeName","src":"3388:7:20","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"3387:12:20"},"returnParameters":{"id":5087,"nodeType":"ParameterList","parameters":[],"src":"3414:0:20"},"scope":12860,"src":"3368:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5110,"nodeType":"Block","src":"3543:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":5105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3593:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":5106,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"3609:2:20","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":5103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3569:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3573:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3569:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3569:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5102,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3553:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5109,"nodeType":"ExpressionStatement","src":"3553:60:20"}]},"id":5111,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3506:10:20","nodeType":"FunctionDefinition","parameters":{"id":5100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5099,"mutability":"mutable","name":"p0","nameLocation":"3525:2:20","nodeType":"VariableDeclaration","scope":5111,"src":"3517:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":5098,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3517:7:20","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3516:12:20"},"returnParameters":{"id":5101,"nodeType":"ParameterList","parameters":[],"src":"3543:0:20"},"scope":12860,"src":"3497:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5124,"nodeType":"Block","src":"3672:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":5119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3722:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":5120,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5113,"src":"3738:2:20","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":5117,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3698:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3702:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3698:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5116,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3682:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3682:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5123,"nodeType":"ExpressionStatement","src":"3682:60:20"}]},"id":5125,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3635:10:20","nodeType":"FunctionDefinition","parameters":{"id":5114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5113,"mutability":"mutable","name":"p0","nameLocation":"3654:2:20","nodeType":"VariableDeclaration","scope":5125,"src":"3646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":5112,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3646:7:20","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3645:12:20"},"returnParameters":{"id":5115,"nodeType":"ParameterList","parameters":[],"src":"3672:0:20"},"scope":12860,"src":"3626:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5138,"nodeType":"Block","src":"3801:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":5133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3851:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":5134,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"3867:2:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":5131,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3827:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3831:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3827:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5130,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3811:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5137,"nodeType":"ExpressionStatement","src":"3811:60:20"}]},"id":5139,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3764:10:20","nodeType":"FunctionDefinition","parameters":{"id":5128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5127,"mutability":"mutable","name":"p0","nameLocation":"3783:2:20","nodeType":"VariableDeclaration","scope":5139,"src":"3775:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":5126,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3775:7:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3774:12:20"},"returnParameters":{"id":5129,"nodeType":"ParameterList","parameters":[],"src":"3801:0:20"},"scope":12860,"src":"3755:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5152,"nodeType":"Block","src":"3930:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":5147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3980:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":5148,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"3996:2:20","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":5145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3956:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3960:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3956:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5144,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3940:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3940:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5151,"nodeType":"ExpressionStatement","src":"3940:60:20"}]},"id":5153,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3893:10:20","nodeType":"FunctionDefinition","parameters":{"id":5142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5141,"mutability":"mutable","name":"p0","nameLocation":"3912:2:20","nodeType":"VariableDeclaration","scope":5153,"src":"3904:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":5140,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3904:7:20","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3903:12:20"},"returnParameters":{"id":5143,"nodeType":"ParameterList","parameters":[],"src":"3930:0:20"},"scope":12860,"src":"3884:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5166,"nodeType":"Block","src":"4059:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":5161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4109:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":5162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"4125:2:20","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":5159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4085:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4089:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4085:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4069:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5165,"nodeType":"ExpressionStatement","src":"4069:60:20"}]},"id":5167,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"4022:10:20","nodeType":"FunctionDefinition","parameters":{"id":5156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"mutability":"mutable","name":"p0","nameLocation":"4041:2:20","nodeType":"VariableDeclaration","scope":5167,"src":"4033:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":5154,"name":"bytes18","nodeType":"ElementaryTypeName","src":"4033:7:20","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"4032:12:20"},"returnParameters":{"id":5157,"nodeType":"ParameterList","parameters":[],"src":"4059:0:20"},"scope":12860,"src":"4013:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5180,"nodeType":"Block","src":"4188:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":5175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4238:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":5176,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"4254:2:20","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":5173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4214:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4218:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4214:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5172,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4198:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4198:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5179,"nodeType":"ExpressionStatement","src":"4198:60:20"}]},"id":5181,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"4151:10:20","nodeType":"FunctionDefinition","parameters":{"id":5170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5169,"mutability":"mutable","name":"p0","nameLocation":"4170:2:20","nodeType":"VariableDeclaration","scope":5181,"src":"4162:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":5168,"name":"bytes19","nodeType":"ElementaryTypeName","src":"4162:7:20","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"4161:12:20"},"returnParameters":{"id":5171,"nodeType":"ParameterList","parameters":[],"src":"4188:0:20"},"scope":12860,"src":"4142:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5194,"nodeType":"Block","src":"4317:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":5189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4367:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":5190,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"4383:2:20","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":5187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4343:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4347:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4343:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5186,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4327:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5193,"nodeType":"ExpressionStatement","src":"4327:60:20"}]},"id":5195,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"4280:10:20","nodeType":"FunctionDefinition","parameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5183,"mutability":"mutable","name":"p0","nameLocation":"4299:2:20","nodeType":"VariableDeclaration","scope":5195,"src":"4291:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":5182,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4291:7:20","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"4290:12:20"},"returnParameters":{"id":5185,"nodeType":"ParameterList","parameters":[],"src":"4317:0:20"},"scope":12860,"src":"4271:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5208,"nodeType":"Block","src":"4446:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":5203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4496:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":5204,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"4512:2:20","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":5201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4472:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4476:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4472:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4472:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5200,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4456:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5207,"nodeType":"ExpressionStatement","src":"4456:60:20"}]},"id":5209,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"4409:10:20","nodeType":"FunctionDefinition","parameters":{"id":5198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5197,"mutability":"mutable","name":"p0","nameLocation":"4428:2:20","nodeType":"VariableDeclaration","scope":5209,"src":"4420:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":5196,"name":"bytes21","nodeType":"ElementaryTypeName","src":"4420:7:20","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"4419:12:20"},"returnParameters":{"id":5199,"nodeType":"ParameterList","parameters":[],"src":"4446:0:20"},"scope":12860,"src":"4400:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5222,"nodeType":"Block","src":"4575:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":5217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4625:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":5218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5211,"src":"4641:2:20","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":5215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4601:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4605:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4601:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4585:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"4585:60:20"}]},"id":5223,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4538:10:20","nodeType":"FunctionDefinition","parameters":{"id":5212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5211,"mutability":"mutable","name":"p0","nameLocation":"4557:2:20","nodeType":"VariableDeclaration","scope":5223,"src":"4549:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":5210,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4549:7:20","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4548:12:20"},"returnParameters":{"id":5213,"nodeType":"ParameterList","parameters":[],"src":"4575:0:20"},"scope":12860,"src":"4529:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5236,"nodeType":"Block","src":"4704:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":5231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4754:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":5232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"4770:2:20","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":5229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4730:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4734:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4730:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4714:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5235,"nodeType":"ExpressionStatement","src":"4714:60:20"}]},"id":5237,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4667:10:20","nodeType":"FunctionDefinition","parameters":{"id":5226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5225,"mutability":"mutable","name":"p0","nameLocation":"4686:2:20","nodeType":"VariableDeclaration","scope":5237,"src":"4678:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":5224,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4678:7:20","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4677:12:20"},"returnParameters":{"id":5227,"nodeType":"ParameterList","parameters":[],"src":"4704:0:20"},"scope":12860,"src":"4658:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5250,"nodeType":"Block","src":"4833:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":5245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4883:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":5246,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5239,"src":"4899:2:20","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":5243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4859:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4863:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4859:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4859:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5242,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4843:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4843:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5249,"nodeType":"ExpressionStatement","src":"4843:60:20"}]},"id":5251,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4796:10:20","nodeType":"FunctionDefinition","parameters":{"id":5240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5239,"mutability":"mutable","name":"p0","nameLocation":"4815:2:20","nodeType":"VariableDeclaration","scope":5251,"src":"4807:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":5238,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4807:7:20","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4806:12:20"},"returnParameters":{"id":5241,"nodeType":"ParameterList","parameters":[],"src":"4833:0:20"},"scope":12860,"src":"4787:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5264,"nodeType":"Block","src":"4962:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":5259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5012:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":5260,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"5028:2:20","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":5257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4988:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4992:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4988:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4988:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5256,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4972:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4972:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5263,"nodeType":"ExpressionStatement","src":"4972:60:20"}]},"id":5265,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4925:10:20","nodeType":"FunctionDefinition","parameters":{"id":5254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5253,"mutability":"mutable","name":"p0","nameLocation":"4944:2:20","nodeType":"VariableDeclaration","scope":5265,"src":"4936:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":5252,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4936:7:20","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4935:12:20"},"returnParameters":{"id":5255,"nodeType":"ParameterList","parameters":[],"src":"4962:0:20"},"scope":12860,"src":"4916:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5278,"nodeType":"Block","src":"5091:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":5273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5141:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":5274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"5157:2:20","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":5271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5117:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5121:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5117:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5101:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5101:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5277,"nodeType":"ExpressionStatement","src":"5101:60:20"}]},"id":5279,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"5054:10:20","nodeType":"FunctionDefinition","parameters":{"id":5268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5267,"mutability":"mutable","name":"p0","nameLocation":"5073:2:20","nodeType":"VariableDeclaration","scope":5279,"src":"5065:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":5266,"name":"bytes26","nodeType":"ElementaryTypeName","src":"5065:7:20","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"5064:12:20"},"returnParameters":{"id":5269,"nodeType":"ParameterList","parameters":[],"src":"5091:0:20"},"scope":12860,"src":"5045:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5292,"nodeType":"Block","src":"5220:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":5287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5270:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":5288,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"5286:2:20","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":5285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5246:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5250:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5246:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5284,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5230:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5291,"nodeType":"ExpressionStatement","src":"5230:60:20"}]},"id":5293,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"5183:10:20","nodeType":"FunctionDefinition","parameters":{"id":5282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5281,"mutability":"mutable","name":"p0","nameLocation":"5202:2:20","nodeType":"VariableDeclaration","scope":5293,"src":"5194:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":5280,"name":"bytes27","nodeType":"ElementaryTypeName","src":"5194:7:20","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"5193:12:20"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[],"src":"5220:0:20"},"scope":12860,"src":"5174:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5306,"nodeType":"Block","src":"5349:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":5301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5399:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":5302,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5295,"src":"5415:2:20","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":5299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5375:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5379:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5375:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5298,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5359:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5359:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5305,"nodeType":"ExpressionStatement","src":"5359:60:20"}]},"id":5307,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"5312:10:20","nodeType":"FunctionDefinition","parameters":{"id":5296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5295,"mutability":"mutable","name":"p0","nameLocation":"5331:2:20","nodeType":"VariableDeclaration","scope":5307,"src":"5323:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":5294,"name":"bytes28","nodeType":"ElementaryTypeName","src":"5323:7:20","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"5322:12:20"},"returnParameters":{"id":5297,"nodeType":"ParameterList","parameters":[],"src":"5349:0:20"},"scope":12860,"src":"5303:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5320,"nodeType":"Block","src":"5478:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":5315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5528:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":5316,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5309,"src":"5544:2:20","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":5313,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5504:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5508:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5504:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5312,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5488:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5319,"nodeType":"ExpressionStatement","src":"5488:60:20"}]},"id":5321,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5441:10:20","nodeType":"FunctionDefinition","parameters":{"id":5310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5309,"mutability":"mutable","name":"p0","nameLocation":"5460:2:20","nodeType":"VariableDeclaration","scope":5321,"src":"5452:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":5308,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5452:7:20","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5451:12:20"},"returnParameters":{"id":5311,"nodeType":"ParameterList","parameters":[],"src":"5478:0:20"},"scope":12860,"src":"5432:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5334,"nodeType":"Block","src":"5607:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":5329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5657:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":5330,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"5673:2:20","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":5327,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5633:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5637:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5633:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5633:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5326,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5617:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5617:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5333,"nodeType":"ExpressionStatement","src":"5617:60:20"}]},"id":5335,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5570:10:20","nodeType":"FunctionDefinition","parameters":{"id":5324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"p0","nameLocation":"5589:2:20","nodeType":"VariableDeclaration","scope":5335,"src":"5581:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":5322,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5581:7:20","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5580:12:20"},"returnParameters":{"id":5325,"nodeType":"ParameterList","parameters":[],"src":"5607:0:20"},"scope":12860,"src":"5561:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5348,"nodeType":"Block","src":"5736:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":5343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":5344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5337,"src":"5802:2:20","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":5341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5762:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5766:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5762:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5746:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5347,"nodeType":"ExpressionStatement","src":"5746:60:20"}]},"id":5349,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5699:10:20","nodeType":"FunctionDefinition","parameters":{"id":5338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5337,"mutability":"mutable","name":"p0","nameLocation":"5718:2:20","nodeType":"VariableDeclaration","scope":5349,"src":"5710:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":5336,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5710:7:20","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5709:12:20"},"returnParameters":{"id":5339,"nodeType":"ParameterList","parameters":[],"src":"5736:0:20"},"scope":12860,"src":"5690:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5362,"nodeType":"Block","src":"5865:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":5357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5915:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":5358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5351,"src":"5931:2:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5891:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5895:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5891:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5875:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5361,"nodeType":"ExpressionStatement","src":"5875:60:20"}]},"id":5363,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5828:10:20","nodeType":"FunctionDefinition","parameters":{"id":5352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5351,"mutability":"mutable","name":"p0","nameLocation":"5847:2:20","nodeType":"VariableDeclaration","scope":5363,"src":"5839:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5839:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5838:12:20"},"returnParameters":{"id":5353,"nodeType":"ParameterList","parameters":[],"src":"5865:0:20"},"scope":12860,"src":"5819:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5376,"nodeType":"Block","src":"5987:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":5371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6037:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":5372,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"6053:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6013:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6017:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6013:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5368,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5997:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5997:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5375,"nodeType":"ExpressionStatement","src":"5997:60:20"}]},"id":5377,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5957:3:20","nodeType":"FunctionDefinition","parameters":{"id":5366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5365,"mutability":"mutable","name":"p0","nameLocation":"5969:2:20","nodeType":"VariableDeclaration","scope":5377,"src":"5961:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5364,"name":"uint256","nodeType":"ElementaryTypeName","src":"5961:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5960:12:20"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[],"src":"5987:0:20"},"scope":12860,"src":"5948:116:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5390,"nodeType":"Block","src":"6115:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":5385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6165:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":5386,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5379,"src":"6180:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5383,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6141:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6145:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6141:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5382,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6125:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5389,"nodeType":"ExpressionStatement","src":"6125:59:20"}]},"id":5391,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6079:3:20","nodeType":"FunctionDefinition","parameters":{"id":5380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5379,"mutability":"mutable","name":"p0","nameLocation":"6097:2:20","nodeType":"VariableDeclaration","scope":5391,"src":"6083:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5378,"name":"string","nodeType":"ElementaryTypeName","src":"6083:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6082:18:20"},"returnParameters":{"id":5381,"nodeType":"ParameterList","parameters":[],"src":"6115:0:20"},"scope":12860,"src":"6070:121:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5404,"nodeType":"Block","src":"6233:74:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":5399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6283:11:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":5400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"6296:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6259:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6263:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6259:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6259:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6243:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6243:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5403,"nodeType":"ExpressionStatement","src":"6243:57:20"}]},"id":5405,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6206:3:20","nodeType":"FunctionDefinition","parameters":{"id":5394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5393,"mutability":"mutable","name":"p0","nameLocation":"6215:2:20","nodeType":"VariableDeclaration","scope":5405,"src":"6210:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5392,"name":"bool","nodeType":"ElementaryTypeName","src":"6210:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6209:9:20"},"returnParameters":{"id":5395,"nodeType":"ParameterList","parameters":[],"src":"6233:0:20"},"scope":12860,"src":"6197:110:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5418,"nodeType":"Block","src":"6352:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6402:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":5414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"6418:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6378:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6378:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6362:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5417,"nodeType":"ExpressionStatement","src":"6362:60:20"}]},"id":5419,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6322:3:20","nodeType":"FunctionDefinition","parameters":{"id":5408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"p0","nameLocation":"6334:2:20","nodeType":"VariableDeclaration","scope":5419,"src":"6326:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5406,"name":"address","nodeType":"ElementaryTypeName","src":"6326:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6325:12:20"},"returnParameters":{"id":5409,"nodeType":"ParameterList","parameters":[],"src":"6352:0:20"},"scope":12860,"src":"6313:116:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5435,"nodeType":"Block","src":"6486:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":5429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6536:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":5430,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5421,"src":"6560:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5431,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5423,"src":"6564:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5427,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6512:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6516:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6512:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6512:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5426,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6496:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5434,"nodeType":"ExpressionStatement","src":"6496:72:20"}]},"id":5436,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6444:3:20","nodeType":"FunctionDefinition","parameters":{"id":5424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5421,"mutability":"mutable","name":"p0","nameLocation":"6456:2:20","nodeType":"VariableDeclaration","scope":5436,"src":"6448:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5420,"name":"uint256","nodeType":"ElementaryTypeName","src":"6448:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5423,"mutability":"mutable","name":"p1","nameLocation":"6468:2:20","nodeType":"VariableDeclaration","scope":5436,"src":"6460:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5422,"name":"uint256","nodeType":"ElementaryTypeName","src":"6460:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6447:24:20"},"returnParameters":{"id":5425,"nodeType":"ParameterList","parameters":[],"src":"6486:0:20"},"scope":12860,"src":"6435:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5452,"nodeType":"Block","src":"6638:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":5446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6688:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":5447,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"6711:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5448,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5440,"src":"6715:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5444,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6664:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6668:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6664:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6664:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5443,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6648:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5451,"nodeType":"ExpressionStatement","src":"6648:71:20"}]},"id":5453,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6590:3:20","nodeType":"FunctionDefinition","parameters":{"id":5441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5438,"mutability":"mutable","name":"p0","nameLocation":"6602:2:20","nodeType":"VariableDeclaration","scope":5453,"src":"6594:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5437,"name":"uint256","nodeType":"ElementaryTypeName","src":"6594:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5440,"mutability":"mutable","name":"p1","nameLocation":"6620:2:20","nodeType":"VariableDeclaration","scope":5453,"src":"6606:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5439,"name":"string","nodeType":"ElementaryTypeName","src":"6606:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6593:30:20"},"returnParameters":{"id":5442,"nodeType":"ParameterList","parameters":[],"src":"6638:0:20"},"scope":12860,"src":"6581:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5469,"nodeType":"Block","src":"6780:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":5463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6830:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":5464,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"6851:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5465,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5457,"src":"6855:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6806:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6810:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6806:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5460,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6790:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6790:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5468,"nodeType":"ExpressionStatement","src":"6790:69:20"}]},"id":5470,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6741:3:20","nodeType":"FunctionDefinition","parameters":{"id":5458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5455,"mutability":"mutable","name":"p0","nameLocation":"6753:2:20","nodeType":"VariableDeclaration","scope":5470,"src":"6745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5454,"name":"uint256","nodeType":"ElementaryTypeName","src":"6745:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5457,"mutability":"mutable","name":"p1","nameLocation":"6762:2:20","nodeType":"VariableDeclaration","scope":5470,"src":"6757:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5456,"name":"bool","nodeType":"ElementaryTypeName","src":"6757:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6744:21:20"},"returnParameters":{"id":5459,"nodeType":"ParameterList","parameters":[],"src":"6780:0:20"},"scope":12860,"src":"6732:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5486,"nodeType":"Block","src":"6923:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":5480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6973:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":5481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"6997:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"7001:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6949:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6953:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6949:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6949:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6933:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6933:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5485,"nodeType":"ExpressionStatement","src":"6933:72:20"}]},"id":5487,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6881:3:20","nodeType":"FunctionDefinition","parameters":{"id":5475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5472,"mutability":"mutable","name":"p0","nameLocation":"6893:2:20","nodeType":"VariableDeclaration","scope":5487,"src":"6885:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5471,"name":"uint256","nodeType":"ElementaryTypeName","src":"6885:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"p1","nameLocation":"6905:2:20","nodeType":"VariableDeclaration","scope":5487,"src":"6897:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5473,"name":"address","nodeType":"ElementaryTypeName","src":"6897:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6884:24:20"},"returnParameters":{"id":5476,"nodeType":"ParameterList","parameters":[],"src":"6923:0:20"},"scope":12860,"src":"6872:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5503,"nodeType":"Block","src":"7075:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":5497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7125:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":5498,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"7148:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5499,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5491,"src":"7152:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7101:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7105:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7101:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7101:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5494,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7085:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7085:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5502,"nodeType":"ExpressionStatement","src":"7085:71:20"}]},"id":5504,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7027:3:20","nodeType":"FunctionDefinition","parameters":{"id":5492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5489,"mutability":"mutable","name":"p0","nameLocation":"7045:2:20","nodeType":"VariableDeclaration","scope":5504,"src":"7031:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5488,"name":"string","nodeType":"ElementaryTypeName","src":"7031:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5491,"mutability":"mutable","name":"p1","nameLocation":"7057:2:20","nodeType":"VariableDeclaration","scope":5504,"src":"7049:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5490,"name":"uint256","nodeType":"ElementaryTypeName","src":"7049:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7030:30:20"},"returnParameters":{"id":5493,"nodeType":"ParameterList","parameters":[],"src":"7075:0:20"},"scope":12860,"src":"7018:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5520,"nodeType":"Block","src":"7232:87:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":5514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7282:20:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":5515,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"7304:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5516,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"7308:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5512,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7258:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7262:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7258:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7258:53:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5511,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7242:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5519,"nodeType":"ExpressionStatement","src":"7242:70:20"}]},"id":5521,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7178:3:20","nodeType":"FunctionDefinition","parameters":{"id":5509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5506,"mutability":"mutable","name":"p0","nameLocation":"7196:2:20","nodeType":"VariableDeclaration","scope":5521,"src":"7182:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5505,"name":"string","nodeType":"ElementaryTypeName","src":"7182:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5508,"mutability":"mutable","name":"p1","nameLocation":"7214:2:20","nodeType":"VariableDeclaration","scope":5521,"src":"7200:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5507,"name":"string","nodeType":"ElementaryTypeName","src":"7200:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7181:36:20"},"returnParameters":{"id":5510,"nodeType":"ParameterList","parameters":[],"src":"7232:0:20"},"scope":12860,"src":"7169:150:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5537,"nodeType":"Block","src":"7379:85:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":5531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:18:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":5532,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"7449:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5533,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5525,"src":"7453:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7405:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7409:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7405:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7405:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5528,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7389:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7389:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5536,"nodeType":"ExpressionStatement","src":"7389:68:20"}]},"id":5538,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7334:3:20","nodeType":"FunctionDefinition","parameters":{"id":5526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5523,"mutability":"mutable","name":"p0","nameLocation":"7352:2:20","nodeType":"VariableDeclaration","scope":5538,"src":"7338:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5522,"name":"string","nodeType":"ElementaryTypeName","src":"7338:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5525,"mutability":"mutable","name":"p1","nameLocation":"7361:2:20","nodeType":"VariableDeclaration","scope":5538,"src":"7356:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5524,"name":"bool","nodeType":"ElementaryTypeName","src":"7356:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7337:27:20"},"returnParameters":{"id":5527,"nodeType":"ParameterList","parameters":[],"src":"7379:0:20"},"scope":12860,"src":"7325:139:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5554,"nodeType":"Block","src":"7527:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":5548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7577:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":5549,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"7600:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5550,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"7604:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7553:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7557:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7553:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7553:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5545,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7537:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5553,"nodeType":"ExpressionStatement","src":"7537:71:20"}]},"id":5555,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7479:3:20","nodeType":"FunctionDefinition","parameters":{"id":5543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5540,"mutability":"mutable","name":"p0","nameLocation":"7497:2:20","nodeType":"VariableDeclaration","scope":5555,"src":"7483:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5539,"name":"string","nodeType":"ElementaryTypeName","src":"7483:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5542,"mutability":"mutable","name":"p1","nameLocation":"7509:2:20","nodeType":"VariableDeclaration","scope":5555,"src":"7501:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5541,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7482:30:20"},"returnParameters":{"id":5544,"nodeType":"ParameterList","parameters":[],"src":"7527:0:20"},"scope":12860,"src":"7470:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5571,"nodeType":"Block","src":"7669:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":5565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7719:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":5566,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5557,"src":"7740:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5567,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5559,"src":"7744:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7695:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7699:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7695:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7695:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5562,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7679:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5570,"nodeType":"ExpressionStatement","src":"7679:69:20"}]},"id":5572,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7630:3:20","nodeType":"FunctionDefinition","parameters":{"id":5560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5557,"mutability":"mutable","name":"p0","nameLocation":"7639:2:20","nodeType":"VariableDeclaration","scope":5572,"src":"7634:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5556,"name":"bool","nodeType":"ElementaryTypeName","src":"7634:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5559,"mutability":"mutable","name":"p1","nameLocation":"7651:2:20","nodeType":"VariableDeclaration","scope":5572,"src":"7643:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7643:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7633:21:20"},"returnParameters":{"id":5561,"nodeType":"ParameterList","parameters":[],"src":"7669:0:20"},"scope":12860,"src":"7621:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5588,"nodeType":"Block","src":"7815:85:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":5582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7865:18:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":5583,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"7885:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5584,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5576,"src":"7889:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5580,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7841:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7845:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7841:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7841:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5579,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7825:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5587,"nodeType":"ExpressionStatement","src":"7825:68:20"}]},"id":5589,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7770:3:20","nodeType":"FunctionDefinition","parameters":{"id":5577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"mutability":"mutable","name":"p0","nameLocation":"7779:2:20","nodeType":"VariableDeclaration","scope":5589,"src":"7774:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5573,"name":"bool","nodeType":"ElementaryTypeName","src":"7774:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5576,"mutability":"mutable","name":"p1","nameLocation":"7797:2:20","nodeType":"VariableDeclaration","scope":5589,"src":"7783:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5575,"name":"string","nodeType":"ElementaryTypeName","src":"7783:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7773:27:20"},"returnParameters":{"id":5578,"nodeType":"ParameterList","parameters":[],"src":"7815:0:20"},"scope":12860,"src":"7761:139:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5605,"nodeType":"Block","src":"7951:83:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":5599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8001:16:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":5600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"8019:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"8023:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7977:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7981:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7977:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7961:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7961:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5604,"nodeType":"ExpressionStatement","src":"7961:66:20"}]},"id":5606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7915:3:20","nodeType":"FunctionDefinition","parameters":{"id":5594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5591,"mutability":"mutable","name":"p0","nameLocation":"7924:2:20","nodeType":"VariableDeclaration","scope":5606,"src":"7919:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5590,"name":"bool","nodeType":"ElementaryTypeName","src":"7919:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5593,"mutability":"mutable","name":"p1","nameLocation":"7933:2:20","nodeType":"VariableDeclaration","scope":5606,"src":"7928:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5592,"name":"bool","nodeType":"ElementaryTypeName","src":"7928:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7918:18:20"},"returnParameters":{"id":5595,"nodeType":"ParameterList","parameters":[],"src":"7951:0:20"},"scope":12860,"src":"7906:128:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5622,"nodeType":"Block","src":"8088:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":5616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8138:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":5617,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5608,"src":"8159:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5618,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5610,"src":"8163:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5614,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8114:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8118:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8114:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5613,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8098:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8098:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5621,"nodeType":"ExpressionStatement","src":"8098:69:20"}]},"id":5623,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8049:3:20","nodeType":"FunctionDefinition","parameters":{"id":5611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5608,"mutability":"mutable","name":"p0","nameLocation":"8058:2:20","nodeType":"VariableDeclaration","scope":5623,"src":"8053:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5607,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5610,"mutability":"mutable","name":"p1","nameLocation":"8070:2:20","nodeType":"VariableDeclaration","scope":5623,"src":"8062:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5609,"name":"address","nodeType":"ElementaryTypeName","src":"8062:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8052:21:20"},"returnParameters":{"id":5612,"nodeType":"ParameterList","parameters":[],"src":"8088:0:20"},"scope":12860,"src":"8040:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5639,"nodeType":"Block","src":"8231:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":5633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8281:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":5634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"8305:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5627,"src":"8309:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8257:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8261:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8257:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8241:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8241:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5638,"nodeType":"ExpressionStatement","src":"8241:72:20"}]},"id":5640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8189:3:20","nodeType":"FunctionDefinition","parameters":{"id":5628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5625,"mutability":"mutable","name":"p0","nameLocation":"8201:2:20","nodeType":"VariableDeclaration","scope":5640,"src":"8193:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5624,"name":"address","nodeType":"ElementaryTypeName","src":"8193:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5627,"mutability":"mutable","name":"p1","nameLocation":"8213:2:20","nodeType":"VariableDeclaration","scope":5640,"src":"8205:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5626,"name":"uint256","nodeType":"ElementaryTypeName","src":"8205:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8192:24:20"},"returnParameters":{"id":5629,"nodeType":"ParameterList","parameters":[],"src":"8231:0:20"},"scope":12860,"src":"8180:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5656,"nodeType":"Block","src":"8383:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":5650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8433:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":5651,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"8456:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5652,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5644,"src":"8460:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5648,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8409:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8413:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8409:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8409:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5647,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8393:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8393:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5655,"nodeType":"ExpressionStatement","src":"8393:71:20"}]},"id":5657,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8335:3:20","nodeType":"FunctionDefinition","parameters":{"id":5645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5642,"mutability":"mutable","name":"p0","nameLocation":"8347:2:20","nodeType":"VariableDeclaration","scope":5657,"src":"8339:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5641,"name":"address","nodeType":"ElementaryTypeName","src":"8339:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5644,"mutability":"mutable","name":"p1","nameLocation":"8365:2:20","nodeType":"VariableDeclaration","scope":5657,"src":"8351:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5643,"name":"string","nodeType":"ElementaryTypeName","src":"8351:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8338:30:20"},"returnParameters":{"id":5646,"nodeType":"ParameterList","parameters":[],"src":"8383:0:20"},"scope":12860,"src":"8326:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5673,"nodeType":"Block","src":"8525:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":5667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8575:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":5668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"8596:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"8600:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8551:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8555:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8551:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8551:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8535:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5672,"nodeType":"ExpressionStatement","src":"8535:69:20"}]},"id":5674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8486:3:20","nodeType":"FunctionDefinition","parameters":{"id":5662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5659,"mutability":"mutable","name":"p0","nameLocation":"8498:2:20","nodeType":"VariableDeclaration","scope":5674,"src":"8490:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5658,"name":"address","nodeType":"ElementaryTypeName","src":"8490:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5661,"mutability":"mutable","name":"p1","nameLocation":"8507:2:20","nodeType":"VariableDeclaration","scope":5674,"src":"8502:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5660,"name":"bool","nodeType":"ElementaryTypeName","src":"8502:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8489:21:20"},"returnParameters":{"id":5663,"nodeType":"ParameterList","parameters":[],"src":"8525:0:20"},"scope":12860,"src":"8477:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5690,"nodeType":"Block","src":"8668:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":5684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8718:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":5685,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"8742:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5686,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"8746:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8694:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8698:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8694:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8694:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5681,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8678:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8678:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5689,"nodeType":"ExpressionStatement","src":"8678:72:20"}]},"id":5691,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8626:3:20","nodeType":"FunctionDefinition","parameters":{"id":5679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5676,"mutability":"mutable","name":"p0","nameLocation":"8638:2:20","nodeType":"VariableDeclaration","scope":5691,"src":"8630:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5675,"name":"address","nodeType":"ElementaryTypeName","src":"8630:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5678,"mutability":"mutable","name":"p1","nameLocation":"8650:2:20","nodeType":"VariableDeclaration","scope":5691,"src":"8642:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5677,"name":"address","nodeType":"ElementaryTypeName","src":"8642:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8629:24:20"},"returnParameters":{"id":5680,"nodeType":"ParameterList","parameters":[],"src":"8668:0:20"},"scope":12860,"src":"8617:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5710,"nodeType":"Block","src":"8826:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":5703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8876:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":5704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5693,"src":"8908:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5695,"src":"8912:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"8916:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8852:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8856:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8852:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8852:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8836:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8836:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5709,"nodeType":"ExpressionStatement","src":"8836:84:20"}]},"id":5711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8772:3:20","nodeType":"FunctionDefinition","parameters":{"id":5698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5693,"mutability":"mutable","name":"p0","nameLocation":"8784:2:20","nodeType":"VariableDeclaration","scope":5711,"src":"8776:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5692,"name":"uint256","nodeType":"ElementaryTypeName","src":"8776:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5695,"mutability":"mutable","name":"p1","nameLocation":"8796:2:20","nodeType":"VariableDeclaration","scope":5711,"src":"8788:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5694,"name":"uint256","nodeType":"ElementaryTypeName","src":"8788:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5697,"mutability":"mutable","name":"p2","nameLocation":"8808:2:20","nodeType":"VariableDeclaration","scope":5711,"src":"8800:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8800:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8775:36:20"},"returnParameters":{"id":5699,"nodeType":"ParameterList","parameters":[],"src":"8826:0:20"},"scope":12860,"src":"8763:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5730,"nodeType":"Block","src":"9002:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":5723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9052:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":5724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5713,"src":"9083:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5715,"src":"9087:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5717,"src":"9091:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9028:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9032:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9028:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9028:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9012:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5729,"nodeType":"ExpressionStatement","src":"9012:83:20"}]},"id":5731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8942:3:20","nodeType":"FunctionDefinition","parameters":{"id":5718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5713,"mutability":"mutable","name":"p0","nameLocation":"8954:2:20","nodeType":"VariableDeclaration","scope":5731,"src":"8946:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5712,"name":"uint256","nodeType":"ElementaryTypeName","src":"8946:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5715,"mutability":"mutable","name":"p1","nameLocation":"8966:2:20","nodeType":"VariableDeclaration","scope":5731,"src":"8958:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5714,"name":"uint256","nodeType":"ElementaryTypeName","src":"8958:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5717,"mutability":"mutable","name":"p2","nameLocation":"8984:2:20","nodeType":"VariableDeclaration","scope":5731,"src":"8970:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5716,"name":"string","nodeType":"ElementaryTypeName","src":"8970:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8945:42:20"},"returnParameters":{"id":5719,"nodeType":"ParameterList","parameters":[],"src":"9002:0:20"},"scope":12860,"src":"8933:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5750,"nodeType":"Block","src":"9168:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":5743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9218:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":5744,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5733,"src":"9247:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5745,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5735,"src":"9251:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5746,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"9255:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9194:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9198:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9194:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9194:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5740,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9178:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9178:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5749,"nodeType":"ExpressionStatement","src":"9178:81:20"}]},"id":5751,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9117:3:20","nodeType":"FunctionDefinition","parameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5733,"mutability":"mutable","name":"p0","nameLocation":"9129:2:20","nodeType":"VariableDeclaration","scope":5751,"src":"9121:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5732,"name":"uint256","nodeType":"ElementaryTypeName","src":"9121:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5735,"mutability":"mutable","name":"p1","nameLocation":"9141:2:20","nodeType":"VariableDeclaration","scope":5751,"src":"9133:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5734,"name":"uint256","nodeType":"ElementaryTypeName","src":"9133:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5737,"mutability":"mutable","name":"p2","nameLocation":"9150:2:20","nodeType":"VariableDeclaration","scope":5751,"src":"9145:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5736,"name":"bool","nodeType":"ElementaryTypeName","src":"9145:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9120:33:20"},"returnParameters":{"id":5739,"nodeType":"ParameterList","parameters":[],"src":"9168:0:20"},"scope":12860,"src":"9108:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5770,"nodeType":"Block","src":"9335:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":5763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9385:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":5764,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"9417:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5765,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"9421:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5766,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"9425:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9361:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9365:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9361:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9361:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5760,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9345:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5769,"nodeType":"ExpressionStatement","src":"9345:84:20"}]},"id":5771,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9281:3:20","nodeType":"FunctionDefinition","parameters":{"id":5758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5753,"mutability":"mutable","name":"p0","nameLocation":"9293:2:20","nodeType":"VariableDeclaration","scope":5771,"src":"9285:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5752,"name":"uint256","nodeType":"ElementaryTypeName","src":"9285:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5755,"mutability":"mutable","name":"p1","nameLocation":"9305:2:20","nodeType":"VariableDeclaration","scope":5771,"src":"9297:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5754,"name":"uint256","nodeType":"ElementaryTypeName","src":"9297:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5757,"mutability":"mutable","name":"p2","nameLocation":"9317:2:20","nodeType":"VariableDeclaration","scope":5771,"src":"9309:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5756,"name":"address","nodeType":"ElementaryTypeName","src":"9309:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9284:36:20"},"returnParameters":{"id":5759,"nodeType":"ParameterList","parameters":[],"src":"9335:0:20"},"scope":12860,"src":"9272:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5790,"nodeType":"Block","src":"9511:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":5783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9561:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":5784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5773,"src":"9592:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5775,"src":"9596:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5777,"src":"9600:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9537:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9541:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9537:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9537:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9521:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9521:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5789,"nodeType":"ExpressionStatement","src":"9521:83:20"}]},"id":5791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9451:3:20","nodeType":"FunctionDefinition","parameters":{"id":5778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5773,"mutability":"mutable","name":"p0","nameLocation":"9463:2:20","nodeType":"VariableDeclaration","scope":5791,"src":"9455:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5772,"name":"uint256","nodeType":"ElementaryTypeName","src":"9455:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5775,"mutability":"mutable","name":"p1","nameLocation":"9481:2:20","nodeType":"VariableDeclaration","scope":5791,"src":"9467:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5774,"name":"string","nodeType":"ElementaryTypeName","src":"9467:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5777,"mutability":"mutable","name":"p2","nameLocation":"9493:2:20","nodeType":"VariableDeclaration","scope":5791,"src":"9485:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5776,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9454:42:20"},"returnParameters":{"id":5779,"nodeType":"ParameterList","parameters":[],"src":"9511:0:20"},"scope":12860,"src":"9442:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5810,"nodeType":"Block","src":"9692:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":5803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9742:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":5804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"9772:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5795,"src":"9776:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5797,"src":"9780:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9718:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9722:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9718:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9718:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9702:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5809,"nodeType":"ExpressionStatement","src":"9702:82:20"}]},"id":5811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9626:3:20","nodeType":"FunctionDefinition","parameters":{"id":5798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5793,"mutability":"mutable","name":"p0","nameLocation":"9638:2:20","nodeType":"VariableDeclaration","scope":5811,"src":"9630:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"9630:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5795,"mutability":"mutable","name":"p1","nameLocation":"9656:2:20","nodeType":"VariableDeclaration","scope":5811,"src":"9642:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5794,"name":"string","nodeType":"ElementaryTypeName","src":"9642:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5797,"mutability":"mutable","name":"p2","nameLocation":"9674:2:20","nodeType":"VariableDeclaration","scope":5811,"src":"9660:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5796,"name":"string","nodeType":"ElementaryTypeName","src":"9660:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9629:48:20"},"returnParameters":{"id":5799,"nodeType":"ParameterList","parameters":[],"src":"9692:0:20"},"scope":12860,"src":"9617:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5830,"nodeType":"Block","src":"9863:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":5823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9913:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":5824,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"9941:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5825,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"9945:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5826,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"9949:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9889:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9893:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9889:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5820,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9873:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5829,"nodeType":"ExpressionStatement","src":"9873:80:20"}]},"id":5831,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9806:3:20","nodeType":"FunctionDefinition","parameters":{"id":5818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5813,"mutability":"mutable","name":"p0","nameLocation":"9818:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"9810:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5812,"name":"uint256","nodeType":"ElementaryTypeName","src":"9810:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5815,"mutability":"mutable","name":"p1","nameLocation":"9836:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"9822:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5814,"name":"string","nodeType":"ElementaryTypeName","src":"9822:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5817,"mutability":"mutable","name":"p2","nameLocation":"9845:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"9840:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5816,"name":"bool","nodeType":"ElementaryTypeName","src":"9840:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9809:39:20"},"returnParameters":{"id":5819,"nodeType":"ParameterList","parameters":[],"src":"9863:0:20"},"scope":12860,"src":"9797:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5850,"nodeType":"Block","src":"10035:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":5843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10085:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":5844,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"10116:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5845,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5835,"src":"10120:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5846,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5837,"src":"10124:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10065:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10061:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5840,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10045:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10045:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5849,"nodeType":"ExpressionStatement","src":"10045:83:20"}]},"id":5851,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9975:3:20","nodeType":"FunctionDefinition","parameters":{"id":5838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5833,"mutability":"mutable","name":"p0","nameLocation":"9987:2:20","nodeType":"VariableDeclaration","scope":5851,"src":"9979:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5832,"name":"uint256","nodeType":"ElementaryTypeName","src":"9979:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5835,"mutability":"mutable","name":"p1","nameLocation":"10005:2:20","nodeType":"VariableDeclaration","scope":5851,"src":"9991:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5834,"name":"string","nodeType":"ElementaryTypeName","src":"9991:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5837,"mutability":"mutable","name":"p2","nameLocation":"10017:2:20","nodeType":"VariableDeclaration","scope":5851,"src":"10009:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5836,"name":"address","nodeType":"ElementaryTypeName","src":"10009:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9978:42:20"},"returnParameters":{"id":5839,"nodeType":"ParameterList","parameters":[],"src":"10035:0:20"},"scope":12860,"src":"9966:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5870,"nodeType":"Block","src":"10201:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":5863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10251:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":5864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5853,"src":"10280:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"10284:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"10288:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10227:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10231:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10227:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10227:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10211:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10211:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5869,"nodeType":"ExpressionStatement","src":"10211:81:20"}]},"id":5871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10150:3:20","nodeType":"FunctionDefinition","parameters":{"id":5858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5853,"mutability":"mutable","name":"p0","nameLocation":"10162:2:20","nodeType":"VariableDeclaration","scope":5871,"src":"10154:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5852,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5855,"mutability":"mutable","name":"p1","nameLocation":"10171:2:20","nodeType":"VariableDeclaration","scope":5871,"src":"10166:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5854,"name":"bool","nodeType":"ElementaryTypeName","src":"10166:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5857,"mutability":"mutable","name":"p2","nameLocation":"10183:2:20","nodeType":"VariableDeclaration","scope":5871,"src":"10175:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10175:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:33:20"},"returnParameters":{"id":5859,"nodeType":"ParameterList","parameters":[],"src":"10201:0:20"},"scope":12860,"src":"10141:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5890,"nodeType":"Block","src":"10371:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":5883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10421:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":5884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"10449:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"10453:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"10457:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10397:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10401:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10397:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10397:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10381:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10381:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5889,"nodeType":"ExpressionStatement","src":"10381:80:20"}]},"id":5891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10314:3:20","nodeType":"FunctionDefinition","parameters":{"id":5878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5873,"mutability":"mutable","name":"p0","nameLocation":"10326:2:20","nodeType":"VariableDeclaration","scope":5891,"src":"10318:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5872,"name":"uint256","nodeType":"ElementaryTypeName","src":"10318:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5875,"mutability":"mutable","name":"p1","nameLocation":"10335:2:20","nodeType":"VariableDeclaration","scope":5891,"src":"10330:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5874,"name":"bool","nodeType":"ElementaryTypeName","src":"10330:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5877,"mutability":"mutable","name":"p2","nameLocation":"10353:2:20","nodeType":"VariableDeclaration","scope":5891,"src":"10339:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5876,"name":"string","nodeType":"ElementaryTypeName","src":"10339:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10317:39:20"},"returnParameters":{"id":5879,"nodeType":"ParameterList","parameters":[],"src":"10371:0:20"},"scope":12860,"src":"10305:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5910,"nodeType":"Block","src":"10531:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":5903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10581:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":5904,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5893,"src":"10607:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5905,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"10611:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5906,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"10615:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5901,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10557:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10561:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10557:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10557:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5900,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10541:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10541:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5909,"nodeType":"ExpressionStatement","src":"10541:78:20"}]},"id":5911,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10483:3:20","nodeType":"FunctionDefinition","parameters":{"id":5898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5893,"mutability":"mutable","name":"p0","nameLocation":"10495:2:20","nodeType":"VariableDeclaration","scope":5911,"src":"10487:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5892,"name":"uint256","nodeType":"ElementaryTypeName","src":"10487:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5895,"mutability":"mutable","name":"p1","nameLocation":"10504:2:20","nodeType":"VariableDeclaration","scope":5911,"src":"10499:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5894,"name":"bool","nodeType":"ElementaryTypeName","src":"10499:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5897,"mutability":"mutable","name":"p2","nameLocation":"10513:2:20","nodeType":"VariableDeclaration","scope":5911,"src":"10508:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5896,"name":"bool","nodeType":"ElementaryTypeName","src":"10508:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10486:30:20"},"returnParameters":{"id":5899,"nodeType":"ParameterList","parameters":[],"src":"10531:0:20"},"scope":12860,"src":"10474:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5930,"nodeType":"Block","src":"10692:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":5923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10742:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":5924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5913,"src":"10771:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5925,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5915,"src":"10775:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5926,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"10779:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10718:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10722:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10718:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10718:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10702:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10702:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5929,"nodeType":"ExpressionStatement","src":"10702:81:20"}]},"id":5931,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10641:3:20","nodeType":"FunctionDefinition","parameters":{"id":5918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5913,"mutability":"mutable","name":"p0","nameLocation":"10653:2:20","nodeType":"VariableDeclaration","scope":5931,"src":"10645:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5912,"name":"uint256","nodeType":"ElementaryTypeName","src":"10645:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5915,"mutability":"mutable","name":"p1","nameLocation":"10662:2:20","nodeType":"VariableDeclaration","scope":5931,"src":"10657:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5914,"name":"bool","nodeType":"ElementaryTypeName","src":"10657:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5917,"mutability":"mutable","name":"p2","nameLocation":"10674:2:20","nodeType":"VariableDeclaration","scope":5931,"src":"10666:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5916,"name":"address","nodeType":"ElementaryTypeName","src":"10666:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10644:33:20"},"returnParameters":{"id":5919,"nodeType":"ParameterList","parameters":[],"src":"10692:0:20"},"scope":12860,"src":"10632:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5950,"nodeType":"Block","src":"10859:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":5943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10909:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":5944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"10941:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"10945:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"10949:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10885:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10889:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10885:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10885:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10869:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10869:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5949,"nodeType":"ExpressionStatement","src":"10869:84:20"}]},"id":5951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10805:3:20","nodeType":"FunctionDefinition","parameters":{"id":5938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5933,"mutability":"mutable","name":"p0","nameLocation":"10817:2:20","nodeType":"VariableDeclaration","scope":5951,"src":"10809:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5932,"name":"uint256","nodeType":"ElementaryTypeName","src":"10809:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5935,"mutability":"mutable","name":"p1","nameLocation":"10829:2:20","nodeType":"VariableDeclaration","scope":5951,"src":"10821:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"10821:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"p2","nameLocation":"10841:2:20","nodeType":"VariableDeclaration","scope":5951,"src":"10833:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5936,"name":"uint256","nodeType":"ElementaryTypeName","src":"10833:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10808:36:20"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[],"src":"10859:0:20"},"scope":12860,"src":"10796:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5970,"nodeType":"Block","src":"11035:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":5963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11085:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":5964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"11116:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"11120:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5957,"src":"11124:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11065:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11061:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11061:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11045:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5969,"nodeType":"ExpressionStatement","src":"11045:83:20"}]},"id":5971,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10975:3:20","nodeType":"FunctionDefinition","parameters":{"id":5958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5953,"mutability":"mutable","name":"p0","nameLocation":"10987:2:20","nodeType":"VariableDeclaration","scope":5971,"src":"10979:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5952,"name":"uint256","nodeType":"ElementaryTypeName","src":"10979:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5955,"mutability":"mutable","name":"p1","nameLocation":"10999:2:20","nodeType":"VariableDeclaration","scope":5971,"src":"10991:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5954,"name":"address","nodeType":"ElementaryTypeName","src":"10991:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5957,"mutability":"mutable","name":"p2","nameLocation":"11017:2:20","nodeType":"VariableDeclaration","scope":5971,"src":"11003:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5956,"name":"string","nodeType":"ElementaryTypeName","src":"11003:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10978:42:20"},"returnParameters":{"id":5959,"nodeType":"ParameterList","parameters":[],"src":"11035:0:20"},"scope":12860,"src":"10966:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5990,"nodeType":"Block","src":"11201:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":5983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11251:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":5984,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"11280:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5985,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5975,"src":"11284:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5986,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5977,"src":"11288:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11227:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11231:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11227:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5980,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11211:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11211:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5989,"nodeType":"ExpressionStatement","src":"11211:81:20"}]},"id":5991,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11150:3:20","nodeType":"FunctionDefinition","parameters":{"id":5978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5973,"mutability":"mutable","name":"p0","nameLocation":"11162:2:20","nodeType":"VariableDeclaration","scope":5991,"src":"11154:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5972,"name":"uint256","nodeType":"ElementaryTypeName","src":"11154:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5975,"mutability":"mutable","name":"p1","nameLocation":"11174:2:20","nodeType":"VariableDeclaration","scope":5991,"src":"11166:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5974,"name":"address","nodeType":"ElementaryTypeName","src":"11166:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5977,"mutability":"mutable","name":"p2","nameLocation":"11183:2:20","nodeType":"VariableDeclaration","scope":5991,"src":"11178:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5976,"name":"bool","nodeType":"ElementaryTypeName","src":"11178:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11153:33:20"},"returnParameters":{"id":5979,"nodeType":"ParameterList","parameters":[],"src":"11201:0:20"},"scope":12860,"src":"11141:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6010,"nodeType":"Block","src":"11368:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":6003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11418:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":6004,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5993,"src":"11450:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6005,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"11454:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6006,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"11458:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6001,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11394:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11398:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11394:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11394:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6000,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11378:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11378:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6009,"nodeType":"ExpressionStatement","src":"11378:84:20"}]},"id":6011,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11314:3:20","nodeType":"FunctionDefinition","parameters":{"id":5998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5993,"mutability":"mutable","name":"p0","nameLocation":"11326:2:20","nodeType":"VariableDeclaration","scope":6011,"src":"11318:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5992,"name":"uint256","nodeType":"ElementaryTypeName","src":"11318:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5995,"mutability":"mutable","name":"p1","nameLocation":"11338:2:20","nodeType":"VariableDeclaration","scope":6011,"src":"11330:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5994,"name":"address","nodeType":"ElementaryTypeName","src":"11330:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5997,"mutability":"mutable","name":"p2","nameLocation":"11350:2:20","nodeType":"VariableDeclaration","scope":6011,"src":"11342:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5996,"name":"address","nodeType":"ElementaryTypeName","src":"11342:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11317:36:20"},"returnParameters":{"id":5999,"nodeType":"ParameterList","parameters":[],"src":"11368:0:20"},"scope":12860,"src":"11305:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6030,"nodeType":"Block","src":"11544:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":6023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11594:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":6024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"11625:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6015,"src":"11629:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"11633:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11570:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11574:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11570:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11570:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11554:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11554:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6029,"nodeType":"ExpressionStatement","src":"11554:83:20"}]},"id":6031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11484:3:20","nodeType":"FunctionDefinition","parameters":{"id":6018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6013,"mutability":"mutable","name":"p0","nameLocation":"11502:2:20","nodeType":"VariableDeclaration","scope":6031,"src":"11488:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6012,"name":"string","nodeType":"ElementaryTypeName","src":"11488:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6015,"mutability":"mutable","name":"p1","nameLocation":"11514:2:20","nodeType":"VariableDeclaration","scope":6031,"src":"11506:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6014,"name":"uint256","nodeType":"ElementaryTypeName","src":"11506:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6017,"mutability":"mutable","name":"p2","nameLocation":"11526:2:20","nodeType":"VariableDeclaration","scope":6031,"src":"11518:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6016,"name":"uint256","nodeType":"ElementaryTypeName","src":"11518:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11487:42:20"},"returnParameters":{"id":6019,"nodeType":"ParameterList","parameters":[],"src":"11544:0:20"},"scope":12860,"src":"11475:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6050,"nodeType":"Block","src":"11725:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":6043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":6044,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"11805:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6045,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"11809:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6046,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6037,"src":"11813:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11751:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11755:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11751:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11751:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6040,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11735:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11735:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6049,"nodeType":"ExpressionStatement","src":"11735:82:20"}]},"id":6051,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11659:3:20","nodeType":"FunctionDefinition","parameters":{"id":6038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6033,"mutability":"mutable","name":"p0","nameLocation":"11677:2:20","nodeType":"VariableDeclaration","scope":6051,"src":"11663:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6032,"name":"string","nodeType":"ElementaryTypeName","src":"11663:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6035,"mutability":"mutable","name":"p1","nameLocation":"11689:2:20","nodeType":"VariableDeclaration","scope":6051,"src":"11681:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6034,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6037,"mutability":"mutable","name":"p2","nameLocation":"11707:2:20","nodeType":"VariableDeclaration","scope":6051,"src":"11693:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6036,"name":"string","nodeType":"ElementaryTypeName","src":"11693:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11662:48:20"},"returnParameters":{"id":6039,"nodeType":"ParameterList","parameters":[],"src":"11725:0:20"},"scope":12860,"src":"11650:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6070,"nodeType":"Block","src":"11896:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":6063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11946:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":6064,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"11974:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6065,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"11978:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6066,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"11982:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11922:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11926:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11922:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11922:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6060,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11906:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11906:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6069,"nodeType":"ExpressionStatement","src":"11906:80:20"}]},"id":6071,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11839:3:20","nodeType":"FunctionDefinition","parameters":{"id":6058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6053,"mutability":"mutable","name":"p0","nameLocation":"11857:2:20","nodeType":"VariableDeclaration","scope":6071,"src":"11843:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6052,"name":"string","nodeType":"ElementaryTypeName","src":"11843:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6055,"mutability":"mutable","name":"p1","nameLocation":"11869:2:20","nodeType":"VariableDeclaration","scope":6071,"src":"11861:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6054,"name":"uint256","nodeType":"ElementaryTypeName","src":"11861:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6057,"mutability":"mutable","name":"p2","nameLocation":"11878:2:20","nodeType":"VariableDeclaration","scope":6071,"src":"11873:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6056,"name":"bool","nodeType":"ElementaryTypeName","src":"11873:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11842:39:20"},"returnParameters":{"id":6059,"nodeType":"ParameterList","parameters":[],"src":"11896:0:20"},"scope":12860,"src":"11830:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6090,"nodeType":"Block","src":"12068:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":6083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12118:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":6084,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"12149:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6085,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"12153:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6086,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"12157:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12094:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12098:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12094:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12094:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6080,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12078:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6089,"nodeType":"ExpressionStatement","src":"12078:83:20"}]},"id":6091,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12008:3:20","nodeType":"FunctionDefinition","parameters":{"id":6078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6073,"mutability":"mutable","name":"p0","nameLocation":"12026:2:20","nodeType":"VariableDeclaration","scope":6091,"src":"12012:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6072,"name":"string","nodeType":"ElementaryTypeName","src":"12012:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6075,"mutability":"mutable","name":"p1","nameLocation":"12038:2:20","nodeType":"VariableDeclaration","scope":6091,"src":"12030:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6074,"name":"uint256","nodeType":"ElementaryTypeName","src":"12030:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6077,"mutability":"mutable","name":"p2","nameLocation":"12050:2:20","nodeType":"VariableDeclaration","scope":6091,"src":"12042:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6076,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12011:42:20"},"returnParameters":{"id":6079,"nodeType":"ParameterList","parameters":[],"src":"12068:0:20"},"scope":12860,"src":"11999:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6110,"nodeType":"Block","src":"12249:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":6103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12299:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":6104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"12329:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"12333:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6106,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"12337:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12275:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12279:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12275:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12275:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12259:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12259:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6109,"nodeType":"ExpressionStatement","src":"12259:82:20"}]},"id":6111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12183:3:20","nodeType":"FunctionDefinition","parameters":{"id":6098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6093,"mutability":"mutable","name":"p0","nameLocation":"12201:2:20","nodeType":"VariableDeclaration","scope":6111,"src":"12187:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6092,"name":"string","nodeType":"ElementaryTypeName","src":"12187:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6095,"mutability":"mutable","name":"p1","nameLocation":"12219:2:20","nodeType":"VariableDeclaration","scope":6111,"src":"12205:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6094,"name":"string","nodeType":"ElementaryTypeName","src":"12205:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6097,"mutability":"mutable","name":"p2","nameLocation":"12231:2:20","nodeType":"VariableDeclaration","scope":6111,"src":"12223:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6096,"name":"uint256","nodeType":"ElementaryTypeName","src":"12223:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12186:48:20"},"returnParameters":{"id":6099,"nodeType":"ParameterList","parameters":[],"src":"12249:0:20"},"scope":12860,"src":"12174:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6130,"nodeType":"Block","src":"12435:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":6123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12485:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":6124,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6113,"src":"12514:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6125,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6115,"src":"12518:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6126,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"12522:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12461:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12465:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12461:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12461:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6120,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12445:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12445:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6129,"nodeType":"ExpressionStatement","src":"12445:81:20"}]},"id":6131,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12363:3:20","nodeType":"FunctionDefinition","parameters":{"id":6118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6113,"mutability":"mutable","name":"p0","nameLocation":"12381:2:20","nodeType":"VariableDeclaration","scope":6131,"src":"12367:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6112,"name":"string","nodeType":"ElementaryTypeName","src":"12367:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6115,"mutability":"mutable","name":"p1","nameLocation":"12399:2:20","nodeType":"VariableDeclaration","scope":6131,"src":"12385:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6114,"name":"string","nodeType":"ElementaryTypeName","src":"12385:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6117,"mutability":"mutable","name":"p2","nameLocation":"12417:2:20","nodeType":"VariableDeclaration","scope":6131,"src":"12403:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6116,"name":"string","nodeType":"ElementaryTypeName","src":"12403:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12366:54:20"},"returnParameters":{"id":6119,"nodeType":"ParameterList","parameters":[],"src":"12435:0:20"},"scope":12860,"src":"12354:179:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6150,"nodeType":"Block","src":"12611:96:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":6143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12661:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":6144,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"12688:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6145,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"12692:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6146,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6137,"src":"12696:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6141,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12637:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12641:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12637:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12637:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6140,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12621:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12621:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6149,"nodeType":"ExpressionStatement","src":"12621:79:20"}]},"id":6151,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12548:3:20","nodeType":"FunctionDefinition","parameters":{"id":6138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6133,"mutability":"mutable","name":"p0","nameLocation":"12566:2:20","nodeType":"VariableDeclaration","scope":6151,"src":"12552:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6132,"name":"string","nodeType":"ElementaryTypeName","src":"12552:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6135,"mutability":"mutable","name":"p1","nameLocation":"12584:2:20","nodeType":"VariableDeclaration","scope":6151,"src":"12570:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6134,"name":"string","nodeType":"ElementaryTypeName","src":"12570:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6137,"mutability":"mutable","name":"p2","nameLocation":"12593:2:20","nodeType":"VariableDeclaration","scope":6151,"src":"12588:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6136,"name":"bool","nodeType":"ElementaryTypeName","src":"12588:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12551:45:20"},"returnParameters":{"id":6139,"nodeType":"ParameterList","parameters":[],"src":"12611:0:20"},"scope":12860,"src":"12539:168:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6170,"nodeType":"Block","src":"12788:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":6163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12838:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":6164,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"12868:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6165,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"12872:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6166,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6157,"src":"12876:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12814:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12818:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12814:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12814:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6160,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12798:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12798:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6169,"nodeType":"ExpressionStatement","src":"12798:82:20"}]},"id":6171,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12722:3:20","nodeType":"FunctionDefinition","parameters":{"id":6158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6153,"mutability":"mutable","name":"p0","nameLocation":"12740:2:20","nodeType":"VariableDeclaration","scope":6171,"src":"12726:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6152,"name":"string","nodeType":"ElementaryTypeName","src":"12726:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6155,"mutability":"mutable","name":"p1","nameLocation":"12758:2:20","nodeType":"VariableDeclaration","scope":6171,"src":"12744:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6154,"name":"string","nodeType":"ElementaryTypeName","src":"12744:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6157,"mutability":"mutable","name":"p2","nameLocation":"12770:2:20","nodeType":"VariableDeclaration","scope":6171,"src":"12762:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6156,"name":"address","nodeType":"ElementaryTypeName","src":"12762:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12725:48:20"},"returnParameters":{"id":6159,"nodeType":"ParameterList","parameters":[],"src":"12788:0:20"},"scope":12860,"src":"12713:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6190,"nodeType":"Block","src":"12959:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":6183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13009:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":6184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6173,"src":"13037:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"13041:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6177,"src":"13045:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12985:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12989:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12985:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12985:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12969:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12969:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6189,"nodeType":"ExpressionStatement","src":"12969:80:20"}]},"id":6191,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12902:3:20","nodeType":"FunctionDefinition","parameters":{"id":6178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6173,"mutability":"mutable","name":"p0","nameLocation":"12920:2:20","nodeType":"VariableDeclaration","scope":6191,"src":"12906:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6172,"name":"string","nodeType":"ElementaryTypeName","src":"12906:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6175,"mutability":"mutable","name":"p1","nameLocation":"12929:2:20","nodeType":"VariableDeclaration","scope":6191,"src":"12924:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6174,"name":"bool","nodeType":"ElementaryTypeName","src":"12924:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6177,"mutability":"mutable","name":"p2","nameLocation":"12941:2:20","nodeType":"VariableDeclaration","scope":6191,"src":"12933:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6176,"name":"uint256","nodeType":"ElementaryTypeName","src":"12933:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12905:39:20"},"returnParameters":{"id":6179,"nodeType":"ParameterList","parameters":[],"src":"12959:0:20"},"scope":12860,"src":"12893:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6210,"nodeType":"Block","src":"13134:96:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":6203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13184:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":6204,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"13211:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6205,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"13215:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6206,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"13219:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13160:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13164:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13160:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13160:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6200,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13144:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13144:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6209,"nodeType":"ExpressionStatement","src":"13144:79:20"}]},"id":6211,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13071:3:20","nodeType":"FunctionDefinition","parameters":{"id":6198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6193,"mutability":"mutable","name":"p0","nameLocation":"13089:2:20","nodeType":"VariableDeclaration","scope":6211,"src":"13075:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6192,"name":"string","nodeType":"ElementaryTypeName","src":"13075:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6195,"mutability":"mutable","name":"p1","nameLocation":"13098:2:20","nodeType":"VariableDeclaration","scope":6211,"src":"13093:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6194,"name":"bool","nodeType":"ElementaryTypeName","src":"13093:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6197,"mutability":"mutable","name":"p2","nameLocation":"13116:2:20","nodeType":"VariableDeclaration","scope":6211,"src":"13102:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6196,"name":"string","nodeType":"ElementaryTypeName","src":"13102:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13074:45:20"},"returnParameters":{"id":6199,"nodeType":"ParameterList","parameters":[],"src":"13134:0:20"},"scope":12860,"src":"13062:168:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6230,"nodeType":"Block","src":"13299:94:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":6223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13349:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":6224,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6213,"src":"13374:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6225,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6215,"src":"13378:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6226,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"13382:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6221,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13325:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13329:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13325:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13325:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6220,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13309:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13309:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6229,"nodeType":"ExpressionStatement","src":"13309:77:20"}]},"id":6231,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13245:3:20","nodeType":"FunctionDefinition","parameters":{"id":6218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6213,"mutability":"mutable","name":"p0","nameLocation":"13263:2:20","nodeType":"VariableDeclaration","scope":6231,"src":"13249:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6212,"name":"string","nodeType":"ElementaryTypeName","src":"13249:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6215,"mutability":"mutable","name":"p1","nameLocation":"13272:2:20","nodeType":"VariableDeclaration","scope":6231,"src":"13267:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6214,"name":"bool","nodeType":"ElementaryTypeName","src":"13267:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6217,"mutability":"mutable","name":"p2","nameLocation":"13281:2:20","nodeType":"VariableDeclaration","scope":6231,"src":"13276:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6216,"name":"bool","nodeType":"ElementaryTypeName","src":"13276:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13248:36:20"},"returnParameters":{"id":6219,"nodeType":"ParameterList","parameters":[],"src":"13299:0:20"},"scope":12860,"src":"13236:157:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6250,"nodeType":"Block","src":"13465:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":6243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13515:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":6244,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6233,"src":"13543:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6245,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"13547:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6246,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6237,"src":"13551:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13491:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13495:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13491:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6240,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13475:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13475:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6249,"nodeType":"ExpressionStatement","src":"13475:80:20"}]},"id":6251,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13408:3:20","nodeType":"FunctionDefinition","parameters":{"id":6238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6233,"mutability":"mutable","name":"p0","nameLocation":"13426:2:20","nodeType":"VariableDeclaration","scope":6251,"src":"13412:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6232,"name":"string","nodeType":"ElementaryTypeName","src":"13412:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6235,"mutability":"mutable","name":"p1","nameLocation":"13435:2:20","nodeType":"VariableDeclaration","scope":6251,"src":"13430:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6234,"name":"bool","nodeType":"ElementaryTypeName","src":"13430:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6237,"mutability":"mutable","name":"p2","nameLocation":"13447:2:20","nodeType":"VariableDeclaration","scope":6251,"src":"13439:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6236,"name":"address","nodeType":"ElementaryTypeName","src":"13439:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13411:39:20"},"returnParameters":{"id":6239,"nodeType":"ParameterList","parameters":[],"src":"13465:0:20"},"scope":12860,"src":"13399:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6270,"nodeType":"Block","src":"13637:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":6263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13687:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":6264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6253,"src":"13718:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"13722:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6257,"src":"13726:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13663:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13667:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13663:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13663:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13647:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13647:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6269,"nodeType":"ExpressionStatement","src":"13647:83:20"}]},"id":6271,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13577:3:20","nodeType":"FunctionDefinition","parameters":{"id":6258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6253,"mutability":"mutable","name":"p0","nameLocation":"13595:2:20","nodeType":"VariableDeclaration","scope":6271,"src":"13581:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6252,"name":"string","nodeType":"ElementaryTypeName","src":"13581:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6255,"mutability":"mutable","name":"p1","nameLocation":"13607:2:20","nodeType":"VariableDeclaration","scope":6271,"src":"13599:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6254,"name":"address","nodeType":"ElementaryTypeName","src":"13599:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6257,"mutability":"mutable","name":"p2","nameLocation":"13619:2:20","nodeType":"VariableDeclaration","scope":6271,"src":"13611:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6256,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13580:42:20"},"returnParameters":{"id":6259,"nodeType":"ParameterList","parameters":[],"src":"13637:0:20"},"scope":12860,"src":"13568:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6290,"nodeType":"Block","src":"13818:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":6283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13868:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":6284,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6273,"src":"13898:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6285,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6275,"src":"13902:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6286,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"13906:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6281,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13844:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13848:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13844:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13844:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6280,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13828:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6289,"nodeType":"ExpressionStatement","src":"13828:82:20"}]},"id":6291,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13752:3:20","nodeType":"FunctionDefinition","parameters":{"id":6278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6273,"mutability":"mutable","name":"p0","nameLocation":"13770:2:20","nodeType":"VariableDeclaration","scope":6291,"src":"13756:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6272,"name":"string","nodeType":"ElementaryTypeName","src":"13756:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6275,"mutability":"mutable","name":"p1","nameLocation":"13782:2:20","nodeType":"VariableDeclaration","scope":6291,"src":"13774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6274,"name":"address","nodeType":"ElementaryTypeName","src":"13774:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6277,"mutability":"mutable","name":"p2","nameLocation":"13800:2:20","nodeType":"VariableDeclaration","scope":6291,"src":"13786:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6276,"name":"string","nodeType":"ElementaryTypeName","src":"13786:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13755:48:20"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"13818:0:20"},"scope":12860,"src":"13743:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6310,"nodeType":"Block","src":"13989:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":6303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14039:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":6304,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"14067:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6305,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"14071:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6306,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"14075:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14015:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14019:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14015:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14015:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6300,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13999:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13999:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6309,"nodeType":"ExpressionStatement","src":"13999:80:20"}]},"id":6311,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13932:3:20","nodeType":"FunctionDefinition","parameters":{"id":6298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6293,"mutability":"mutable","name":"p0","nameLocation":"13950:2:20","nodeType":"VariableDeclaration","scope":6311,"src":"13936:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6292,"name":"string","nodeType":"ElementaryTypeName","src":"13936:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6295,"mutability":"mutable","name":"p1","nameLocation":"13962:2:20","nodeType":"VariableDeclaration","scope":6311,"src":"13954:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6294,"name":"address","nodeType":"ElementaryTypeName","src":"13954:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6297,"mutability":"mutable","name":"p2","nameLocation":"13971:2:20","nodeType":"VariableDeclaration","scope":6311,"src":"13966:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6296,"name":"bool","nodeType":"ElementaryTypeName","src":"13966:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13935:39:20"},"returnParameters":{"id":6299,"nodeType":"ParameterList","parameters":[],"src":"13989:0:20"},"scope":12860,"src":"13923:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6330,"nodeType":"Block","src":"14161:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":6323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14211:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":6324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"14242:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6315,"src":"14246:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6317,"src":"14250:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14187:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14191:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14187:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14187:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14171:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14171:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6329,"nodeType":"ExpressionStatement","src":"14171:83:20"}]},"id":6331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14101:3:20","nodeType":"FunctionDefinition","parameters":{"id":6318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6313,"mutability":"mutable","name":"p0","nameLocation":"14119:2:20","nodeType":"VariableDeclaration","scope":6331,"src":"14105:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6312,"name":"string","nodeType":"ElementaryTypeName","src":"14105:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6315,"mutability":"mutable","name":"p1","nameLocation":"14131:2:20","nodeType":"VariableDeclaration","scope":6331,"src":"14123:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6314,"name":"address","nodeType":"ElementaryTypeName","src":"14123:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6317,"mutability":"mutable","name":"p2","nameLocation":"14143:2:20","nodeType":"VariableDeclaration","scope":6331,"src":"14135:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6316,"name":"address","nodeType":"ElementaryTypeName","src":"14135:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14104:42:20"},"returnParameters":{"id":6319,"nodeType":"ParameterList","parameters":[],"src":"14161:0:20"},"scope":12860,"src":"14092:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6350,"nodeType":"Block","src":"14327:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":6343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14377:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":6344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"14406:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6345,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"14410:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6346,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6337,"src":"14414:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14353:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14357:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14353:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14353:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14337:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14337:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6349,"nodeType":"ExpressionStatement","src":"14337:81:20"}]},"id":6351,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14276:3:20","nodeType":"FunctionDefinition","parameters":{"id":6338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6333,"mutability":"mutable","name":"p0","nameLocation":"14285:2:20","nodeType":"VariableDeclaration","scope":6351,"src":"14280:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6332,"name":"bool","nodeType":"ElementaryTypeName","src":"14280:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6335,"mutability":"mutable","name":"p1","nameLocation":"14297:2:20","nodeType":"VariableDeclaration","scope":6351,"src":"14289:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6334,"name":"uint256","nodeType":"ElementaryTypeName","src":"14289:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6337,"mutability":"mutable","name":"p2","nameLocation":"14309:2:20","nodeType":"VariableDeclaration","scope":6351,"src":"14301:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6336,"name":"uint256","nodeType":"ElementaryTypeName","src":"14301:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14279:33:20"},"returnParameters":{"id":6339,"nodeType":"ParameterList","parameters":[],"src":"14327:0:20"},"scope":12860,"src":"14267:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6370,"nodeType":"Block","src":"14497:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":6363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14547:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":6364,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6353,"src":"14575:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6365,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6355,"src":"14579:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6366,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"14583:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6361,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14523:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14527:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14523:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14523:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6360,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14507:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14507:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6369,"nodeType":"ExpressionStatement","src":"14507:80:20"}]},"id":6371,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14440:3:20","nodeType":"FunctionDefinition","parameters":{"id":6358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6353,"mutability":"mutable","name":"p0","nameLocation":"14449:2:20","nodeType":"VariableDeclaration","scope":6371,"src":"14444:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6352,"name":"bool","nodeType":"ElementaryTypeName","src":"14444:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6355,"mutability":"mutable","name":"p1","nameLocation":"14461:2:20","nodeType":"VariableDeclaration","scope":6371,"src":"14453:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6354,"name":"uint256","nodeType":"ElementaryTypeName","src":"14453:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6357,"mutability":"mutable","name":"p2","nameLocation":"14479:2:20","nodeType":"VariableDeclaration","scope":6371,"src":"14465:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6356,"name":"string","nodeType":"ElementaryTypeName","src":"14465:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14443:39:20"},"returnParameters":{"id":6359,"nodeType":"ParameterList","parameters":[],"src":"14497:0:20"},"scope":12860,"src":"14431:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6390,"nodeType":"Block","src":"14657:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":6383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14707:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":6384,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"14733:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6385,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6375,"src":"14737:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6386,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6377,"src":"14741:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6381,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14683:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14687:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14683:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14683:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6380,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14667:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14667:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6389,"nodeType":"ExpressionStatement","src":"14667:78:20"}]},"id":6391,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14609:3:20","nodeType":"FunctionDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6373,"mutability":"mutable","name":"p0","nameLocation":"14618:2:20","nodeType":"VariableDeclaration","scope":6391,"src":"14613:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6372,"name":"bool","nodeType":"ElementaryTypeName","src":"14613:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6375,"mutability":"mutable","name":"p1","nameLocation":"14630:2:20","nodeType":"VariableDeclaration","scope":6391,"src":"14622:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6374,"name":"uint256","nodeType":"ElementaryTypeName","src":"14622:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6377,"mutability":"mutable","name":"p2","nameLocation":"14639:2:20","nodeType":"VariableDeclaration","scope":6391,"src":"14634:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6376,"name":"bool","nodeType":"ElementaryTypeName","src":"14634:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14612:30:20"},"returnParameters":{"id":6379,"nodeType":"ParameterList","parameters":[],"src":"14657:0:20"},"scope":12860,"src":"14600:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6410,"nodeType":"Block","src":"14818:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":6403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14868:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":6404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6393,"src":"14897:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6395,"src":"14901:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6397,"src":"14905:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14844:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14848:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14844:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14844:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14828:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14828:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6409,"nodeType":"ExpressionStatement","src":"14828:81:20"}]},"id":6411,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14767:3:20","nodeType":"FunctionDefinition","parameters":{"id":6398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6393,"mutability":"mutable","name":"p0","nameLocation":"14776:2:20","nodeType":"VariableDeclaration","scope":6411,"src":"14771:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6392,"name":"bool","nodeType":"ElementaryTypeName","src":"14771:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6395,"mutability":"mutable","name":"p1","nameLocation":"14788:2:20","nodeType":"VariableDeclaration","scope":6411,"src":"14780:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14780:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6397,"mutability":"mutable","name":"p2","nameLocation":"14800:2:20","nodeType":"VariableDeclaration","scope":6411,"src":"14792:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6396,"name":"address","nodeType":"ElementaryTypeName","src":"14792:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14770:33:20"},"returnParameters":{"id":6399,"nodeType":"ParameterList","parameters":[],"src":"14818:0:20"},"scope":12860,"src":"14758:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6430,"nodeType":"Block","src":"14988:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":6423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15038:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":6424,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6413,"src":"15066:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6425,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6415,"src":"15070:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6426,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6417,"src":"15074:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15014:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15018:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15014:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6420,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14998:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6429,"nodeType":"ExpressionStatement","src":"14998:80:20"}]},"id":6431,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14931:3:20","nodeType":"FunctionDefinition","parameters":{"id":6418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6413,"mutability":"mutable","name":"p0","nameLocation":"14940:2:20","nodeType":"VariableDeclaration","scope":6431,"src":"14935:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6412,"name":"bool","nodeType":"ElementaryTypeName","src":"14935:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6415,"mutability":"mutable","name":"p1","nameLocation":"14958:2:20","nodeType":"VariableDeclaration","scope":6431,"src":"14944:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6414,"name":"string","nodeType":"ElementaryTypeName","src":"14944:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6417,"mutability":"mutable","name":"p2","nameLocation":"14970:2:20","nodeType":"VariableDeclaration","scope":6431,"src":"14962:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6416,"name":"uint256","nodeType":"ElementaryTypeName","src":"14962:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14934:39:20"},"returnParameters":{"id":6419,"nodeType":"ParameterList","parameters":[],"src":"14988:0:20"},"scope":12860,"src":"14922:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6450,"nodeType":"Block","src":"15163:96:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":6443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15213:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":6444,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"15240:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6445,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6435,"src":"15244:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6446,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6437,"src":"15248:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15189:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15193:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15189:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15189:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6440,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15173:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15173:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6449,"nodeType":"ExpressionStatement","src":"15173:79:20"}]},"id":6451,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15100:3:20","nodeType":"FunctionDefinition","parameters":{"id":6438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"mutability":"mutable","name":"p0","nameLocation":"15109:2:20","nodeType":"VariableDeclaration","scope":6451,"src":"15104:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6432,"name":"bool","nodeType":"ElementaryTypeName","src":"15104:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6435,"mutability":"mutable","name":"p1","nameLocation":"15127:2:20","nodeType":"VariableDeclaration","scope":6451,"src":"15113:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6434,"name":"string","nodeType":"ElementaryTypeName","src":"15113:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6437,"mutability":"mutable","name":"p2","nameLocation":"15145:2:20","nodeType":"VariableDeclaration","scope":6451,"src":"15131:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6436,"name":"string","nodeType":"ElementaryTypeName","src":"15131:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15103:45:20"},"returnParameters":{"id":6439,"nodeType":"ParameterList","parameters":[],"src":"15163:0:20"},"scope":12860,"src":"15091:168:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6470,"nodeType":"Block","src":"15328:94:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":6463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15378:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":6464,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"15403:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6465,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"15407:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6466,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6457,"src":"15411:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15354:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15358:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15354:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15354:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6460,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15338:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6469,"nodeType":"ExpressionStatement","src":"15338:77:20"}]},"id":6471,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15274:3:20","nodeType":"FunctionDefinition","parameters":{"id":6458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6453,"mutability":"mutable","name":"p0","nameLocation":"15283:2:20","nodeType":"VariableDeclaration","scope":6471,"src":"15278:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6452,"name":"bool","nodeType":"ElementaryTypeName","src":"15278:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6455,"mutability":"mutable","name":"p1","nameLocation":"15301:2:20","nodeType":"VariableDeclaration","scope":6471,"src":"15287:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6454,"name":"string","nodeType":"ElementaryTypeName","src":"15287:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6457,"mutability":"mutable","name":"p2","nameLocation":"15310:2:20","nodeType":"VariableDeclaration","scope":6471,"src":"15305:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6456,"name":"bool","nodeType":"ElementaryTypeName","src":"15305:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15277:36:20"},"returnParameters":{"id":6459,"nodeType":"ParameterList","parameters":[],"src":"15328:0:20"},"scope":12860,"src":"15265:157:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6490,"nodeType":"Block","src":"15494:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":6483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15544:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":6484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"15572:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6475,"src":"15576:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"15580:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15520:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15524:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15520:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15520:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15504:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15504:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6489,"nodeType":"ExpressionStatement","src":"15504:80:20"}]},"id":6491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15437:3:20","nodeType":"FunctionDefinition","parameters":{"id":6478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"p0","nameLocation":"15446:2:20","nodeType":"VariableDeclaration","scope":6491,"src":"15441:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6472,"name":"bool","nodeType":"ElementaryTypeName","src":"15441:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6475,"mutability":"mutable","name":"p1","nameLocation":"15464:2:20","nodeType":"VariableDeclaration","scope":6491,"src":"15450:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6474,"name":"string","nodeType":"ElementaryTypeName","src":"15450:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6477,"mutability":"mutable","name":"p2","nameLocation":"15476:2:20","nodeType":"VariableDeclaration","scope":6491,"src":"15468:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6476,"name":"address","nodeType":"ElementaryTypeName","src":"15468:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15440:39:20"},"returnParameters":{"id":6479,"nodeType":"ParameterList","parameters":[],"src":"15494:0:20"},"scope":12860,"src":"15428:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6510,"nodeType":"Block","src":"15654:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":6503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15704:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":6504,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6493,"src":"15730:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6505,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6495,"src":"15734:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6506,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6497,"src":"15738:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15680:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15684:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15680:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15680:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6500,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15664:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15664:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6509,"nodeType":"ExpressionStatement","src":"15664:78:20"}]},"id":6511,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15606:3:20","nodeType":"FunctionDefinition","parameters":{"id":6498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6493,"mutability":"mutable","name":"p0","nameLocation":"15615:2:20","nodeType":"VariableDeclaration","scope":6511,"src":"15610:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6492,"name":"bool","nodeType":"ElementaryTypeName","src":"15610:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6495,"mutability":"mutable","name":"p1","nameLocation":"15624:2:20","nodeType":"VariableDeclaration","scope":6511,"src":"15619:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6494,"name":"bool","nodeType":"ElementaryTypeName","src":"15619:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6497,"mutability":"mutable","name":"p2","nameLocation":"15636:2:20","nodeType":"VariableDeclaration","scope":6511,"src":"15628:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6496,"name":"uint256","nodeType":"ElementaryTypeName","src":"15628:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15609:30:20"},"returnParameters":{"id":6499,"nodeType":"ParameterList","parameters":[],"src":"15654:0:20"},"scope":12860,"src":"15597:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6530,"nodeType":"Block","src":"15818:94:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":6523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15868:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":6524,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"15893:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6525,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"15897:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6526,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"15901:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6521,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15844:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15848:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15844:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15844:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6520,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15828:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15828:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6529,"nodeType":"ExpressionStatement","src":"15828:77:20"}]},"id":6531,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15764:3:20","nodeType":"FunctionDefinition","parameters":{"id":6518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6513,"mutability":"mutable","name":"p0","nameLocation":"15773:2:20","nodeType":"VariableDeclaration","scope":6531,"src":"15768:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6512,"name":"bool","nodeType":"ElementaryTypeName","src":"15768:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6515,"mutability":"mutable","name":"p1","nameLocation":"15782:2:20","nodeType":"VariableDeclaration","scope":6531,"src":"15777:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6514,"name":"bool","nodeType":"ElementaryTypeName","src":"15777:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6517,"mutability":"mutable","name":"p2","nameLocation":"15800:2:20","nodeType":"VariableDeclaration","scope":6531,"src":"15786:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6516,"name":"string","nodeType":"ElementaryTypeName","src":"15786:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15767:36:20"},"returnParameters":{"id":6519,"nodeType":"ParameterList","parameters":[],"src":"15818:0:20"},"scope":12860,"src":"15755:157:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6550,"nodeType":"Block","src":"15972:92:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":6543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16022:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":6544,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6533,"src":"16045:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6545,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6535,"src":"16049:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6546,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6537,"src":"16053:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15998:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16002:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15998:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15998:58:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6540,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15982:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15982:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6549,"nodeType":"ExpressionStatement","src":"15982:75:20"}]},"id":6551,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15927:3:20","nodeType":"FunctionDefinition","parameters":{"id":6538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6533,"mutability":"mutable","name":"p0","nameLocation":"15936:2:20","nodeType":"VariableDeclaration","scope":6551,"src":"15931:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6532,"name":"bool","nodeType":"ElementaryTypeName","src":"15931:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6535,"mutability":"mutable","name":"p1","nameLocation":"15945:2:20","nodeType":"VariableDeclaration","scope":6551,"src":"15940:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6534,"name":"bool","nodeType":"ElementaryTypeName","src":"15940:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6537,"mutability":"mutable","name":"p2","nameLocation":"15954:2:20","nodeType":"VariableDeclaration","scope":6551,"src":"15949:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6536,"name":"bool","nodeType":"ElementaryTypeName","src":"15949:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15930:27:20"},"returnParameters":{"id":6539,"nodeType":"ParameterList","parameters":[],"src":"15972:0:20"},"scope":12860,"src":"15918:146:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6570,"nodeType":"Block","src":"16127:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":6563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16177:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":6564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6553,"src":"16203:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6565,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6555,"src":"16207:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6566,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6557,"src":"16211:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16153:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16157:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16153:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16153:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16137:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16137:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6569,"nodeType":"ExpressionStatement","src":"16137:78:20"}]},"id":6571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16079:3:20","nodeType":"FunctionDefinition","parameters":{"id":6558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6553,"mutability":"mutable","name":"p0","nameLocation":"16088:2:20","nodeType":"VariableDeclaration","scope":6571,"src":"16083:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6552,"name":"bool","nodeType":"ElementaryTypeName","src":"16083:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6555,"mutability":"mutable","name":"p1","nameLocation":"16097:2:20","nodeType":"VariableDeclaration","scope":6571,"src":"16092:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6554,"name":"bool","nodeType":"ElementaryTypeName","src":"16092:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6557,"mutability":"mutable","name":"p2","nameLocation":"16109:2:20","nodeType":"VariableDeclaration","scope":6571,"src":"16101:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6556,"name":"address","nodeType":"ElementaryTypeName","src":"16101:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16082:30:20"},"returnParameters":{"id":6559,"nodeType":"ParameterList","parameters":[],"src":"16127:0:20"},"scope":12860,"src":"16070:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6590,"nodeType":"Block","src":"16288:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":6583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16338:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":6584,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6573,"src":"16367:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6585,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"16371:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6586,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6577,"src":"16375:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16314:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16318:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16314:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16314:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6580,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16298:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16298:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6589,"nodeType":"ExpressionStatement","src":"16298:81:20"}]},"id":6591,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16237:3:20","nodeType":"FunctionDefinition","parameters":{"id":6578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6573,"mutability":"mutable","name":"p0","nameLocation":"16246:2:20","nodeType":"VariableDeclaration","scope":6591,"src":"16241:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6572,"name":"bool","nodeType":"ElementaryTypeName","src":"16241:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6575,"mutability":"mutable","name":"p1","nameLocation":"16258:2:20","nodeType":"VariableDeclaration","scope":6591,"src":"16250:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6574,"name":"address","nodeType":"ElementaryTypeName","src":"16250:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6577,"mutability":"mutable","name":"p2","nameLocation":"16270:2:20","nodeType":"VariableDeclaration","scope":6591,"src":"16262:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6576,"name":"uint256","nodeType":"ElementaryTypeName","src":"16262:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16240:33:20"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[],"src":"16288:0:20"},"scope":12860,"src":"16228:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6610,"nodeType":"Block","src":"16458:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":6603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16508:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":6604,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6593,"src":"16536:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6605,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6595,"src":"16540:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6606,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6597,"src":"16544:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6601,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16484:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16488:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16484:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16484:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6600,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16468:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6609,"nodeType":"ExpressionStatement","src":"16468:80:20"}]},"id":6611,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16401:3:20","nodeType":"FunctionDefinition","parameters":{"id":6598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6593,"mutability":"mutable","name":"p0","nameLocation":"16410:2:20","nodeType":"VariableDeclaration","scope":6611,"src":"16405:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6592,"name":"bool","nodeType":"ElementaryTypeName","src":"16405:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6595,"mutability":"mutable","name":"p1","nameLocation":"16422:2:20","nodeType":"VariableDeclaration","scope":6611,"src":"16414:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6594,"name":"address","nodeType":"ElementaryTypeName","src":"16414:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6597,"mutability":"mutable","name":"p2","nameLocation":"16440:2:20","nodeType":"VariableDeclaration","scope":6611,"src":"16426:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6596,"name":"string","nodeType":"ElementaryTypeName","src":"16426:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16404:39:20"},"returnParameters":{"id":6599,"nodeType":"ParameterList","parameters":[],"src":"16458:0:20"},"scope":12860,"src":"16392:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6630,"nodeType":"Block","src":"16618:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":6623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16668:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":6624,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"16694:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6625,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6615,"src":"16698:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6626,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"16702:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16644:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16648:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16644:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16644:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6620,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16628:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16628:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6629,"nodeType":"ExpressionStatement","src":"16628:78:20"}]},"id":6631,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16570:3:20","nodeType":"FunctionDefinition","parameters":{"id":6618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6613,"mutability":"mutable","name":"p0","nameLocation":"16579:2:20","nodeType":"VariableDeclaration","scope":6631,"src":"16574:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6612,"name":"bool","nodeType":"ElementaryTypeName","src":"16574:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6615,"mutability":"mutable","name":"p1","nameLocation":"16591:2:20","nodeType":"VariableDeclaration","scope":6631,"src":"16583:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6614,"name":"address","nodeType":"ElementaryTypeName","src":"16583:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6617,"mutability":"mutable","name":"p2","nameLocation":"16600:2:20","nodeType":"VariableDeclaration","scope":6631,"src":"16595:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6616,"name":"bool","nodeType":"ElementaryTypeName","src":"16595:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16573:30:20"},"returnParameters":{"id":6619,"nodeType":"ParameterList","parameters":[],"src":"16618:0:20"},"scope":12860,"src":"16561:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6650,"nodeType":"Block","src":"16779:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":6643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16829:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":6644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"16858:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"16862:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6637,"src":"16866:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16805:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16809:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16805:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16805:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16789:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16789:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6649,"nodeType":"ExpressionStatement","src":"16789:81:20"}]},"id":6651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16728:3:20","nodeType":"FunctionDefinition","parameters":{"id":6638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"p0","nameLocation":"16737:2:20","nodeType":"VariableDeclaration","scope":6651,"src":"16732:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6632,"name":"bool","nodeType":"ElementaryTypeName","src":"16732:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6635,"mutability":"mutable","name":"p1","nameLocation":"16749:2:20","nodeType":"VariableDeclaration","scope":6651,"src":"16741:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6634,"name":"address","nodeType":"ElementaryTypeName","src":"16741:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6637,"mutability":"mutable","name":"p2","nameLocation":"16761:2:20","nodeType":"VariableDeclaration","scope":6651,"src":"16753:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6636,"name":"address","nodeType":"ElementaryTypeName","src":"16753:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16731:33:20"},"returnParameters":{"id":6639,"nodeType":"ParameterList","parameters":[],"src":"16779:0:20"},"scope":12860,"src":"16719:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6670,"nodeType":"Block","src":"16946:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":6663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16996:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":6664,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6653,"src":"17028:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6665,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"17032:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6666,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6657,"src":"17036:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16972:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16976:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16972:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16972:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6660,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16956:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16956:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6669,"nodeType":"ExpressionStatement","src":"16956:84:20"}]},"id":6671,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16892:3:20","nodeType":"FunctionDefinition","parameters":{"id":6658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6653,"mutability":"mutable","name":"p0","nameLocation":"16904:2:20","nodeType":"VariableDeclaration","scope":6671,"src":"16896:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6652,"name":"address","nodeType":"ElementaryTypeName","src":"16896:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6655,"mutability":"mutable","name":"p1","nameLocation":"16916:2:20","nodeType":"VariableDeclaration","scope":6671,"src":"16908:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6654,"name":"uint256","nodeType":"ElementaryTypeName","src":"16908:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6657,"mutability":"mutable","name":"p2","nameLocation":"16928:2:20","nodeType":"VariableDeclaration","scope":6671,"src":"16920:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6656,"name":"uint256","nodeType":"ElementaryTypeName","src":"16920:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16895:36:20"},"returnParameters":{"id":6659,"nodeType":"ParameterList","parameters":[],"src":"16946:0:20"},"scope":12860,"src":"16883:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6690,"nodeType":"Block","src":"17122:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":6683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17172:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":6684,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6673,"src":"17203:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6685,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6675,"src":"17207:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6686,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"17211:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6681,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17148:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17152:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17148:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17148:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6680,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17132:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6689,"nodeType":"ExpressionStatement","src":"17132:83:20"}]},"id":6691,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17062:3:20","nodeType":"FunctionDefinition","parameters":{"id":6678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6673,"mutability":"mutable","name":"p0","nameLocation":"17074:2:20","nodeType":"VariableDeclaration","scope":6691,"src":"17066:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6672,"name":"address","nodeType":"ElementaryTypeName","src":"17066:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6675,"mutability":"mutable","name":"p1","nameLocation":"17086:2:20","nodeType":"VariableDeclaration","scope":6691,"src":"17078:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6674,"name":"uint256","nodeType":"ElementaryTypeName","src":"17078:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6677,"mutability":"mutable","name":"p2","nameLocation":"17104:2:20","nodeType":"VariableDeclaration","scope":6691,"src":"17090:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6676,"name":"string","nodeType":"ElementaryTypeName","src":"17090:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17065:42:20"},"returnParameters":{"id":6679,"nodeType":"ParameterList","parameters":[],"src":"17122:0:20"},"scope":12860,"src":"17053:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6710,"nodeType":"Block","src":"17288:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":6703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17338:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":6704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"17367:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"17371:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6697,"src":"17375:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17314:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17318:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17314:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17314:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17298:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17298:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6709,"nodeType":"ExpressionStatement","src":"17298:81:20"}]},"id":6711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17237:3:20","nodeType":"FunctionDefinition","parameters":{"id":6698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6693,"mutability":"mutable","name":"p0","nameLocation":"17249:2:20","nodeType":"VariableDeclaration","scope":6711,"src":"17241:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6692,"name":"address","nodeType":"ElementaryTypeName","src":"17241:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6695,"mutability":"mutable","name":"p1","nameLocation":"17261:2:20","nodeType":"VariableDeclaration","scope":6711,"src":"17253:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"17253:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6697,"mutability":"mutable","name":"p2","nameLocation":"17270:2:20","nodeType":"VariableDeclaration","scope":6711,"src":"17265:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6696,"name":"bool","nodeType":"ElementaryTypeName","src":"17265:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17240:33:20"},"returnParameters":{"id":6699,"nodeType":"ParameterList","parameters":[],"src":"17288:0:20"},"scope":12860,"src":"17228:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6730,"nodeType":"Block","src":"17455:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":6723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17505:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":6724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"17537:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6715,"src":"17541:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6717,"src":"17545:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17481:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17485:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17481:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17481:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17465:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17465:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6729,"nodeType":"ExpressionStatement","src":"17465:84:20"}]},"id":6731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17401:3:20","nodeType":"FunctionDefinition","parameters":{"id":6718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6713,"mutability":"mutable","name":"p0","nameLocation":"17413:2:20","nodeType":"VariableDeclaration","scope":6731,"src":"17405:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6712,"name":"address","nodeType":"ElementaryTypeName","src":"17405:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6715,"mutability":"mutable","name":"p1","nameLocation":"17425:2:20","nodeType":"VariableDeclaration","scope":6731,"src":"17417:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6714,"name":"uint256","nodeType":"ElementaryTypeName","src":"17417:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6717,"mutability":"mutable","name":"p2","nameLocation":"17437:2:20","nodeType":"VariableDeclaration","scope":6731,"src":"17429:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6716,"name":"address","nodeType":"ElementaryTypeName","src":"17429:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17404:36:20"},"returnParameters":{"id":6719,"nodeType":"ParameterList","parameters":[],"src":"17455:0:20"},"scope":12860,"src":"17392:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6750,"nodeType":"Block","src":"17631:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":6743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17681:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":6744,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6733,"src":"17712:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6745,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"17716:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6746,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"17720:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17657:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17661:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17657:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6740,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17641:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6749,"nodeType":"ExpressionStatement","src":"17641:83:20"}]},"id":6751,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17571:3:20","nodeType":"FunctionDefinition","parameters":{"id":6738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6733,"mutability":"mutable","name":"p0","nameLocation":"17583:2:20","nodeType":"VariableDeclaration","scope":6751,"src":"17575:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6732,"name":"address","nodeType":"ElementaryTypeName","src":"17575:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6735,"mutability":"mutable","name":"p1","nameLocation":"17601:2:20","nodeType":"VariableDeclaration","scope":6751,"src":"17587:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6734,"name":"string","nodeType":"ElementaryTypeName","src":"17587:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6737,"mutability":"mutable","name":"p2","nameLocation":"17613:2:20","nodeType":"VariableDeclaration","scope":6751,"src":"17605:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6736,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17574:42:20"},"returnParameters":{"id":6739,"nodeType":"ParameterList","parameters":[],"src":"17631:0:20"},"scope":12860,"src":"17562:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6770,"nodeType":"Block","src":"17812:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":6763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17862:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":6764,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"17892:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6765,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6755,"src":"17896:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6766,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"17900:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17838:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17842:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17838:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17838:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6760,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17822:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17822:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6769,"nodeType":"ExpressionStatement","src":"17822:82:20"}]},"id":6771,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17746:3:20","nodeType":"FunctionDefinition","parameters":{"id":6758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6753,"mutability":"mutable","name":"p0","nameLocation":"17758:2:20","nodeType":"VariableDeclaration","scope":6771,"src":"17750:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6752,"name":"address","nodeType":"ElementaryTypeName","src":"17750:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6755,"mutability":"mutable","name":"p1","nameLocation":"17776:2:20","nodeType":"VariableDeclaration","scope":6771,"src":"17762:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6754,"name":"string","nodeType":"ElementaryTypeName","src":"17762:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6757,"mutability":"mutable","name":"p2","nameLocation":"17794:2:20","nodeType":"VariableDeclaration","scope":6771,"src":"17780:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6756,"name":"string","nodeType":"ElementaryTypeName","src":"17780:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17749:48:20"},"returnParameters":{"id":6759,"nodeType":"ParameterList","parameters":[],"src":"17812:0:20"},"scope":12860,"src":"17737:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6790,"nodeType":"Block","src":"17983:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18033:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":6784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6773,"src":"18061:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"18065:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"18069:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18009:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18013:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18009:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18009:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17993:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17993:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6789,"nodeType":"ExpressionStatement","src":"17993:80:20"}]},"id":6791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17926:3:20","nodeType":"FunctionDefinition","parameters":{"id":6778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6773,"mutability":"mutable","name":"p0","nameLocation":"17938:2:20","nodeType":"VariableDeclaration","scope":6791,"src":"17930:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6772,"name":"address","nodeType":"ElementaryTypeName","src":"17930:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6775,"mutability":"mutable","name":"p1","nameLocation":"17956:2:20","nodeType":"VariableDeclaration","scope":6791,"src":"17942:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6774,"name":"string","nodeType":"ElementaryTypeName","src":"17942:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6777,"mutability":"mutable","name":"p2","nameLocation":"17965:2:20","nodeType":"VariableDeclaration","scope":6791,"src":"17960:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6776,"name":"bool","nodeType":"ElementaryTypeName","src":"17960:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17929:39:20"},"returnParameters":{"id":6779,"nodeType":"ParameterList","parameters":[],"src":"17983:0:20"},"scope":12860,"src":"17917:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6810,"nodeType":"Block","src":"18155:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":6803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18205:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":6804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6793,"src":"18236:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6795,"src":"18240:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6797,"src":"18244:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18181:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18185:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18181:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18181:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18165:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6809,"nodeType":"ExpressionStatement","src":"18165:83:20"}]},"id":6811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18095:3:20","nodeType":"FunctionDefinition","parameters":{"id":6798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6793,"mutability":"mutable","name":"p0","nameLocation":"18107:2:20","nodeType":"VariableDeclaration","scope":6811,"src":"18099:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6792,"name":"address","nodeType":"ElementaryTypeName","src":"18099:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6795,"mutability":"mutable","name":"p1","nameLocation":"18125:2:20","nodeType":"VariableDeclaration","scope":6811,"src":"18111:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6794,"name":"string","nodeType":"ElementaryTypeName","src":"18111:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6797,"mutability":"mutable","name":"p2","nameLocation":"18137:2:20","nodeType":"VariableDeclaration","scope":6811,"src":"18129:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6796,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18098:42:20"},"returnParameters":{"id":6799,"nodeType":"ParameterList","parameters":[],"src":"18155:0:20"},"scope":12860,"src":"18086:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6830,"nodeType":"Block","src":"18321:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":6823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18371:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":6824,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6813,"src":"18400:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6825,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"18404:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6826,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6817,"src":"18408:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18347:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18351:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18347:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18347:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6820,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18331:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6829,"nodeType":"ExpressionStatement","src":"18331:81:20"}]},"id":6831,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18270:3:20","nodeType":"FunctionDefinition","parameters":{"id":6818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6813,"mutability":"mutable","name":"p0","nameLocation":"18282:2:20","nodeType":"VariableDeclaration","scope":6831,"src":"18274:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6812,"name":"address","nodeType":"ElementaryTypeName","src":"18274:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6815,"mutability":"mutable","name":"p1","nameLocation":"18291:2:20","nodeType":"VariableDeclaration","scope":6831,"src":"18286:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6814,"name":"bool","nodeType":"ElementaryTypeName","src":"18286:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6817,"mutability":"mutable","name":"p2","nameLocation":"18303:2:20","nodeType":"VariableDeclaration","scope":6831,"src":"18295:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6816,"name":"uint256","nodeType":"ElementaryTypeName","src":"18295:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18273:33:20"},"returnParameters":{"id":6819,"nodeType":"ParameterList","parameters":[],"src":"18321:0:20"},"scope":12860,"src":"18261:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6850,"nodeType":"Block","src":"18491:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":6843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18541:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":6844,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6833,"src":"18569:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6845,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6835,"src":"18573:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6846,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6837,"src":"18577:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18517:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18521:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18517:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6840,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18501:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18501:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6849,"nodeType":"ExpressionStatement","src":"18501:80:20"}]},"id":6851,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18434:3:20","nodeType":"FunctionDefinition","parameters":{"id":6838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6833,"mutability":"mutable","name":"p0","nameLocation":"18446:2:20","nodeType":"VariableDeclaration","scope":6851,"src":"18438:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6832,"name":"address","nodeType":"ElementaryTypeName","src":"18438:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6835,"mutability":"mutable","name":"p1","nameLocation":"18455:2:20","nodeType":"VariableDeclaration","scope":6851,"src":"18450:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6834,"name":"bool","nodeType":"ElementaryTypeName","src":"18450:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6837,"mutability":"mutable","name":"p2","nameLocation":"18473:2:20","nodeType":"VariableDeclaration","scope":6851,"src":"18459:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6836,"name":"string","nodeType":"ElementaryTypeName","src":"18459:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18437:39:20"},"returnParameters":{"id":6839,"nodeType":"ParameterList","parameters":[],"src":"18491:0:20"},"scope":12860,"src":"18425:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6870,"nodeType":"Block","src":"18651:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":6863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18701:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":6864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"18727:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6855,"src":"18731:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6857,"src":"18735:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18677:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18681:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18677:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18677:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18661:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18661:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6869,"nodeType":"ExpressionStatement","src":"18661:78:20"}]},"id":6871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18603:3:20","nodeType":"FunctionDefinition","parameters":{"id":6858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6853,"mutability":"mutable","name":"p0","nameLocation":"18615:2:20","nodeType":"VariableDeclaration","scope":6871,"src":"18607:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6852,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6855,"mutability":"mutable","name":"p1","nameLocation":"18624:2:20","nodeType":"VariableDeclaration","scope":6871,"src":"18619:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6854,"name":"bool","nodeType":"ElementaryTypeName","src":"18619:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6857,"mutability":"mutable","name":"p2","nameLocation":"18633:2:20","nodeType":"VariableDeclaration","scope":6871,"src":"18628:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6856,"name":"bool","nodeType":"ElementaryTypeName","src":"18628:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18606:30:20"},"returnParameters":{"id":6859,"nodeType":"ParameterList","parameters":[],"src":"18651:0:20"},"scope":12860,"src":"18594:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6890,"nodeType":"Block","src":"18812:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":6883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18862:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":6884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6873,"src":"18891:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6875,"src":"18895:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6877,"src":"18899:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18838:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18838:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18838:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18822:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18822:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6889,"nodeType":"ExpressionStatement","src":"18822:81:20"}]},"id":6891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18761:3:20","nodeType":"FunctionDefinition","parameters":{"id":6878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6873,"mutability":"mutable","name":"p0","nameLocation":"18773:2:20","nodeType":"VariableDeclaration","scope":6891,"src":"18765:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6872,"name":"address","nodeType":"ElementaryTypeName","src":"18765:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6875,"mutability":"mutable","name":"p1","nameLocation":"18782:2:20","nodeType":"VariableDeclaration","scope":6891,"src":"18777:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6874,"name":"bool","nodeType":"ElementaryTypeName","src":"18777:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6877,"mutability":"mutable","name":"p2","nameLocation":"18794:2:20","nodeType":"VariableDeclaration","scope":6891,"src":"18786:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6876,"name":"address","nodeType":"ElementaryTypeName","src":"18786:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18764:33:20"},"returnParameters":{"id":6879,"nodeType":"ParameterList","parameters":[],"src":"18812:0:20"},"scope":12860,"src":"18752:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6910,"nodeType":"Block","src":"18979:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":6903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19029:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":6904,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"19061:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6905,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6895,"src":"19065:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6906,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"19069:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6901,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19005:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19009:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19005:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19005:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6900,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18989:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18989:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6909,"nodeType":"ExpressionStatement","src":"18989:84:20"}]},"id":6911,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18925:3:20","nodeType":"FunctionDefinition","parameters":{"id":6898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6893,"mutability":"mutable","name":"p0","nameLocation":"18937:2:20","nodeType":"VariableDeclaration","scope":6911,"src":"18929:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6892,"name":"address","nodeType":"ElementaryTypeName","src":"18929:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6895,"mutability":"mutable","name":"p1","nameLocation":"18949:2:20","nodeType":"VariableDeclaration","scope":6911,"src":"18941:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6894,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6897,"mutability":"mutable","name":"p2","nameLocation":"18961:2:20","nodeType":"VariableDeclaration","scope":6911,"src":"18953:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6896,"name":"uint256","nodeType":"ElementaryTypeName","src":"18953:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18928:36:20"},"returnParameters":{"id":6899,"nodeType":"ParameterList","parameters":[],"src":"18979:0:20"},"scope":12860,"src":"18916:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6930,"nodeType":"Block","src":"19155:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":6923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19205:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":6924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6913,"src":"19236:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6925,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6915,"src":"19240:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6926,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"19244:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19181:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19185:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19181:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19181:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19165:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19165:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6929,"nodeType":"ExpressionStatement","src":"19165:83:20"}]},"id":6931,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19095:3:20","nodeType":"FunctionDefinition","parameters":{"id":6918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6913,"mutability":"mutable","name":"p0","nameLocation":"19107:2:20","nodeType":"VariableDeclaration","scope":6931,"src":"19099:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6912,"name":"address","nodeType":"ElementaryTypeName","src":"19099:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6915,"mutability":"mutable","name":"p1","nameLocation":"19119:2:20","nodeType":"VariableDeclaration","scope":6931,"src":"19111:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6914,"name":"address","nodeType":"ElementaryTypeName","src":"19111:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6917,"mutability":"mutable","name":"p2","nameLocation":"19137:2:20","nodeType":"VariableDeclaration","scope":6931,"src":"19123:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6916,"name":"string","nodeType":"ElementaryTypeName","src":"19123:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19098:42:20"},"returnParameters":{"id":6919,"nodeType":"ParameterList","parameters":[],"src":"19155:0:20"},"scope":12860,"src":"19086:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6950,"nodeType":"Block","src":"19321:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":6943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19371:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":6944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6933,"src":"19400:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6935,"src":"19404:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6937,"src":"19408:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19347:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19351:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19347:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19347:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19331:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19331:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6949,"nodeType":"ExpressionStatement","src":"19331:81:20"}]},"id":6951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19270:3:20","nodeType":"FunctionDefinition","parameters":{"id":6938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6933,"mutability":"mutable","name":"p0","nameLocation":"19282:2:20","nodeType":"VariableDeclaration","scope":6951,"src":"19274:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6932,"name":"address","nodeType":"ElementaryTypeName","src":"19274:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6935,"mutability":"mutable","name":"p1","nameLocation":"19294:2:20","nodeType":"VariableDeclaration","scope":6951,"src":"19286:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6934,"name":"address","nodeType":"ElementaryTypeName","src":"19286:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6937,"mutability":"mutable","name":"p2","nameLocation":"19303:2:20","nodeType":"VariableDeclaration","scope":6951,"src":"19298:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6936,"name":"bool","nodeType":"ElementaryTypeName","src":"19298:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19273:33:20"},"returnParameters":{"id":6939,"nodeType":"ParameterList","parameters":[],"src":"19321:0:20"},"scope":12860,"src":"19261:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6970,"nodeType":"Block","src":"19488:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":6963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19538:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":6964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6953,"src":"19570:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6955,"src":"19574:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6957,"src":"19578:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19514:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19518:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19514:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19514:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19498:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19498:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6969,"nodeType":"ExpressionStatement","src":"19498:84:20"}]},"id":6971,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19434:3:20","nodeType":"FunctionDefinition","parameters":{"id":6958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6953,"mutability":"mutable","name":"p0","nameLocation":"19446:2:20","nodeType":"VariableDeclaration","scope":6971,"src":"19438:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6952,"name":"address","nodeType":"ElementaryTypeName","src":"19438:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6955,"mutability":"mutable","name":"p1","nameLocation":"19458:2:20","nodeType":"VariableDeclaration","scope":6971,"src":"19450:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6954,"name":"address","nodeType":"ElementaryTypeName","src":"19450:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6957,"mutability":"mutable","name":"p2","nameLocation":"19470:2:20","nodeType":"VariableDeclaration","scope":6971,"src":"19462:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6956,"name":"address","nodeType":"ElementaryTypeName","src":"19462:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19437:36:20"},"returnParameters":{"id":6959,"nodeType":"ParameterList","parameters":[],"src":"19488:0:20"},"scope":12860,"src":"19425:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6993,"nodeType":"Block","src":"19670:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":6985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19720:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":6986,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6973,"src":"19760:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6987,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6975,"src":"19764:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6988,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6977,"src":"19768:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6989,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"19772:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19696:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19700:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19696:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6982,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19680:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19680:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6992,"nodeType":"ExpressionStatement","src":"19680:96:20"}]},"id":6994,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19604:3:20","nodeType":"FunctionDefinition","parameters":{"id":6980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6973,"mutability":"mutable","name":"p0","nameLocation":"19616:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19608:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6972,"name":"uint256","nodeType":"ElementaryTypeName","src":"19608:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6975,"mutability":"mutable","name":"p1","nameLocation":"19628:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19620:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6974,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6977,"mutability":"mutable","name":"p2","nameLocation":"19640:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19632:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6976,"name":"uint256","nodeType":"ElementaryTypeName","src":"19632:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6979,"mutability":"mutable","name":"p3","nameLocation":"19652:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19644:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6978,"name":"uint256","nodeType":"ElementaryTypeName","src":"19644:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19607:48:20"},"returnParameters":{"id":6981,"nodeType":"ParameterList","parameters":[],"src":"19670:0:20"},"scope":12860,"src":"19595:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7016,"nodeType":"Block","src":"19870:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":7008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19920:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":7009,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6996,"src":"19959:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7010,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"19963:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7011,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"19967:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7012,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7002,"src":"19971:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7006,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19896:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19900:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19896:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19896:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7005,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19880:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19880:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7015,"nodeType":"ExpressionStatement","src":"19880:95:20"}]},"id":7017,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19798:3:20","nodeType":"FunctionDefinition","parameters":{"id":7003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6996,"mutability":"mutable","name":"p0","nameLocation":"19810:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19802:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6995,"name":"uint256","nodeType":"ElementaryTypeName","src":"19802:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6998,"mutability":"mutable","name":"p1","nameLocation":"19822:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19814:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6997,"name":"uint256","nodeType":"ElementaryTypeName","src":"19814:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7000,"mutability":"mutable","name":"p2","nameLocation":"19834:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19826:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6999,"name":"uint256","nodeType":"ElementaryTypeName","src":"19826:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7002,"mutability":"mutable","name":"p3","nameLocation":"19852:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19838:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7001,"name":"string","nodeType":"ElementaryTypeName","src":"19838:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19801:54:20"},"returnParameters":{"id":7004,"nodeType":"ParameterList","parameters":[],"src":"19870:0:20"},"scope":12860,"src":"19789:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7039,"nodeType":"Block","src":"20060:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":7031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20110:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":7032,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"20147:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7033,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7021,"src":"20151:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7034,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7023,"src":"20155:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7035,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7025,"src":"20159:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7029,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20086:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20090:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20086:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20086:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7028,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20070:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20070:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7038,"nodeType":"ExpressionStatement","src":"20070:93:20"}]},"id":7040,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19997:3:20","nodeType":"FunctionDefinition","parameters":{"id":7026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"p0","nameLocation":"20009:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20001:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7018,"name":"uint256","nodeType":"ElementaryTypeName","src":"20001:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7021,"mutability":"mutable","name":"p1","nameLocation":"20021:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20013:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7020,"name":"uint256","nodeType":"ElementaryTypeName","src":"20013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7023,"mutability":"mutable","name":"p2","nameLocation":"20033:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20025:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7022,"name":"uint256","nodeType":"ElementaryTypeName","src":"20025:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7025,"mutability":"mutable","name":"p3","nameLocation":"20042:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20037:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7024,"name":"bool","nodeType":"ElementaryTypeName","src":"20037:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20000:45:20"},"returnParameters":{"id":7027,"nodeType":"ParameterList","parameters":[],"src":"20060:0:20"},"scope":12860,"src":"19988:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7062,"nodeType":"Block","src":"20251:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":7054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20301:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":7055,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7042,"src":"20341:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7056,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7044,"src":"20345:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7057,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"20349:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7058,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7048,"src":"20353:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20277:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20281:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20277:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20277:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7051,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20261:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20261:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7061,"nodeType":"ExpressionStatement","src":"20261:96:20"}]},"id":7063,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20185:3:20","nodeType":"FunctionDefinition","parameters":{"id":7049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7042,"mutability":"mutable","name":"p0","nameLocation":"20197:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20189:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7041,"name":"uint256","nodeType":"ElementaryTypeName","src":"20189:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"p1","nameLocation":"20209:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20201:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7043,"name":"uint256","nodeType":"ElementaryTypeName","src":"20201:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7046,"mutability":"mutable","name":"p2","nameLocation":"20221:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20213:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"20213:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7048,"mutability":"mutable","name":"p3","nameLocation":"20233:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20225:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7047,"name":"address","nodeType":"ElementaryTypeName","src":"20225:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20188:48:20"},"returnParameters":{"id":7050,"nodeType":"ParameterList","parameters":[],"src":"20251:0:20"},"scope":12860,"src":"20176:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7085,"nodeType":"Block","src":"20451:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":7077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20501:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":7078,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"20540:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7079,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"20544:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7080,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"20548:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7081,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"20552:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7075,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20477:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20481:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20477:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20477:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7074,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20461:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20461:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7084,"nodeType":"ExpressionStatement","src":"20461:95:20"}]},"id":7086,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20379:3:20","nodeType":"FunctionDefinition","parameters":{"id":7072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7065,"mutability":"mutable","name":"p0","nameLocation":"20391:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20383:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7064,"name":"uint256","nodeType":"ElementaryTypeName","src":"20383:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7067,"mutability":"mutable","name":"p1","nameLocation":"20403:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20395:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7066,"name":"uint256","nodeType":"ElementaryTypeName","src":"20395:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7069,"mutability":"mutable","name":"p2","nameLocation":"20421:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20407:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7068,"name":"string","nodeType":"ElementaryTypeName","src":"20407:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7071,"mutability":"mutable","name":"p3","nameLocation":"20433:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20425:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7070,"name":"uint256","nodeType":"ElementaryTypeName","src":"20425:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20382:54:20"},"returnParameters":{"id":7073,"nodeType":"ParameterList","parameters":[],"src":"20451:0:20"},"scope":12860,"src":"20370:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7108,"nodeType":"Block","src":"20656:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":7100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20706:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":7101,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7088,"src":"20744:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7102,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7090,"src":"20748:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7103,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"20752:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7104,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7094,"src":"20756:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7098,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20682:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20686:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20682:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20682:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7097,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20666:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7107,"nodeType":"ExpressionStatement","src":"20666:94:20"}]},"id":7109,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20578:3:20","nodeType":"FunctionDefinition","parameters":{"id":7095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7088,"mutability":"mutable","name":"p0","nameLocation":"20590:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20582:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7087,"name":"uint256","nodeType":"ElementaryTypeName","src":"20582:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7090,"mutability":"mutable","name":"p1","nameLocation":"20602:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20594:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7089,"name":"uint256","nodeType":"ElementaryTypeName","src":"20594:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7092,"mutability":"mutable","name":"p2","nameLocation":"20620:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20606:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7091,"name":"string","nodeType":"ElementaryTypeName","src":"20606:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7094,"mutability":"mutable","name":"p3","nameLocation":"20638:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20624:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7093,"name":"string","nodeType":"ElementaryTypeName","src":"20624:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20581:60:20"},"returnParameters":{"id":7096,"nodeType":"ParameterList","parameters":[],"src":"20656:0:20"},"scope":12860,"src":"20569:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7131,"nodeType":"Block","src":"20851:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":7123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20901:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":7124,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"20937:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7125,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"20941:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7126,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7115,"src":"20945:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7127,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"20949:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20877:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20881:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20877:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20877:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7120,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20861:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20861:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7130,"nodeType":"ExpressionStatement","src":"20861:92:20"}]},"id":7132,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20782:3:20","nodeType":"FunctionDefinition","parameters":{"id":7118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7111,"mutability":"mutable","name":"p0","nameLocation":"20794:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20786:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"20786:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7113,"mutability":"mutable","name":"p1","nameLocation":"20806:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20798:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7112,"name":"uint256","nodeType":"ElementaryTypeName","src":"20798:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7115,"mutability":"mutable","name":"p2","nameLocation":"20824:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20810:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7114,"name":"string","nodeType":"ElementaryTypeName","src":"20810:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7117,"mutability":"mutable","name":"p3","nameLocation":"20833:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20828:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7116,"name":"bool","nodeType":"ElementaryTypeName","src":"20828:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20785:51:20"},"returnParameters":{"id":7119,"nodeType":"ParameterList","parameters":[],"src":"20851:0:20"},"scope":12860,"src":"20773:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7154,"nodeType":"Block","src":"21047:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":7146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21097:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":7147,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7134,"src":"21136:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7148,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"21140:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7149,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7138,"src":"21144:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7150,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7140,"src":"21148:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7144,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21073:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21077:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21073:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21073:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7143,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21057:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21057:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7153,"nodeType":"ExpressionStatement","src":"21057:95:20"}]},"id":7155,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20975:3:20","nodeType":"FunctionDefinition","parameters":{"id":7141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7134,"mutability":"mutable","name":"p0","nameLocation":"20987:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"20979:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7133,"name":"uint256","nodeType":"ElementaryTypeName","src":"20979:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7136,"mutability":"mutable","name":"p1","nameLocation":"20999:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"20991:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7135,"name":"uint256","nodeType":"ElementaryTypeName","src":"20991:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7138,"mutability":"mutable","name":"p2","nameLocation":"21017:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"21003:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7137,"name":"string","nodeType":"ElementaryTypeName","src":"21003:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7140,"mutability":"mutable","name":"p3","nameLocation":"21029:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"21021:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7139,"name":"address","nodeType":"ElementaryTypeName","src":"21021:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20978:54:20"},"returnParameters":{"id":7142,"nodeType":"ParameterList","parameters":[],"src":"21047:0:20"},"scope":12860,"src":"20966:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7177,"nodeType":"Block","src":"21237:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":7169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21287:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":7170,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7157,"src":"21324:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7171,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7159,"src":"21328:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7172,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"21332:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7173,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"21336:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7167,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21263:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21263:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21263:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7166,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21247:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21247:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7176,"nodeType":"ExpressionStatement","src":"21247:93:20"}]},"id":7178,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21174:3:20","nodeType":"FunctionDefinition","parameters":{"id":7164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7157,"mutability":"mutable","name":"p0","nameLocation":"21186:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21178:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7156,"name":"uint256","nodeType":"ElementaryTypeName","src":"21178:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7159,"mutability":"mutable","name":"p1","nameLocation":"21198:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21190:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7158,"name":"uint256","nodeType":"ElementaryTypeName","src":"21190:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7161,"mutability":"mutable","name":"p2","nameLocation":"21207:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21202:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7160,"name":"bool","nodeType":"ElementaryTypeName","src":"21202:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7163,"mutability":"mutable","name":"p3","nameLocation":"21219:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21211:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"21211:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21177:45:20"},"returnParameters":{"id":7165,"nodeType":"ParameterList","parameters":[],"src":"21237:0:20"},"scope":12860,"src":"21165:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7200,"nodeType":"Block","src":"21431:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21481:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":7193,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"21517:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7194,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"21521:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7195,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"21525:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7196,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"21529:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7190,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21457:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21461:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21457:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21457:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7189,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21441:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21441:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7199,"nodeType":"ExpressionStatement","src":"21441:92:20"}]},"id":7201,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21362:3:20","nodeType":"FunctionDefinition","parameters":{"id":7187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7180,"mutability":"mutable","name":"p0","nameLocation":"21374:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21366:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7179,"name":"uint256","nodeType":"ElementaryTypeName","src":"21366:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7182,"mutability":"mutable","name":"p1","nameLocation":"21386:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21378:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7181,"name":"uint256","nodeType":"ElementaryTypeName","src":"21378:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7184,"mutability":"mutable","name":"p2","nameLocation":"21395:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21390:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7183,"name":"bool","nodeType":"ElementaryTypeName","src":"21390:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7186,"mutability":"mutable","name":"p3","nameLocation":"21413:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21399:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7185,"name":"string","nodeType":"ElementaryTypeName","src":"21399:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21365:51:20"},"returnParameters":{"id":7188,"nodeType":"ParameterList","parameters":[],"src":"21431:0:20"},"scope":12860,"src":"21353:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7223,"nodeType":"Block","src":"21615:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":7215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21665:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":7216,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"21699:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7217,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7205,"src":"21703:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7218,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7207,"src":"21707:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7219,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7209,"src":"21711:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7213,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21641:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21645:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21641:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21641:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7212,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21625:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21625:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7222,"nodeType":"ExpressionStatement","src":"21625:90:20"}]},"id":7224,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21555:3:20","nodeType":"FunctionDefinition","parameters":{"id":7210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7203,"mutability":"mutable","name":"p0","nameLocation":"21567:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21559:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7202,"name":"uint256","nodeType":"ElementaryTypeName","src":"21559:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7205,"mutability":"mutable","name":"p1","nameLocation":"21579:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21571:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7204,"name":"uint256","nodeType":"ElementaryTypeName","src":"21571:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7207,"mutability":"mutable","name":"p2","nameLocation":"21588:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21583:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7206,"name":"bool","nodeType":"ElementaryTypeName","src":"21583:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7209,"mutability":"mutable","name":"p3","nameLocation":"21597:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21592:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7208,"name":"bool","nodeType":"ElementaryTypeName","src":"21592:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21558:42:20"},"returnParameters":{"id":7211,"nodeType":"ParameterList","parameters":[],"src":"21615:0:20"},"scope":12860,"src":"21546:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7246,"nodeType":"Block","src":"21800:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":7238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21850:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":7239,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7226,"src":"21887:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7240,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"21891:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7241,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7230,"src":"21895:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7242,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7232,"src":"21899:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21826:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21830:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21826:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21826:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7235,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21810:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21810:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7245,"nodeType":"ExpressionStatement","src":"21810:93:20"}]},"id":7247,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21737:3:20","nodeType":"FunctionDefinition","parameters":{"id":7233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7226,"mutability":"mutable","name":"p0","nameLocation":"21749:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21741:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7225,"name":"uint256","nodeType":"ElementaryTypeName","src":"21741:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7228,"mutability":"mutable","name":"p1","nameLocation":"21761:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21753:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7227,"name":"uint256","nodeType":"ElementaryTypeName","src":"21753:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7230,"mutability":"mutable","name":"p2","nameLocation":"21770:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21765:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7229,"name":"bool","nodeType":"ElementaryTypeName","src":"21765:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7232,"mutability":"mutable","name":"p3","nameLocation":"21782:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7231,"name":"address","nodeType":"ElementaryTypeName","src":"21774:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:45:20"},"returnParameters":{"id":7234,"nodeType":"ParameterList","parameters":[],"src":"21800:0:20"},"scope":12860,"src":"21728:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7269,"nodeType":"Block","src":"21991:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":7261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22041:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":7262,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7249,"src":"22081:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7263,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"22085:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7264,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"22089:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7265,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"22093:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7259,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22017:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22021:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22017:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22017:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7258,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22001:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22001:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7268,"nodeType":"ExpressionStatement","src":"22001:96:20"}]},"id":7270,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21925:3:20","nodeType":"FunctionDefinition","parameters":{"id":7256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7249,"mutability":"mutable","name":"p0","nameLocation":"21937:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21929:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7248,"name":"uint256","nodeType":"ElementaryTypeName","src":"21929:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7251,"mutability":"mutable","name":"p1","nameLocation":"21949:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21941:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7250,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7253,"mutability":"mutable","name":"p2","nameLocation":"21961:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21953:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7252,"name":"address","nodeType":"ElementaryTypeName","src":"21953:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7255,"mutability":"mutable","name":"p3","nameLocation":"21973:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21965:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7254,"name":"uint256","nodeType":"ElementaryTypeName","src":"21965:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21928:48:20"},"returnParameters":{"id":7257,"nodeType":"ParameterList","parameters":[],"src":"21991:0:20"},"scope":12860,"src":"21916:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7292,"nodeType":"Block","src":"22191:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":7284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22241:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":7285,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"22280:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7286,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7274,"src":"22284:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7287,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7276,"src":"22288:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7288,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7278,"src":"22292:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22217:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22221:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22217:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22217:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7281,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22201:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22201:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7291,"nodeType":"ExpressionStatement","src":"22201:95:20"}]},"id":7293,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22119:3:20","nodeType":"FunctionDefinition","parameters":{"id":7279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7272,"mutability":"mutable","name":"p0","nameLocation":"22131:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22123:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7271,"name":"uint256","nodeType":"ElementaryTypeName","src":"22123:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7274,"mutability":"mutable","name":"p1","nameLocation":"22143:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22135:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7273,"name":"uint256","nodeType":"ElementaryTypeName","src":"22135:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7276,"mutability":"mutable","name":"p2","nameLocation":"22155:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22147:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7275,"name":"address","nodeType":"ElementaryTypeName","src":"22147:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7278,"mutability":"mutable","name":"p3","nameLocation":"22173:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22159:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7277,"name":"string","nodeType":"ElementaryTypeName","src":"22159:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22122:54:20"},"returnParameters":{"id":7280,"nodeType":"ParameterList","parameters":[],"src":"22191:0:20"},"scope":12860,"src":"22110:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7315,"nodeType":"Block","src":"22381:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22431:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":7308,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7295,"src":"22468:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7309,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7297,"src":"22472:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7310,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7299,"src":"22476:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7311,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7301,"src":"22480:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7305,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22407:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22411:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22407:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22407:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7304,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22391:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22391:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7314,"nodeType":"ExpressionStatement","src":"22391:93:20"}]},"id":7316,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22318:3:20","nodeType":"FunctionDefinition","parameters":{"id":7302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7295,"mutability":"mutable","name":"p0","nameLocation":"22330:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22322:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7294,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7297,"mutability":"mutable","name":"p1","nameLocation":"22342:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22334:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7296,"name":"uint256","nodeType":"ElementaryTypeName","src":"22334:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7299,"mutability":"mutable","name":"p2","nameLocation":"22354:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22346:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7298,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7301,"mutability":"mutable","name":"p3","nameLocation":"22363:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22358:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7300,"name":"bool","nodeType":"ElementaryTypeName","src":"22358:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22321:45:20"},"returnParameters":{"id":7303,"nodeType":"ParameterList","parameters":[],"src":"22381:0:20"},"scope":12860,"src":"22309:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7338,"nodeType":"Block","src":"22572:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":7330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22622:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":7331,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"22662:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7332,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"22666:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7333,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"22670:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7334,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7324,"src":"22674:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7328,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22598:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22602:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22598:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22598:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7327,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22582:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22582:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7337,"nodeType":"ExpressionStatement","src":"22582:96:20"}]},"id":7339,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22506:3:20","nodeType":"FunctionDefinition","parameters":{"id":7325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7318,"mutability":"mutable","name":"p0","nameLocation":"22518:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22510:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7317,"name":"uint256","nodeType":"ElementaryTypeName","src":"22510:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7320,"mutability":"mutable","name":"p1","nameLocation":"22530:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22522:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7319,"name":"uint256","nodeType":"ElementaryTypeName","src":"22522:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7322,"mutability":"mutable","name":"p2","nameLocation":"22542:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22534:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7321,"name":"address","nodeType":"ElementaryTypeName","src":"22534:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7324,"mutability":"mutable","name":"p3","nameLocation":"22554:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22546:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7323,"name":"address","nodeType":"ElementaryTypeName","src":"22546:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22509:48:20"},"returnParameters":{"id":7326,"nodeType":"ParameterList","parameters":[],"src":"22572:0:20"},"scope":12860,"src":"22497:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7361,"nodeType":"Block","src":"22772:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22822:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":7354,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"22861:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7355,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"22865:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7356,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"22869:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7357,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7347,"src":"22873:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7351,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22798:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22802:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22798:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22798:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7350,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22782:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22782:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7360,"nodeType":"ExpressionStatement","src":"22782:95:20"}]},"id":7362,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22700:3:20","nodeType":"FunctionDefinition","parameters":{"id":7348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7341,"mutability":"mutable","name":"p0","nameLocation":"22712:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22704:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7340,"name":"uint256","nodeType":"ElementaryTypeName","src":"22704:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7343,"mutability":"mutable","name":"p1","nameLocation":"22730:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22716:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7342,"name":"string","nodeType":"ElementaryTypeName","src":"22716:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7345,"mutability":"mutable","name":"p2","nameLocation":"22742:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22734:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7344,"name":"uint256","nodeType":"ElementaryTypeName","src":"22734:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7347,"mutability":"mutable","name":"p3","nameLocation":"22754:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22746:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7346,"name":"uint256","nodeType":"ElementaryTypeName","src":"22746:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22703:54:20"},"returnParameters":{"id":7349,"nodeType":"ParameterList","parameters":[],"src":"22772:0:20"},"scope":12860,"src":"22691:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7384,"nodeType":"Block","src":"22977:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":7376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23027:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":7377,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7364,"src":"23065:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7378,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7366,"src":"23069:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7379,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7368,"src":"23073:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7380,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"23077:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23003:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23007:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23003:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23003:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7373,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22987:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22987:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7383,"nodeType":"ExpressionStatement","src":"22987:94:20"}]},"id":7385,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22899:3:20","nodeType":"FunctionDefinition","parameters":{"id":7371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7364,"mutability":"mutable","name":"p0","nameLocation":"22911:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22903:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7363,"name":"uint256","nodeType":"ElementaryTypeName","src":"22903:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7366,"mutability":"mutable","name":"p1","nameLocation":"22929:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22915:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7365,"name":"string","nodeType":"ElementaryTypeName","src":"22915:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7368,"mutability":"mutable","name":"p2","nameLocation":"22941:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22933:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7367,"name":"uint256","nodeType":"ElementaryTypeName","src":"22933:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7370,"mutability":"mutable","name":"p3","nameLocation":"22959:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22945:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7369,"name":"string","nodeType":"ElementaryTypeName","src":"22945:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22902:60:20"},"returnParameters":{"id":7372,"nodeType":"ParameterList","parameters":[],"src":"22977:0:20"},"scope":12860,"src":"22890:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7407,"nodeType":"Block","src":"23172:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":7399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23222:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":7400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7387,"src":"23258:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7401,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"23262:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7402,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"23266:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7403,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"23270:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23198:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23202:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23198:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23198:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23182:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23182:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7406,"nodeType":"ExpressionStatement","src":"23182:92:20"}]},"id":7408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23103:3:20","nodeType":"FunctionDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7387,"mutability":"mutable","name":"p0","nameLocation":"23115:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23107:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7386,"name":"uint256","nodeType":"ElementaryTypeName","src":"23107:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7389,"mutability":"mutable","name":"p1","nameLocation":"23133:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23119:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7388,"name":"string","nodeType":"ElementaryTypeName","src":"23119:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7391,"mutability":"mutable","name":"p2","nameLocation":"23145:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23137:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7390,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7393,"mutability":"mutable","name":"p3","nameLocation":"23154:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23149:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7392,"name":"bool","nodeType":"ElementaryTypeName","src":"23149:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23106:51:20"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[],"src":"23172:0:20"},"scope":12860,"src":"23094:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7430,"nodeType":"Block","src":"23368:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23418:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":7423,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7410,"src":"23457:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7424,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"23461:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7425,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7414,"src":"23465:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7426,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7416,"src":"23469:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7420,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23394:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23398:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23394:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23394:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7419,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23378:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23378:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7429,"nodeType":"ExpressionStatement","src":"23378:95:20"}]},"id":7431,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23296:3:20","nodeType":"FunctionDefinition","parameters":{"id":7417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7410,"mutability":"mutable","name":"p0","nameLocation":"23308:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23300:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7409,"name":"uint256","nodeType":"ElementaryTypeName","src":"23300:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7412,"mutability":"mutable","name":"p1","nameLocation":"23326:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23312:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7411,"name":"string","nodeType":"ElementaryTypeName","src":"23312:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7414,"mutability":"mutable","name":"p2","nameLocation":"23338:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23330:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7413,"name":"uint256","nodeType":"ElementaryTypeName","src":"23330:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7416,"mutability":"mutable","name":"p3","nameLocation":"23350:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23342:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7415,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23299:54:20"},"returnParameters":{"id":7418,"nodeType":"ParameterList","parameters":[],"src":"23368:0:20"},"scope":12860,"src":"23287:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7453,"nodeType":"Block","src":"23573:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":7445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23623:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":7446,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7433,"src":"23661:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7447,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7435,"src":"23665:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7448,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"23669:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7449,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7439,"src":"23673:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7443,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23599:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23603:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23599:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23599:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7442,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23583:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23583:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7452,"nodeType":"ExpressionStatement","src":"23583:94:20"}]},"id":7454,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23495:3:20","nodeType":"FunctionDefinition","parameters":{"id":7440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7433,"mutability":"mutable","name":"p0","nameLocation":"23507:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23499:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7432,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7435,"mutability":"mutable","name":"p1","nameLocation":"23525:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23511:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7434,"name":"string","nodeType":"ElementaryTypeName","src":"23511:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7437,"mutability":"mutable","name":"p2","nameLocation":"23543:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23529:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7436,"name":"string","nodeType":"ElementaryTypeName","src":"23529:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7439,"mutability":"mutable","name":"p3","nameLocation":"23555:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23547:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7438,"name":"uint256","nodeType":"ElementaryTypeName","src":"23547:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23498:60:20"},"returnParameters":{"id":7441,"nodeType":"ParameterList","parameters":[],"src":"23573:0:20"},"scope":12860,"src":"23486:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7476,"nodeType":"Block","src":"23783:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":7468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23833:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":7469,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7456,"src":"23870:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7470,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7458,"src":"23874:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7471,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"23878:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7472,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7462,"src":"23882:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7466,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23809:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23813:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23809:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23809:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7465,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23793:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23793:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7475,"nodeType":"ExpressionStatement","src":"23793:93:20"}]},"id":7477,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23699:3:20","nodeType":"FunctionDefinition","parameters":{"id":7463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7456,"mutability":"mutable","name":"p0","nameLocation":"23711:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23703:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7455,"name":"uint256","nodeType":"ElementaryTypeName","src":"23703:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7458,"mutability":"mutable","name":"p1","nameLocation":"23729:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23715:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7457,"name":"string","nodeType":"ElementaryTypeName","src":"23715:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7460,"mutability":"mutable","name":"p2","nameLocation":"23747:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23733:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7459,"name":"string","nodeType":"ElementaryTypeName","src":"23733:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7462,"mutability":"mutable","name":"p3","nameLocation":"23765:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23751:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7461,"name":"string","nodeType":"ElementaryTypeName","src":"23751:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23702:66:20"},"returnParameters":{"id":7464,"nodeType":"ParameterList","parameters":[],"src":"23783:0:20"},"scope":12860,"src":"23690:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7499,"nodeType":"Block","src":"23983:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":7491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24033:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":7492,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7479,"src":"24068:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7493,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"24072:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7494,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"24076:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7495,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"24080:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24009:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24013:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24009:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7488,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23993:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23993:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7498,"nodeType":"ExpressionStatement","src":"23993:91:20"}]},"id":7500,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23908:3:20","nodeType":"FunctionDefinition","parameters":{"id":7486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7479,"mutability":"mutable","name":"p0","nameLocation":"23920:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23912:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7478,"name":"uint256","nodeType":"ElementaryTypeName","src":"23912:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7481,"mutability":"mutable","name":"p1","nameLocation":"23938:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23924:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7480,"name":"string","nodeType":"ElementaryTypeName","src":"23924:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7483,"mutability":"mutable","name":"p2","nameLocation":"23956:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23942:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7482,"name":"string","nodeType":"ElementaryTypeName","src":"23942:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7485,"mutability":"mutable","name":"p3","nameLocation":"23965:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23960:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7484,"name":"bool","nodeType":"ElementaryTypeName","src":"23960:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23911:57:20"},"returnParameters":{"id":7487,"nodeType":"ParameterList","parameters":[],"src":"23983:0:20"},"scope":12860,"src":"23899:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7522,"nodeType":"Block","src":"24184:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":7514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24234:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":7515,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"24272:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7516,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7504,"src":"24276:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7517,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"24280:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7518,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"24284:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7512,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24210:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24214:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24210:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24210:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7511,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24194:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24194:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7521,"nodeType":"ExpressionStatement","src":"24194:94:20"}]},"id":7523,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24106:3:20","nodeType":"FunctionDefinition","parameters":{"id":7509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7502,"mutability":"mutable","name":"p0","nameLocation":"24118:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24110:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7501,"name":"uint256","nodeType":"ElementaryTypeName","src":"24110:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7504,"mutability":"mutable","name":"p1","nameLocation":"24136:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24122:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7503,"name":"string","nodeType":"ElementaryTypeName","src":"24122:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7506,"mutability":"mutable","name":"p2","nameLocation":"24154:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24140:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7505,"name":"string","nodeType":"ElementaryTypeName","src":"24140:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7508,"mutability":"mutable","name":"p3","nameLocation":"24166:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24158:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7507,"name":"address","nodeType":"ElementaryTypeName","src":"24158:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24109:60:20"},"returnParameters":{"id":7510,"nodeType":"ParameterList","parameters":[],"src":"24184:0:20"},"scope":12860,"src":"24097:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7545,"nodeType":"Block","src":"24379:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24429:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":7538,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7525,"src":"24465:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7539,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7527,"src":"24469:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7540,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"24473:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7541,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"24477:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7535,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24405:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24409:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24405:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24405:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7534,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24389:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24389:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7544,"nodeType":"ExpressionStatement","src":"24389:92:20"}]},"id":7546,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24310:3:20","nodeType":"FunctionDefinition","parameters":{"id":7532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7525,"mutability":"mutable","name":"p0","nameLocation":"24322:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24314:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7524,"name":"uint256","nodeType":"ElementaryTypeName","src":"24314:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7527,"mutability":"mutable","name":"p1","nameLocation":"24340:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24326:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7526,"name":"string","nodeType":"ElementaryTypeName","src":"24326:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7529,"mutability":"mutable","name":"p2","nameLocation":"24349:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24344:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7528,"name":"bool","nodeType":"ElementaryTypeName","src":"24344:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7531,"mutability":"mutable","name":"p3","nameLocation":"24361:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24353:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7530,"name":"uint256","nodeType":"ElementaryTypeName","src":"24353:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24313:51:20"},"returnParameters":{"id":7533,"nodeType":"ParameterList","parameters":[],"src":"24379:0:20"},"scope":12860,"src":"24301:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7568,"nodeType":"Block","src":"24578:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":7560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24628:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":7561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7548,"src":"24663:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7550,"src":"24667:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"24671:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7564,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"24675:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24604:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24608:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24604:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24604:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24588:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24588:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7567,"nodeType":"ExpressionStatement","src":"24588:91:20"}]},"id":7569,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24503:3:20","nodeType":"FunctionDefinition","parameters":{"id":7555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7548,"mutability":"mutable","name":"p0","nameLocation":"24515:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7547,"name":"uint256","nodeType":"ElementaryTypeName","src":"24507:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7550,"mutability":"mutable","name":"p1","nameLocation":"24533:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24519:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7549,"name":"string","nodeType":"ElementaryTypeName","src":"24519:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7552,"mutability":"mutable","name":"p2","nameLocation":"24542:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24537:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7551,"name":"bool","nodeType":"ElementaryTypeName","src":"24537:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7554,"mutability":"mutable","name":"p3","nameLocation":"24560:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24546:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7553,"name":"string","nodeType":"ElementaryTypeName","src":"24546:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24506:57:20"},"returnParameters":{"id":7556,"nodeType":"ParameterList","parameters":[],"src":"24578:0:20"},"scope":12860,"src":"24494:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7591,"nodeType":"Block","src":"24767:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":7583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24817:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":7584,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7571,"src":"24850:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7585,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7573,"src":"24854:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7586,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7575,"src":"24858:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7587,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7577,"src":"24862:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24793:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24797:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24793:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24793:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7580,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24777:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24777:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7590,"nodeType":"ExpressionStatement","src":"24777:89:20"}]},"id":7592,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24701:3:20","nodeType":"FunctionDefinition","parameters":{"id":7578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7571,"mutability":"mutable","name":"p0","nameLocation":"24713:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24705:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7570,"name":"uint256","nodeType":"ElementaryTypeName","src":"24705:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7573,"mutability":"mutable","name":"p1","nameLocation":"24731:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24717:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7572,"name":"string","nodeType":"ElementaryTypeName","src":"24717:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7575,"mutability":"mutable","name":"p2","nameLocation":"24740:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24735:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7574,"name":"bool","nodeType":"ElementaryTypeName","src":"24735:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7577,"mutability":"mutable","name":"p3","nameLocation":"24749:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7576,"name":"bool","nodeType":"ElementaryTypeName","src":"24744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24704:48:20"},"returnParameters":{"id":7579,"nodeType":"ParameterList","parameters":[],"src":"24767:0:20"},"scope":12860,"src":"24692:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7614,"nodeType":"Block","src":"24957:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":7606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25007:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":7607,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7594,"src":"25043:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7608,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7596,"src":"25047:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7609,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7598,"src":"25051:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7610,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"25055:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7604,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24983:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24983:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24983:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7603,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24967:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24967:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7613,"nodeType":"ExpressionStatement","src":"24967:92:20"}]},"id":7615,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24888:3:20","nodeType":"FunctionDefinition","parameters":{"id":7601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7594,"mutability":"mutable","name":"p0","nameLocation":"24900:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24892:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7593,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7596,"mutability":"mutable","name":"p1","nameLocation":"24918:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24904:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7595,"name":"string","nodeType":"ElementaryTypeName","src":"24904:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7598,"mutability":"mutable","name":"p2","nameLocation":"24927:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24922:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7597,"name":"bool","nodeType":"ElementaryTypeName","src":"24922:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7600,"mutability":"mutable","name":"p3","nameLocation":"24939:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24931:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7599,"name":"address","nodeType":"ElementaryTypeName","src":"24931:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24891:51:20"},"returnParameters":{"id":7602,"nodeType":"ParameterList","parameters":[],"src":"24957:0:20"},"scope":12860,"src":"24879:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7637,"nodeType":"Block","src":"25153:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":7629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25203:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":7630,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7617,"src":"25242:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7631,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7619,"src":"25246:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7632,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7621,"src":"25250:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7633,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7623,"src":"25254:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7627,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25179:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25183:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25179:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25179:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7626,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25163:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25163:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7636,"nodeType":"ExpressionStatement","src":"25163:95:20"}]},"id":7638,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25081:3:20","nodeType":"FunctionDefinition","parameters":{"id":7624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7617,"mutability":"mutable","name":"p0","nameLocation":"25093:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25085:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7616,"name":"uint256","nodeType":"ElementaryTypeName","src":"25085:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7619,"mutability":"mutable","name":"p1","nameLocation":"25111:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25097:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7618,"name":"string","nodeType":"ElementaryTypeName","src":"25097:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7621,"mutability":"mutable","name":"p2","nameLocation":"25123:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25115:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7620,"name":"address","nodeType":"ElementaryTypeName","src":"25115:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7623,"mutability":"mutable","name":"p3","nameLocation":"25135:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25127:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7622,"name":"uint256","nodeType":"ElementaryTypeName","src":"25127:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25084:54:20"},"returnParameters":{"id":7625,"nodeType":"ParameterList","parameters":[],"src":"25153:0:20"},"scope":12860,"src":"25072:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7660,"nodeType":"Block","src":"25358:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":7652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25408:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":7653,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7640,"src":"25446:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7654,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7642,"src":"25450:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7655,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7644,"src":"25454:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7656,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7646,"src":"25458:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7650,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25384:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25388:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25384:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25384:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7649,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25368:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25368:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7659,"nodeType":"ExpressionStatement","src":"25368:94:20"}]},"id":7661,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25280:3:20","nodeType":"FunctionDefinition","parameters":{"id":7647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7640,"mutability":"mutable","name":"p0","nameLocation":"25292:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25284:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7639,"name":"uint256","nodeType":"ElementaryTypeName","src":"25284:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7642,"mutability":"mutable","name":"p1","nameLocation":"25310:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25296:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7641,"name":"string","nodeType":"ElementaryTypeName","src":"25296:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7644,"mutability":"mutable","name":"p2","nameLocation":"25322:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25314:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7643,"name":"address","nodeType":"ElementaryTypeName","src":"25314:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7646,"mutability":"mutable","name":"p3","nameLocation":"25340:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25326:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7645,"name":"string","nodeType":"ElementaryTypeName","src":"25326:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25283:60:20"},"returnParameters":{"id":7648,"nodeType":"ParameterList","parameters":[],"src":"25358:0:20"},"scope":12860,"src":"25271:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7683,"nodeType":"Block","src":"25553:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":7675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25603:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":7676,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"25639:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7677,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7665,"src":"25643:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7678,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7667,"src":"25647:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7679,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7669,"src":"25651:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7673,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25579:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25583:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25579:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7672,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25563:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25563:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7682,"nodeType":"ExpressionStatement","src":"25563:92:20"}]},"id":7684,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25484:3:20","nodeType":"FunctionDefinition","parameters":{"id":7670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7663,"mutability":"mutable","name":"p0","nameLocation":"25496:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25488:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7662,"name":"uint256","nodeType":"ElementaryTypeName","src":"25488:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7665,"mutability":"mutable","name":"p1","nameLocation":"25514:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25500:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7664,"name":"string","nodeType":"ElementaryTypeName","src":"25500:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7667,"mutability":"mutable","name":"p2","nameLocation":"25526:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25518:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7666,"name":"address","nodeType":"ElementaryTypeName","src":"25518:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7669,"mutability":"mutable","name":"p3","nameLocation":"25535:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25530:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7668,"name":"bool","nodeType":"ElementaryTypeName","src":"25530:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25487:51:20"},"returnParameters":{"id":7671,"nodeType":"ParameterList","parameters":[],"src":"25553:0:20"},"scope":12860,"src":"25475:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7706,"nodeType":"Block","src":"25749:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":7698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25799:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":7699,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"25838:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7700,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7688,"src":"25842:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7701,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"25846:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7702,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7692,"src":"25850:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25775:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25779:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25775:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7695,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25759:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25759:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7705,"nodeType":"ExpressionStatement","src":"25759:95:20"}]},"id":7707,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25677:3:20","nodeType":"FunctionDefinition","parameters":{"id":7693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7686,"mutability":"mutable","name":"p0","nameLocation":"25689:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25681:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7685,"name":"uint256","nodeType":"ElementaryTypeName","src":"25681:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7688,"mutability":"mutable","name":"p1","nameLocation":"25707:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25693:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7687,"name":"string","nodeType":"ElementaryTypeName","src":"25693:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7690,"mutability":"mutable","name":"p2","nameLocation":"25719:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25711:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7689,"name":"address","nodeType":"ElementaryTypeName","src":"25711:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7692,"mutability":"mutable","name":"p3","nameLocation":"25731:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25723:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7691,"name":"address","nodeType":"ElementaryTypeName","src":"25723:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25680:54:20"},"returnParameters":{"id":7694,"nodeType":"ParameterList","parameters":[],"src":"25749:0:20"},"scope":12860,"src":"25668:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7729,"nodeType":"Block","src":"25939:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":7721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25989:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":7722,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"26026:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7723,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"26030:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7724,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"26034:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7725,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"26038:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7719,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25965:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25969:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25965:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25965:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7718,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25949:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25949:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7728,"nodeType":"ExpressionStatement","src":"25949:93:20"}]},"id":7730,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25876:3:20","nodeType":"FunctionDefinition","parameters":{"id":7716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7709,"mutability":"mutable","name":"p0","nameLocation":"25888:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25880:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7708,"name":"uint256","nodeType":"ElementaryTypeName","src":"25880:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7711,"mutability":"mutable","name":"p1","nameLocation":"25897:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25892:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7710,"name":"bool","nodeType":"ElementaryTypeName","src":"25892:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7713,"mutability":"mutable","name":"p2","nameLocation":"25909:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25901:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7712,"name":"uint256","nodeType":"ElementaryTypeName","src":"25901:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7715,"mutability":"mutable","name":"p3","nameLocation":"25921:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25913:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7714,"name":"uint256","nodeType":"ElementaryTypeName","src":"25913:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25879:45:20"},"returnParameters":{"id":7717,"nodeType":"ParameterList","parameters":[],"src":"25939:0:20"},"scope":12860,"src":"25867:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7752,"nodeType":"Block","src":"26133:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":7744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26183:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":7745,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"26219:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7746,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7734,"src":"26223:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7747,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"26227:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7748,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7738,"src":"26231:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26159:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26163:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26159:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26159:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7741,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26143:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26143:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7751,"nodeType":"ExpressionStatement","src":"26143:92:20"}]},"id":7753,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26064:3:20","nodeType":"FunctionDefinition","parameters":{"id":7739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7732,"mutability":"mutable","name":"p0","nameLocation":"26076:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26068:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7731,"name":"uint256","nodeType":"ElementaryTypeName","src":"26068:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7734,"mutability":"mutable","name":"p1","nameLocation":"26085:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26080:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7733,"name":"bool","nodeType":"ElementaryTypeName","src":"26080:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7736,"mutability":"mutable","name":"p2","nameLocation":"26097:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26089:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7735,"name":"uint256","nodeType":"ElementaryTypeName","src":"26089:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7738,"mutability":"mutable","name":"p3","nameLocation":"26115:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26101:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7737,"name":"string","nodeType":"ElementaryTypeName","src":"26101:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26067:51:20"},"returnParameters":{"id":7740,"nodeType":"ParameterList","parameters":[],"src":"26133:0:20"},"scope":12860,"src":"26055:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7775,"nodeType":"Block","src":"26317:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":7767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26367:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":7768,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"26401:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7769,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7757,"src":"26405:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7770,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7759,"src":"26409:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7771,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7761,"src":"26413:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7765,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26343:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26347:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26343:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26343:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7764,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26327:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26327:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7774,"nodeType":"ExpressionStatement","src":"26327:90:20"}]},"id":7776,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26257:3:20","nodeType":"FunctionDefinition","parameters":{"id":7762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7755,"mutability":"mutable","name":"p0","nameLocation":"26269:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26261:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7754,"name":"uint256","nodeType":"ElementaryTypeName","src":"26261:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7757,"mutability":"mutable","name":"p1","nameLocation":"26278:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26273:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7756,"name":"bool","nodeType":"ElementaryTypeName","src":"26273:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7759,"mutability":"mutable","name":"p2","nameLocation":"26290:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26282:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7758,"name":"uint256","nodeType":"ElementaryTypeName","src":"26282:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7761,"mutability":"mutable","name":"p3","nameLocation":"26299:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26294:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7760,"name":"bool","nodeType":"ElementaryTypeName","src":"26294:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26260:42:20"},"returnParameters":{"id":7763,"nodeType":"ParameterList","parameters":[],"src":"26317:0:20"},"scope":12860,"src":"26248:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7798,"nodeType":"Block","src":"26502:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":7790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26552:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":7791,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"26589:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7792,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7780,"src":"26593:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7793,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"26597:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7794,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"26601:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26528:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26532:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26528:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26528:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7787,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26512:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26512:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7797,"nodeType":"ExpressionStatement","src":"26512:93:20"}]},"id":7799,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26439:3:20","nodeType":"FunctionDefinition","parameters":{"id":7785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7778,"mutability":"mutable","name":"p0","nameLocation":"26451:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26443:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7777,"name":"uint256","nodeType":"ElementaryTypeName","src":"26443:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7780,"mutability":"mutable","name":"p1","nameLocation":"26460:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26455:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7779,"name":"bool","nodeType":"ElementaryTypeName","src":"26455:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7782,"mutability":"mutable","name":"p2","nameLocation":"26472:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26464:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7781,"name":"uint256","nodeType":"ElementaryTypeName","src":"26464:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7784,"mutability":"mutable","name":"p3","nameLocation":"26484:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26476:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7783,"name":"address","nodeType":"ElementaryTypeName","src":"26476:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26442:45:20"},"returnParameters":{"id":7786,"nodeType":"ParameterList","parameters":[],"src":"26502:0:20"},"scope":12860,"src":"26430:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7821,"nodeType":"Block","src":"26696:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":7813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26746:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":7814,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7801,"src":"26782:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7815,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7803,"src":"26786:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7816,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"26790:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7817,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7807,"src":"26794:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7811,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26722:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26726:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26722:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7810,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26706:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26706:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7820,"nodeType":"ExpressionStatement","src":"26706:92:20"}]},"id":7822,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26627:3:20","nodeType":"FunctionDefinition","parameters":{"id":7808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7801,"mutability":"mutable","name":"p0","nameLocation":"26639:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26631:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7800,"name":"uint256","nodeType":"ElementaryTypeName","src":"26631:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7803,"mutability":"mutable","name":"p1","nameLocation":"26648:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26643:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7802,"name":"bool","nodeType":"ElementaryTypeName","src":"26643:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7805,"mutability":"mutable","name":"p2","nameLocation":"26666:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26652:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7804,"name":"string","nodeType":"ElementaryTypeName","src":"26652:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7807,"mutability":"mutable","name":"p3","nameLocation":"26678:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26670:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7806,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26630:51:20"},"returnParameters":{"id":7809,"nodeType":"ParameterList","parameters":[],"src":"26696:0:20"},"scope":12860,"src":"26618:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7844,"nodeType":"Block","src":"26895:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":7836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26945:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":7837,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"26980:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7838,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7826,"src":"26984:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7839,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7828,"src":"26988:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7840,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7830,"src":"26992:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7834,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26921:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26925:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26921:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26921:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7833,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26905:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7843,"nodeType":"ExpressionStatement","src":"26905:91:20"}]},"id":7845,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26820:3:20","nodeType":"FunctionDefinition","parameters":{"id":7831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7824,"mutability":"mutable","name":"p0","nameLocation":"26832:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26824:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7823,"name":"uint256","nodeType":"ElementaryTypeName","src":"26824:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7826,"mutability":"mutable","name":"p1","nameLocation":"26841:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26836:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7825,"name":"bool","nodeType":"ElementaryTypeName","src":"26836:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7828,"mutability":"mutable","name":"p2","nameLocation":"26859:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26845:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7827,"name":"string","nodeType":"ElementaryTypeName","src":"26845:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7830,"mutability":"mutable","name":"p3","nameLocation":"26877:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26863:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7829,"name":"string","nodeType":"ElementaryTypeName","src":"26863:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26823:57:20"},"returnParameters":{"id":7832,"nodeType":"ParameterList","parameters":[],"src":"26895:0:20"},"scope":12860,"src":"26811:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7867,"nodeType":"Block","src":"27084:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":7859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27134:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":7860,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7847,"src":"27167:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7861,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7849,"src":"27171:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7862,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7851,"src":"27175:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7863,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7853,"src":"27179:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27110:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27114:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27110:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27110:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7856,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27094:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27094:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7866,"nodeType":"ExpressionStatement","src":"27094:89:20"}]},"id":7868,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27018:3:20","nodeType":"FunctionDefinition","parameters":{"id":7854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7847,"mutability":"mutable","name":"p0","nameLocation":"27030:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27022:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7846,"name":"uint256","nodeType":"ElementaryTypeName","src":"27022:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7849,"mutability":"mutable","name":"p1","nameLocation":"27039:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27034:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7848,"name":"bool","nodeType":"ElementaryTypeName","src":"27034:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7851,"mutability":"mutable","name":"p2","nameLocation":"27057:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27043:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7850,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7853,"mutability":"mutable","name":"p3","nameLocation":"27066:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27061:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7852,"name":"bool","nodeType":"ElementaryTypeName","src":"27061:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27021:48:20"},"returnParameters":{"id":7855,"nodeType":"ParameterList","parameters":[],"src":"27084:0:20"},"scope":12860,"src":"27009:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7890,"nodeType":"Block","src":"27274:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27324:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":7883,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"27360:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7884,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"27364:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7885,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"27368:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7886,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"27372:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27300:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27304:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27300:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27300:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7879,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27284:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27284:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7889,"nodeType":"ExpressionStatement","src":"27284:92:20"}]},"id":7891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27205:3:20","nodeType":"FunctionDefinition","parameters":{"id":7877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7870,"mutability":"mutable","name":"p0","nameLocation":"27217:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27209:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7869,"name":"uint256","nodeType":"ElementaryTypeName","src":"27209:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7872,"mutability":"mutable","name":"p1","nameLocation":"27226:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27221:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7871,"name":"bool","nodeType":"ElementaryTypeName","src":"27221:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7874,"mutability":"mutable","name":"p2","nameLocation":"27244:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27230:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7873,"name":"string","nodeType":"ElementaryTypeName","src":"27230:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7876,"mutability":"mutable","name":"p3","nameLocation":"27256:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27248:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7875,"name":"address","nodeType":"ElementaryTypeName","src":"27248:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27208:51:20"},"returnParameters":{"id":7878,"nodeType":"ParameterList","parameters":[],"src":"27274:0:20"},"scope":12860,"src":"27196:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7913,"nodeType":"Block","src":"27458:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":7905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27508:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":7906,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"27542:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7907,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"27546:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7908,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"27550:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7909,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7899,"src":"27554:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27484:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27488:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27484:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7902,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27468:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27468:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7912,"nodeType":"ExpressionStatement","src":"27468:90:20"}]},"id":7914,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27398:3:20","nodeType":"FunctionDefinition","parameters":{"id":7900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7893,"mutability":"mutable","name":"p0","nameLocation":"27410:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27402:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"27402:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7895,"mutability":"mutable","name":"p1","nameLocation":"27419:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27414:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7894,"name":"bool","nodeType":"ElementaryTypeName","src":"27414:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7897,"mutability":"mutable","name":"p2","nameLocation":"27428:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27423:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7896,"name":"bool","nodeType":"ElementaryTypeName","src":"27423:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7899,"mutability":"mutable","name":"p3","nameLocation":"27440:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27432:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7898,"name":"uint256","nodeType":"ElementaryTypeName","src":"27432:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27401:42:20"},"returnParameters":{"id":7901,"nodeType":"ParameterList","parameters":[],"src":"27458:0:20"},"scope":12860,"src":"27389:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7936,"nodeType":"Block","src":"27646:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":7928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27696:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":7929,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7916,"src":"27729:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7930,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"27733:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7931,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7920,"src":"27737:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7932,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7922,"src":"27741:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27672:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27676:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27672:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27672:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7925,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27656:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27656:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7935,"nodeType":"ExpressionStatement","src":"27656:89:20"}]},"id":7937,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27580:3:20","nodeType":"FunctionDefinition","parameters":{"id":7923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7916,"mutability":"mutable","name":"p0","nameLocation":"27592:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27584:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7915,"name":"uint256","nodeType":"ElementaryTypeName","src":"27584:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7918,"mutability":"mutable","name":"p1","nameLocation":"27601:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27596:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7917,"name":"bool","nodeType":"ElementaryTypeName","src":"27596:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7920,"mutability":"mutable","name":"p2","nameLocation":"27610:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27605:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7919,"name":"bool","nodeType":"ElementaryTypeName","src":"27605:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7922,"mutability":"mutable","name":"p3","nameLocation":"27628:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27614:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7921,"name":"string","nodeType":"ElementaryTypeName","src":"27614:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27583:48:20"},"returnParameters":{"id":7924,"nodeType":"ParameterList","parameters":[],"src":"27646:0:20"},"scope":12860,"src":"27571:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7959,"nodeType":"Block","src":"27824:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":7951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27874:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":7952,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7939,"src":"27905:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7953,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"27909:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7954,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7943,"src":"27913:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7955,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"27917:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7949,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27850:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27854:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27850:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27850:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7948,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27834:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27834:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"ExpressionStatement","src":"27834:87:20"}]},"id":7960,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27767:3:20","nodeType":"FunctionDefinition","parameters":{"id":7946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7939,"mutability":"mutable","name":"p0","nameLocation":"27779:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27771:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7938,"name":"uint256","nodeType":"ElementaryTypeName","src":"27771:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7941,"mutability":"mutable","name":"p1","nameLocation":"27788:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27783:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7940,"name":"bool","nodeType":"ElementaryTypeName","src":"27783:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7943,"mutability":"mutable","name":"p2","nameLocation":"27797:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27792:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7942,"name":"bool","nodeType":"ElementaryTypeName","src":"27792:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7945,"mutability":"mutable","name":"p3","nameLocation":"27806:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27801:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7944,"name":"bool","nodeType":"ElementaryTypeName","src":"27801:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27770:39:20"},"returnParameters":{"id":7947,"nodeType":"ParameterList","parameters":[],"src":"27824:0:20"},"scope":12860,"src":"27758:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7982,"nodeType":"Block","src":"28003:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":7974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28053:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":7975,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7962,"src":"28087:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7976,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7964,"src":"28091:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7977,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7966,"src":"28095:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7978,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7968,"src":"28099:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28029:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28033:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28029:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28029:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7971,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28013:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28013:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7981,"nodeType":"ExpressionStatement","src":"28013:90:20"}]},"id":7983,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27943:3:20","nodeType":"FunctionDefinition","parameters":{"id":7969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7962,"mutability":"mutable","name":"p0","nameLocation":"27955:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27947:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7961,"name":"uint256","nodeType":"ElementaryTypeName","src":"27947:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7964,"mutability":"mutable","name":"p1","nameLocation":"27964:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27959:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7963,"name":"bool","nodeType":"ElementaryTypeName","src":"27959:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7966,"mutability":"mutable","name":"p2","nameLocation":"27973:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27968:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7965,"name":"bool","nodeType":"ElementaryTypeName","src":"27968:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7968,"mutability":"mutable","name":"p3","nameLocation":"27985:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27977:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7967,"name":"address","nodeType":"ElementaryTypeName","src":"27977:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27946:42:20"},"returnParameters":{"id":7970,"nodeType":"ParameterList","parameters":[],"src":"28003:0:20"},"scope":12860,"src":"27934:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8005,"nodeType":"Block","src":"28188:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":7997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28238:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":7998,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"28275:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7999,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7987,"src":"28279:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8000,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7989,"src":"28283:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8001,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7991,"src":"28287:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28214:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28218:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28214:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28214:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7994,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28198:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8004,"nodeType":"ExpressionStatement","src":"28198:93:20"}]},"id":8006,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28125:3:20","nodeType":"FunctionDefinition","parameters":{"id":7992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7985,"mutability":"mutable","name":"p0","nameLocation":"28137:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28129:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7984,"name":"uint256","nodeType":"ElementaryTypeName","src":"28129:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7987,"mutability":"mutable","name":"p1","nameLocation":"28146:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28141:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7986,"name":"bool","nodeType":"ElementaryTypeName","src":"28141:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7989,"mutability":"mutable","name":"p2","nameLocation":"28158:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28150:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7988,"name":"address","nodeType":"ElementaryTypeName","src":"28150:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7991,"mutability":"mutable","name":"p3","nameLocation":"28170:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28162:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7990,"name":"uint256","nodeType":"ElementaryTypeName","src":"28162:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28128:45:20"},"returnParameters":{"id":7993,"nodeType":"ParameterList","parameters":[],"src":"28188:0:20"},"scope":12860,"src":"28116:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8028,"nodeType":"Block","src":"28382:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":8020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28432:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":8021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8008,"src":"28468:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8022,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8010,"src":"28472:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8023,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8012,"src":"28476:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8024,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8014,"src":"28480:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28408:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28412:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28408:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28408:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28392:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28392:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8027,"nodeType":"ExpressionStatement","src":"28392:92:20"}]},"id":8029,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28313:3:20","nodeType":"FunctionDefinition","parameters":{"id":8015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8008,"mutability":"mutable","name":"p0","nameLocation":"28325:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28317:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8007,"name":"uint256","nodeType":"ElementaryTypeName","src":"28317:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8010,"mutability":"mutable","name":"p1","nameLocation":"28334:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28329:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8009,"name":"bool","nodeType":"ElementaryTypeName","src":"28329:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8012,"mutability":"mutable","name":"p2","nameLocation":"28346:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28338:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8011,"name":"address","nodeType":"ElementaryTypeName","src":"28338:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8014,"mutability":"mutable","name":"p3","nameLocation":"28364:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28350:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8013,"name":"string","nodeType":"ElementaryTypeName","src":"28350:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28316:51:20"},"returnParameters":{"id":8016,"nodeType":"ParameterList","parameters":[],"src":"28382:0:20"},"scope":12860,"src":"28304:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8051,"nodeType":"Block","src":"28566:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":8043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28616:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":8044,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"28650:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8045,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8033,"src":"28654:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8046,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8035,"src":"28658:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8047,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8037,"src":"28662:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28592:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28596:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28592:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28592:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8040,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28576:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28576:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8050,"nodeType":"ExpressionStatement","src":"28576:90:20"}]},"id":8052,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28506:3:20","nodeType":"FunctionDefinition","parameters":{"id":8038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8031,"mutability":"mutable","name":"p0","nameLocation":"28518:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28510:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8030,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8033,"mutability":"mutable","name":"p1","nameLocation":"28527:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28522:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8032,"name":"bool","nodeType":"ElementaryTypeName","src":"28522:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8035,"mutability":"mutable","name":"p2","nameLocation":"28539:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28531:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8034,"name":"address","nodeType":"ElementaryTypeName","src":"28531:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8037,"mutability":"mutable","name":"p3","nameLocation":"28548:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28543:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8036,"name":"bool","nodeType":"ElementaryTypeName","src":"28543:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28509:42:20"},"returnParameters":{"id":8039,"nodeType":"ParameterList","parameters":[],"src":"28566:0:20"},"scope":12860,"src":"28497:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8074,"nodeType":"Block","src":"28751:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":8066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28801:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":8067,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8054,"src":"28838:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8068,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8056,"src":"28842:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8069,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8058,"src":"28846:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8070,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8060,"src":"28850:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8064,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28777:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28781:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28777:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28777:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8063,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28761:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28761:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8073,"nodeType":"ExpressionStatement","src":"28761:93:20"}]},"id":8075,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28688:3:20","nodeType":"FunctionDefinition","parameters":{"id":8061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8054,"mutability":"mutable","name":"p0","nameLocation":"28700:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28692:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8053,"name":"uint256","nodeType":"ElementaryTypeName","src":"28692:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8056,"mutability":"mutable","name":"p1","nameLocation":"28709:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28704:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8055,"name":"bool","nodeType":"ElementaryTypeName","src":"28704:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8058,"mutability":"mutable","name":"p2","nameLocation":"28721:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28713:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8057,"name":"address","nodeType":"ElementaryTypeName","src":"28713:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8060,"mutability":"mutable","name":"p3","nameLocation":"28733:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28725:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8059,"name":"address","nodeType":"ElementaryTypeName","src":"28725:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28691:45:20"},"returnParameters":{"id":8062,"nodeType":"ParameterList","parameters":[],"src":"28751:0:20"},"scope":12860,"src":"28679:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8097,"nodeType":"Block","src":"28942:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":8089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28992:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":8090,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"29032:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8091,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"29036:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8092,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"29040:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8093,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8083,"src":"29044:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8087,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28968:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28972:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28968:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28968:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8086,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28952:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28952:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8096,"nodeType":"ExpressionStatement","src":"28952:96:20"}]},"id":8098,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28876:3:20","nodeType":"FunctionDefinition","parameters":{"id":8084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8077,"mutability":"mutable","name":"p0","nameLocation":"28888:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28880:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8076,"name":"uint256","nodeType":"ElementaryTypeName","src":"28880:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8079,"mutability":"mutable","name":"p1","nameLocation":"28900:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28892:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8078,"name":"address","nodeType":"ElementaryTypeName","src":"28892:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8081,"mutability":"mutable","name":"p2","nameLocation":"28912:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28904:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8080,"name":"uint256","nodeType":"ElementaryTypeName","src":"28904:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8083,"mutability":"mutable","name":"p3","nameLocation":"28924:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28916:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8082,"name":"uint256","nodeType":"ElementaryTypeName","src":"28916:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28879:48:20"},"returnParameters":{"id":8085,"nodeType":"ParameterList","parameters":[],"src":"28942:0:20"},"scope":12860,"src":"28867:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8120,"nodeType":"Block","src":"29142:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":8112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29192:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":8113,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"29231:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8114,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"29235:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8115,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"29239:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8116,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8106,"src":"29243:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8110,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29168:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29172:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29168:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29168:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8109,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29152:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29152:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8119,"nodeType":"ExpressionStatement","src":"29152:95:20"}]},"id":8121,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29070:3:20","nodeType":"FunctionDefinition","parameters":{"id":8107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"p0","nameLocation":"29082:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29074:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8099,"name":"uint256","nodeType":"ElementaryTypeName","src":"29074:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8102,"mutability":"mutable","name":"p1","nameLocation":"29094:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8101,"name":"address","nodeType":"ElementaryTypeName","src":"29086:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8104,"mutability":"mutable","name":"p2","nameLocation":"29106:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29098:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8103,"name":"uint256","nodeType":"ElementaryTypeName","src":"29098:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8106,"mutability":"mutable","name":"p3","nameLocation":"29124:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29110:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8105,"name":"string","nodeType":"ElementaryTypeName","src":"29110:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29073:54:20"},"returnParameters":{"id":8108,"nodeType":"ParameterList","parameters":[],"src":"29142:0:20"},"scope":12860,"src":"29061:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8143,"nodeType":"Block","src":"29332:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":8135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29382:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":8136,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"29419:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8137,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"29423:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8138,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8127,"src":"29427:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8139,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8129,"src":"29431:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29358:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29362:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29358:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29358:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8132,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29342:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29342:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8142,"nodeType":"ExpressionStatement","src":"29342:93:20"}]},"id":8144,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29269:3:20","nodeType":"FunctionDefinition","parameters":{"id":8130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8123,"mutability":"mutable","name":"p0","nameLocation":"29281:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29273:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8122,"name":"uint256","nodeType":"ElementaryTypeName","src":"29273:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8125,"mutability":"mutable","name":"p1","nameLocation":"29293:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29285:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8124,"name":"address","nodeType":"ElementaryTypeName","src":"29285:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8127,"mutability":"mutable","name":"p2","nameLocation":"29305:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29297:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8126,"name":"uint256","nodeType":"ElementaryTypeName","src":"29297:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8129,"mutability":"mutable","name":"p3","nameLocation":"29314:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29309:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8128,"name":"bool","nodeType":"ElementaryTypeName","src":"29309:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29272:45:20"},"returnParameters":{"id":8131,"nodeType":"ParameterList","parameters":[],"src":"29332:0:20"},"scope":12860,"src":"29260:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8166,"nodeType":"Block","src":"29523:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":8158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29573:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":8159,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8146,"src":"29613:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8160,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8148,"src":"29617:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8161,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8150,"src":"29621:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8162,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"29625:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29549:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29553:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29549:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8155,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29533:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8165,"nodeType":"ExpressionStatement","src":"29533:96:20"}]},"id":8167,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29457:3:20","nodeType":"FunctionDefinition","parameters":{"id":8153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8146,"mutability":"mutable","name":"p0","nameLocation":"29469:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29461:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8145,"name":"uint256","nodeType":"ElementaryTypeName","src":"29461:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8148,"mutability":"mutable","name":"p1","nameLocation":"29481:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29473:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8147,"name":"address","nodeType":"ElementaryTypeName","src":"29473:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8150,"mutability":"mutable","name":"p2","nameLocation":"29493:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29485:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8149,"name":"uint256","nodeType":"ElementaryTypeName","src":"29485:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8152,"mutability":"mutable","name":"p3","nameLocation":"29505:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29497:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8151,"name":"address","nodeType":"ElementaryTypeName","src":"29497:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29460:48:20"},"returnParameters":{"id":8154,"nodeType":"ParameterList","parameters":[],"src":"29523:0:20"},"scope":12860,"src":"29448:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8189,"nodeType":"Block","src":"29723:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":8181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29773:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":8182,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"29812:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8183,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8171,"src":"29816:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8184,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8173,"src":"29820:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8185,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"29824:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8179,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29749:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29753:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29749:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29749:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8178,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29733:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29733:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8188,"nodeType":"ExpressionStatement","src":"29733:95:20"}]},"id":8190,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29651:3:20","nodeType":"FunctionDefinition","parameters":{"id":8176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8169,"mutability":"mutable","name":"p0","nameLocation":"29663:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29655:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8168,"name":"uint256","nodeType":"ElementaryTypeName","src":"29655:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8171,"mutability":"mutable","name":"p1","nameLocation":"29675:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29667:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8170,"name":"address","nodeType":"ElementaryTypeName","src":"29667:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8173,"mutability":"mutable","name":"p2","nameLocation":"29693:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29679:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8172,"name":"string","nodeType":"ElementaryTypeName","src":"29679:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8175,"mutability":"mutable","name":"p3","nameLocation":"29705:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29697:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8174,"name":"uint256","nodeType":"ElementaryTypeName","src":"29697:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29654:54:20"},"returnParameters":{"id":8177,"nodeType":"ParameterList","parameters":[],"src":"29723:0:20"},"scope":12860,"src":"29642:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8212,"nodeType":"Block","src":"29928:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29978:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":8205,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8192,"src":"30016:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8206,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8194,"src":"30020:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8207,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8196,"src":"30024:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8208,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"30028:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"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"}],"expression":{"id":8202,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29954:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29958:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29954:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29954:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8201,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29938:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29938:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8211,"nodeType":"ExpressionStatement","src":"29938:94:20"}]},"id":8213,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29850:3:20","nodeType":"FunctionDefinition","parameters":{"id":8199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8192,"mutability":"mutable","name":"p0","nameLocation":"29862:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29854:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8191,"name":"uint256","nodeType":"ElementaryTypeName","src":"29854:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8194,"mutability":"mutable","name":"p1","nameLocation":"29874:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29866:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8193,"name":"address","nodeType":"ElementaryTypeName","src":"29866:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8196,"mutability":"mutable","name":"p2","nameLocation":"29892:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29878:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8195,"name":"string","nodeType":"ElementaryTypeName","src":"29878:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8198,"mutability":"mutable","name":"p3","nameLocation":"29910:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29896:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8197,"name":"string","nodeType":"ElementaryTypeName","src":"29896:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29853:60:20"},"returnParameters":{"id":8200,"nodeType":"ParameterList","parameters":[],"src":"29928:0:20"},"scope":12860,"src":"29841:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8235,"nodeType":"Block","src":"30123:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":8227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30173:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":8228,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8215,"src":"30209:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8229,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"30213:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8230,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"30217:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8231,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8221,"src":"30221:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8225,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30149:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30153:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30149:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30149:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8224,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30133:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30133:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8234,"nodeType":"ExpressionStatement","src":"30133:92:20"}]},"id":8236,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30054:3:20","nodeType":"FunctionDefinition","parameters":{"id":8222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8215,"mutability":"mutable","name":"p0","nameLocation":"30066:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30058:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30058:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8217,"mutability":"mutable","name":"p1","nameLocation":"30078:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30070:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8216,"name":"address","nodeType":"ElementaryTypeName","src":"30070:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8219,"mutability":"mutable","name":"p2","nameLocation":"30096:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30082:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8218,"name":"string","nodeType":"ElementaryTypeName","src":"30082:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8221,"mutability":"mutable","name":"p3","nameLocation":"30105:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30100:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8220,"name":"bool","nodeType":"ElementaryTypeName","src":"30100:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30057:51:20"},"returnParameters":{"id":8223,"nodeType":"ParameterList","parameters":[],"src":"30123:0:20"},"scope":12860,"src":"30045:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8258,"nodeType":"Block","src":"30319:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":8250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30369:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":8251,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8238,"src":"30408:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8252,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8240,"src":"30412:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8253,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8242,"src":"30416:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8254,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8244,"src":"30420:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30345:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30349:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30345:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30345:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8247,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30329:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30329:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8257,"nodeType":"ExpressionStatement","src":"30329:95:20"}]},"id":8259,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30247:3:20","nodeType":"FunctionDefinition","parameters":{"id":8245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8238,"mutability":"mutable","name":"p0","nameLocation":"30259:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30251:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8237,"name":"uint256","nodeType":"ElementaryTypeName","src":"30251:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8240,"mutability":"mutable","name":"p1","nameLocation":"30271:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30263:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8239,"name":"address","nodeType":"ElementaryTypeName","src":"30263:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8242,"mutability":"mutable","name":"p2","nameLocation":"30289:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30275:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8241,"name":"string","nodeType":"ElementaryTypeName","src":"30275:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8244,"mutability":"mutable","name":"p3","nameLocation":"30301:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30293:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8243,"name":"address","nodeType":"ElementaryTypeName","src":"30293:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:54:20"},"returnParameters":{"id":8246,"nodeType":"ParameterList","parameters":[],"src":"30319:0:20"},"scope":12860,"src":"30238:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8281,"nodeType":"Block","src":"30509:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":8273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30559:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":8274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8261,"src":"30596:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8275,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8263,"src":"30600:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8276,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8265,"src":"30604:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8277,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8267,"src":"30608:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30535:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30539:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30535:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30535:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30519:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30519:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8280,"nodeType":"ExpressionStatement","src":"30519:93:20"}]},"id":8282,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30446:3:20","nodeType":"FunctionDefinition","parameters":{"id":8268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8261,"mutability":"mutable","name":"p0","nameLocation":"30458:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30450:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8260,"name":"uint256","nodeType":"ElementaryTypeName","src":"30450:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8263,"mutability":"mutable","name":"p1","nameLocation":"30470:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30462:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8262,"name":"address","nodeType":"ElementaryTypeName","src":"30462:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8265,"mutability":"mutable","name":"p2","nameLocation":"30479:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30474:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8264,"name":"bool","nodeType":"ElementaryTypeName","src":"30474:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8267,"mutability":"mutable","name":"p3","nameLocation":"30491:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30483:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8266,"name":"uint256","nodeType":"ElementaryTypeName","src":"30483:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30449:45:20"},"returnParameters":{"id":8269,"nodeType":"ParameterList","parameters":[],"src":"30509:0:20"},"scope":12860,"src":"30437:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8304,"nodeType":"Block","src":"30703:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":8296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30753:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":8297,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8284,"src":"30789:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8298,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8286,"src":"30793:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8299,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8288,"src":"30797:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8300,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"30801:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8294,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30729:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30733:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30729:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30729:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8293,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30713:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30713:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8303,"nodeType":"ExpressionStatement","src":"30713:92:20"}]},"id":8305,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30634:3:20","nodeType":"FunctionDefinition","parameters":{"id":8291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8284,"mutability":"mutable","name":"p0","nameLocation":"30646:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30638:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8283,"name":"uint256","nodeType":"ElementaryTypeName","src":"30638:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8286,"mutability":"mutable","name":"p1","nameLocation":"30658:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30650:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8285,"name":"address","nodeType":"ElementaryTypeName","src":"30650:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8288,"mutability":"mutable","name":"p2","nameLocation":"30667:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30662:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8287,"name":"bool","nodeType":"ElementaryTypeName","src":"30662:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8290,"mutability":"mutable","name":"p3","nameLocation":"30685:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30671:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8289,"name":"string","nodeType":"ElementaryTypeName","src":"30671:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30637:51:20"},"returnParameters":{"id":8292,"nodeType":"ParameterList","parameters":[],"src":"30703:0:20"},"scope":12860,"src":"30625:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8327,"nodeType":"Block","src":"30887:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":8319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30937:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":8320,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"30971:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8321,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"30975:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8322,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"30979:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8323,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8313,"src":"30983:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30913:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30917:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30913:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30913:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8316,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30897:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30897:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8326,"nodeType":"ExpressionStatement","src":"30897:90:20"}]},"id":8328,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30827:3:20","nodeType":"FunctionDefinition","parameters":{"id":8314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8307,"mutability":"mutable","name":"p0","nameLocation":"30839:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30831:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8306,"name":"uint256","nodeType":"ElementaryTypeName","src":"30831:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8309,"mutability":"mutable","name":"p1","nameLocation":"30851:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30843:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8308,"name":"address","nodeType":"ElementaryTypeName","src":"30843:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8311,"mutability":"mutable","name":"p2","nameLocation":"30860:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30855:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8310,"name":"bool","nodeType":"ElementaryTypeName","src":"30855:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8313,"mutability":"mutable","name":"p3","nameLocation":"30869:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30864:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8312,"name":"bool","nodeType":"ElementaryTypeName","src":"30864:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30830:42:20"},"returnParameters":{"id":8315,"nodeType":"ParameterList","parameters":[],"src":"30887:0:20"},"scope":12860,"src":"30818:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8350,"nodeType":"Block","src":"31072:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":8342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31122:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":8343,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"31159:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8344,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8332,"src":"31163:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8345,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8334,"src":"31167:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8346,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8336,"src":"31171:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31098:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31102:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31098:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31098:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31082:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31082:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8349,"nodeType":"ExpressionStatement","src":"31082:93:20"}]},"id":8351,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31009:3:20","nodeType":"FunctionDefinition","parameters":{"id":8337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8330,"mutability":"mutable","name":"p0","nameLocation":"31021:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31013:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8329,"name":"uint256","nodeType":"ElementaryTypeName","src":"31013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8332,"mutability":"mutable","name":"p1","nameLocation":"31033:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31025:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8331,"name":"address","nodeType":"ElementaryTypeName","src":"31025:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8334,"mutability":"mutable","name":"p2","nameLocation":"31042:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31037:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8333,"name":"bool","nodeType":"ElementaryTypeName","src":"31037:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8336,"mutability":"mutable","name":"p3","nameLocation":"31054:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31046:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8335,"name":"address","nodeType":"ElementaryTypeName","src":"31046:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31012:45:20"},"returnParameters":{"id":8338,"nodeType":"ParameterList","parameters":[],"src":"31072:0:20"},"scope":12860,"src":"31000:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8373,"nodeType":"Block","src":"31263:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":8365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31313:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":8366,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8353,"src":"31353:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8367,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8355,"src":"31357:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8368,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"31361:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8369,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8359,"src":"31365:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31289:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31293:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31289:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31289:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8362,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31273:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31273:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8372,"nodeType":"ExpressionStatement","src":"31273:96:20"}]},"id":8374,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31197:3:20","nodeType":"FunctionDefinition","parameters":{"id":8360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8353,"mutability":"mutable","name":"p0","nameLocation":"31209:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31201:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8352,"name":"uint256","nodeType":"ElementaryTypeName","src":"31201:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8355,"mutability":"mutable","name":"p1","nameLocation":"31221:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31213:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8354,"name":"address","nodeType":"ElementaryTypeName","src":"31213:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8357,"mutability":"mutable","name":"p2","nameLocation":"31233:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31225:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8356,"name":"address","nodeType":"ElementaryTypeName","src":"31225:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8359,"mutability":"mutable","name":"p3","nameLocation":"31245:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31237:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8358,"name":"uint256","nodeType":"ElementaryTypeName","src":"31237:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31200:48:20"},"returnParameters":{"id":8361,"nodeType":"ParameterList","parameters":[],"src":"31263:0:20"},"scope":12860,"src":"31188:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8396,"nodeType":"Block","src":"31463:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":8388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31513:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":8389,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"31552:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8390,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"31556:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8391,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8380,"src":"31560:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8392,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8382,"src":"31564:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31489:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31493:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31489:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31489:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8385,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31473:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31473:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8395,"nodeType":"ExpressionStatement","src":"31473:95:20"}]},"id":8397,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31391:3:20","nodeType":"FunctionDefinition","parameters":{"id":8383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8376,"mutability":"mutable","name":"p0","nameLocation":"31403:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31395:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8375,"name":"uint256","nodeType":"ElementaryTypeName","src":"31395:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8378,"mutability":"mutable","name":"p1","nameLocation":"31415:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31407:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8377,"name":"address","nodeType":"ElementaryTypeName","src":"31407:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8380,"mutability":"mutable","name":"p2","nameLocation":"31427:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31419:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8379,"name":"address","nodeType":"ElementaryTypeName","src":"31419:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8382,"mutability":"mutable","name":"p3","nameLocation":"31445:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31431:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8381,"name":"string","nodeType":"ElementaryTypeName","src":"31431:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31394:54:20"},"returnParameters":{"id":8384,"nodeType":"ParameterList","parameters":[],"src":"31463:0:20"},"scope":12860,"src":"31382:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8419,"nodeType":"Block","src":"31653:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":8411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31703:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":8412,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"31740:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8413,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8401,"src":"31744:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8414,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"31748:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8415,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8405,"src":"31752:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8409,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31679:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31683:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31679:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31679:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8408,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31663:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31663:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8418,"nodeType":"ExpressionStatement","src":"31663:93:20"}]},"id":8420,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31590:3:20","nodeType":"FunctionDefinition","parameters":{"id":8406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8399,"mutability":"mutable","name":"p0","nameLocation":"31602:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31594:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8398,"name":"uint256","nodeType":"ElementaryTypeName","src":"31594:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8401,"mutability":"mutable","name":"p1","nameLocation":"31614:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31606:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8400,"name":"address","nodeType":"ElementaryTypeName","src":"31606:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8403,"mutability":"mutable","name":"p2","nameLocation":"31626:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31618:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8402,"name":"address","nodeType":"ElementaryTypeName","src":"31618:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8405,"mutability":"mutable","name":"p3","nameLocation":"31635:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31630:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8404,"name":"bool","nodeType":"ElementaryTypeName","src":"31630:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31593:45:20"},"returnParameters":{"id":8407,"nodeType":"ParameterList","parameters":[],"src":"31653:0:20"},"scope":12860,"src":"31581:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8442,"nodeType":"Block","src":"31844:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31894:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":8435,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"31934:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8436,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"31938:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8437,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8426,"src":"31942:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8438,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8428,"src":"31946:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8432,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31870:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31874:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31870:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31870:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8431,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31854:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31854:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8441,"nodeType":"ExpressionStatement","src":"31854:96:20"}]},"id":8443,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31778:3:20","nodeType":"FunctionDefinition","parameters":{"id":8429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8422,"mutability":"mutable","name":"p0","nameLocation":"31790:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31782:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8421,"name":"uint256","nodeType":"ElementaryTypeName","src":"31782:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8424,"mutability":"mutable","name":"p1","nameLocation":"31802:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31794:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8423,"name":"address","nodeType":"ElementaryTypeName","src":"31794:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8426,"mutability":"mutable","name":"p2","nameLocation":"31814:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31806:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8425,"name":"address","nodeType":"ElementaryTypeName","src":"31806:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8428,"mutability":"mutable","name":"p3","nameLocation":"31826:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31818:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8427,"name":"address","nodeType":"ElementaryTypeName","src":"31818:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31781:48:20"},"returnParameters":{"id":8430,"nodeType":"ParameterList","parameters":[],"src":"31844:0:20"},"scope":12860,"src":"31769:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8465,"nodeType":"Block","src":"32044:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":8457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32094:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":8458,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"32133:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8459,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8447,"src":"32137:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8460,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8449,"src":"32141:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8461,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"32145:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32070:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32074:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32070:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32070:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8454,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32054:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32054:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8464,"nodeType":"ExpressionStatement","src":"32054:95:20"}]},"id":8466,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31972:3:20","nodeType":"FunctionDefinition","parameters":{"id":8452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8445,"mutability":"mutable","name":"p0","nameLocation":"31990:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"31976:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8444,"name":"string","nodeType":"ElementaryTypeName","src":"31976:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8447,"mutability":"mutable","name":"p1","nameLocation":"32002:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"31994:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8446,"name":"uint256","nodeType":"ElementaryTypeName","src":"31994:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8449,"mutability":"mutable","name":"p2","nameLocation":"32014:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"32006:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8448,"name":"uint256","nodeType":"ElementaryTypeName","src":"32006:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8451,"mutability":"mutable","name":"p3","nameLocation":"32026:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"32018:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8450,"name":"uint256","nodeType":"ElementaryTypeName","src":"32018:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31975:54:20"},"returnParameters":{"id":8453,"nodeType":"ParameterList","parameters":[],"src":"32044:0:20"},"scope":12860,"src":"31963:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8488,"nodeType":"Block","src":"32249:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":8480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32299:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":8481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"32337:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"32341:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"32345:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8484,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"32349:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32275:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32279:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32275:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32275:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32259:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32259:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8487,"nodeType":"ExpressionStatement","src":"32259:94:20"}]},"id":8489,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32171:3:20","nodeType":"FunctionDefinition","parameters":{"id":8475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8468,"mutability":"mutable","name":"p0","nameLocation":"32189:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32175:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8467,"name":"string","nodeType":"ElementaryTypeName","src":"32175:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8470,"mutability":"mutable","name":"p1","nameLocation":"32201:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32193:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8469,"name":"uint256","nodeType":"ElementaryTypeName","src":"32193:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8472,"mutability":"mutable","name":"p2","nameLocation":"32213:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32205:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8471,"name":"uint256","nodeType":"ElementaryTypeName","src":"32205:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8474,"mutability":"mutable","name":"p3","nameLocation":"32231:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32217:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8473,"name":"string","nodeType":"ElementaryTypeName","src":"32217:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32174:60:20"},"returnParameters":{"id":8476,"nodeType":"ParameterList","parameters":[],"src":"32249:0:20"},"scope":12860,"src":"32162:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8511,"nodeType":"Block","src":"32444:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":8503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32494:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":8504,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8491,"src":"32530:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8505,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"32534:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8506,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8495,"src":"32538:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8507,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8497,"src":"32542:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32470:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32474:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32470:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32470:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8500,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32454:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32454:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8510,"nodeType":"ExpressionStatement","src":"32454:92:20"}]},"id":8512,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32375:3:20","nodeType":"FunctionDefinition","parameters":{"id":8498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8491,"mutability":"mutable","name":"p0","nameLocation":"32393:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32379:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8490,"name":"string","nodeType":"ElementaryTypeName","src":"32379:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8493,"mutability":"mutable","name":"p1","nameLocation":"32405:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32397:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8492,"name":"uint256","nodeType":"ElementaryTypeName","src":"32397:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8495,"mutability":"mutable","name":"p2","nameLocation":"32417:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32409:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8494,"name":"uint256","nodeType":"ElementaryTypeName","src":"32409:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8497,"mutability":"mutable","name":"p3","nameLocation":"32426:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32421:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8496,"name":"bool","nodeType":"ElementaryTypeName","src":"32421:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32378:51:20"},"returnParameters":{"id":8499,"nodeType":"ParameterList","parameters":[],"src":"32444:0:20"},"scope":12860,"src":"32366:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8534,"nodeType":"Block","src":"32640:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32690:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":8527,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"32729:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8528,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8516,"src":"32733:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8529,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8518,"src":"32737:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8530,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8520,"src":"32741:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8524,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32666:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32670:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32666:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32666:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8523,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32650:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32650:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8533,"nodeType":"ExpressionStatement","src":"32650:95:20"}]},"id":8535,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32568:3:20","nodeType":"FunctionDefinition","parameters":{"id":8521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8514,"mutability":"mutable","name":"p0","nameLocation":"32586:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32572:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8513,"name":"string","nodeType":"ElementaryTypeName","src":"32572:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8516,"mutability":"mutable","name":"p1","nameLocation":"32598:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32590:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8515,"name":"uint256","nodeType":"ElementaryTypeName","src":"32590:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8518,"mutability":"mutable","name":"p2","nameLocation":"32610:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32602:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8517,"name":"uint256","nodeType":"ElementaryTypeName","src":"32602:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8520,"mutability":"mutable","name":"p3","nameLocation":"32622:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32614:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8519,"name":"address","nodeType":"ElementaryTypeName","src":"32614:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32571:54:20"},"returnParameters":{"id":8522,"nodeType":"ParameterList","parameters":[],"src":"32640:0:20"},"scope":12860,"src":"32559:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8557,"nodeType":"Block","src":"32845:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":8549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32895:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":8550,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"32933:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8551,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"32937:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8552,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8541,"src":"32941:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8553,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8543,"src":"32945:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32871:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32875:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32871:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32871:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8546,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32855:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32855:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8556,"nodeType":"ExpressionStatement","src":"32855:94:20"}]},"id":8558,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32767:3:20","nodeType":"FunctionDefinition","parameters":{"id":8544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8537,"mutability":"mutable","name":"p0","nameLocation":"32785:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32771:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8536,"name":"string","nodeType":"ElementaryTypeName","src":"32771:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8539,"mutability":"mutable","name":"p1","nameLocation":"32797:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32789:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8538,"name":"uint256","nodeType":"ElementaryTypeName","src":"32789:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8541,"mutability":"mutable","name":"p2","nameLocation":"32815:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32801:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8540,"name":"string","nodeType":"ElementaryTypeName","src":"32801:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8543,"mutability":"mutable","name":"p3","nameLocation":"32827:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32819:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8542,"name":"uint256","nodeType":"ElementaryTypeName","src":"32819:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32770:60:20"},"returnParameters":{"id":8545,"nodeType":"ParameterList","parameters":[],"src":"32845:0:20"},"scope":12860,"src":"32758:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8580,"nodeType":"Block","src":"33055:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":8572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33105:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":8573,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8560,"src":"33142:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8574,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"33146:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8575,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"33150:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8576,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"33154:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8570,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33081:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33085:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33081:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33081:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8569,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33065:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33065:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8579,"nodeType":"ExpressionStatement","src":"33065:93:20"}]},"id":8581,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32971:3:20","nodeType":"FunctionDefinition","parameters":{"id":8567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8560,"mutability":"mutable","name":"p0","nameLocation":"32989:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"32975:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8559,"name":"string","nodeType":"ElementaryTypeName","src":"32975:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8562,"mutability":"mutable","name":"p1","nameLocation":"33001:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"32993:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8561,"name":"uint256","nodeType":"ElementaryTypeName","src":"32993:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8564,"mutability":"mutable","name":"p2","nameLocation":"33019:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"33005:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8563,"name":"string","nodeType":"ElementaryTypeName","src":"33005:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8566,"mutability":"mutable","name":"p3","nameLocation":"33037:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"33023:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8565,"name":"string","nodeType":"ElementaryTypeName","src":"33023:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32974:66:20"},"returnParameters":{"id":8568,"nodeType":"ParameterList","parameters":[],"src":"33055:0:20"},"scope":12860,"src":"32962:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8603,"nodeType":"Block","src":"33255:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":8595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33305:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":8596,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"33340:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8597,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"33344:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8598,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8587,"src":"33348:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8599,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"33352:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33281:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33285:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33281:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33281:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8592,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33265:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33265:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8602,"nodeType":"ExpressionStatement","src":"33265:91:20"}]},"id":8604,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33180:3:20","nodeType":"FunctionDefinition","parameters":{"id":8590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8583,"mutability":"mutable","name":"p0","nameLocation":"33198:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33184:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8582,"name":"string","nodeType":"ElementaryTypeName","src":"33184:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8585,"mutability":"mutable","name":"p1","nameLocation":"33210:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33202:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8584,"name":"uint256","nodeType":"ElementaryTypeName","src":"33202:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8587,"mutability":"mutable","name":"p2","nameLocation":"33228:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33214:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8586,"name":"string","nodeType":"ElementaryTypeName","src":"33214:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8589,"mutability":"mutable","name":"p3","nameLocation":"33237:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33232:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8588,"name":"bool","nodeType":"ElementaryTypeName","src":"33232:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33183:57:20"},"returnParameters":{"id":8591,"nodeType":"ParameterList","parameters":[],"src":"33255:0:20"},"scope":12860,"src":"33171:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8626,"nodeType":"Block","src":"33456:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":8618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33506:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":8619,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8606,"src":"33544:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8620,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8608,"src":"33548:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8621,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8610,"src":"33552:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8622,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"33556:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33482:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33486:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33482:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33482:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8615,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33466:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33466:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8625,"nodeType":"ExpressionStatement","src":"33466:94:20"}]},"id":8627,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33378:3:20","nodeType":"FunctionDefinition","parameters":{"id":8613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8606,"mutability":"mutable","name":"p0","nameLocation":"33396:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33382:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8605,"name":"string","nodeType":"ElementaryTypeName","src":"33382:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8608,"mutability":"mutable","name":"p1","nameLocation":"33408:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33400:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8607,"name":"uint256","nodeType":"ElementaryTypeName","src":"33400:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8610,"mutability":"mutable","name":"p2","nameLocation":"33426:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33412:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8609,"name":"string","nodeType":"ElementaryTypeName","src":"33412:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8612,"mutability":"mutable","name":"p3","nameLocation":"33438:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33430:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8611,"name":"address","nodeType":"ElementaryTypeName","src":"33430:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33381:60:20"},"returnParameters":{"id":8614,"nodeType":"ParameterList","parameters":[],"src":"33456:0:20"},"scope":12860,"src":"33369:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8649,"nodeType":"Block","src":"33651:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":8641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33701:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":8642,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8629,"src":"33737:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8643,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"33741:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8644,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"33745:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8645,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"33749:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33677:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33681:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33677:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33677:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8638,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33661:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33661:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8648,"nodeType":"ExpressionStatement","src":"33661:92:20"}]},"id":8650,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33582:3:20","nodeType":"FunctionDefinition","parameters":{"id":8636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8629,"mutability":"mutable","name":"p0","nameLocation":"33600:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33586:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8628,"name":"string","nodeType":"ElementaryTypeName","src":"33586:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8631,"mutability":"mutable","name":"p1","nameLocation":"33612:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33604:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8630,"name":"uint256","nodeType":"ElementaryTypeName","src":"33604:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8633,"mutability":"mutable","name":"p2","nameLocation":"33621:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33616:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8632,"name":"bool","nodeType":"ElementaryTypeName","src":"33616:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8635,"mutability":"mutable","name":"p3","nameLocation":"33633:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33625:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8634,"name":"uint256","nodeType":"ElementaryTypeName","src":"33625:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33585:51:20"},"returnParameters":{"id":8637,"nodeType":"ParameterList","parameters":[],"src":"33651:0:20"},"scope":12860,"src":"33573:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8672,"nodeType":"Block","src":"33850:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":8664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33900:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":8665,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"33935:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8666,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"33939:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8667,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8656,"src":"33943:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8668,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"33947:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33876:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33880:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33876:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33876:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8661,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33860:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33860:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8671,"nodeType":"ExpressionStatement","src":"33860:91:20"}]},"id":8673,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33775:3:20","nodeType":"FunctionDefinition","parameters":{"id":8659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8652,"mutability":"mutable","name":"p0","nameLocation":"33793:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33779:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8651,"name":"string","nodeType":"ElementaryTypeName","src":"33779:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8654,"mutability":"mutable","name":"p1","nameLocation":"33805:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33797:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8653,"name":"uint256","nodeType":"ElementaryTypeName","src":"33797:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8656,"mutability":"mutable","name":"p2","nameLocation":"33814:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33809:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8655,"name":"bool","nodeType":"ElementaryTypeName","src":"33809:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8658,"mutability":"mutable","name":"p3","nameLocation":"33832:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33818:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8657,"name":"string","nodeType":"ElementaryTypeName","src":"33818:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33778:57:20"},"returnParameters":{"id":8660,"nodeType":"ParameterList","parameters":[],"src":"33850:0:20"},"scope":12860,"src":"33766:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8695,"nodeType":"Block","src":"34039:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":8687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34089:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":8688,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"34122:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8689,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8677,"src":"34126:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8690,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8679,"src":"34130:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8691,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8681,"src":"34134:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8685,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34065:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34069:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34065:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34065:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8684,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34049:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34049:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8694,"nodeType":"ExpressionStatement","src":"34049:89:20"}]},"id":8696,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33973:3:20","nodeType":"FunctionDefinition","parameters":{"id":8682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8675,"mutability":"mutable","name":"p0","nameLocation":"33991:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"33977:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8674,"name":"string","nodeType":"ElementaryTypeName","src":"33977:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8677,"mutability":"mutable","name":"p1","nameLocation":"34003:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"33995:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8676,"name":"uint256","nodeType":"ElementaryTypeName","src":"33995:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8679,"mutability":"mutable","name":"p2","nameLocation":"34012:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"34007:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8678,"name":"bool","nodeType":"ElementaryTypeName","src":"34007:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8681,"mutability":"mutable","name":"p3","nameLocation":"34021:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"34016:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8680,"name":"bool","nodeType":"ElementaryTypeName","src":"34016:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33976:48:20"},"returnParameters":{"id":8683,"nodeType":"ParameterList","parameters":[],"src":"34039:0:20"},"scope":12860,"src":"33964:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8718,"nodeType":"Block","src":"34229:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":8710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34279:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":8711,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"34315:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8712,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"34319:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8713,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"34323:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8714,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8704,"src":"34327:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8708,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34255:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34259:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34255:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34255:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8707,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34239:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34239:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8717,"nodeType":"ExpressionStatement","src":"34239:92:20"}]},"id":8719,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34160:3:20","nodeType":"FunctionDefinition","parameters":{"id":8705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"p0","nameLocation":"34178:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34164:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8697,"name":"string","nodeType":"ElementaryTypeName","src":"34164:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8700,"mutability":"mutable","name":"p1","nameLocation":"34190:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34182:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8699,"name":"uint256","nodeType":"ElementaryTypeName","src":"34182:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8702,"mutability":"mutable","name":"p2","nameLocation":"34199:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34194:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8701,"name":"bool","nodeType":"ElementaryTypeName","src":"34194:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8704,"mutability":"mutable","name":"p3","nameLocation":"34211:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34203:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8703,"name":"address","nodeType":"ElementaryTypeName","src":"34203:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34163:51:20"},"returnParameters":{"id":8706,"nodeType":"ParameterList","parameters":[],"src":"34229:0:20"},"scope":12860,"src":"34151:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8741,"nodeType":"Block","src":"34425:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":8733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34475:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":8734,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"34514:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8735,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"34518:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8736,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"34522:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8737,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8727,"src":"34526:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8731,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34451:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34455:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34451:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34451:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8730,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34435:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34435:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8740,"nodeType":"ExpressionStatement","src":"34435:95:20"}]},"id":8742,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34353:3:20","nodeType":"FunctionDefinition","parameters":{"id":8728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8721,"mutability":"mutable","name":"p0","nameLocation":"34371:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34357:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8720,"name":"string","nodeType":"ElementaryTypeName","src":"34357:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8723,"mutability":"mutable","name":"p1","nameLocation":"34383:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34375:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8722,"name":"uint256","nodeType":"ElementaryTypeName","src":"34375:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8725,"mutability":"mutable","name":"p2","nameLocation":"34395:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34387:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8724,"name":"address","nodeType":"ElementaryTypeName","src":"34387:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8727,"mutability":"mutable","name":"p3","nameLocation":"34407:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34399:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8726,"name":"uint256","nodeType":"ElementaryTypeName","src":"34399:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34356:54:20"},"returnParameters":{"id":8729,"nodeType":"ParameterList","parameters":[],"src":"34425:0:20"},"scope":12860,"src":"34344:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8764,"nodeType":"Block","src":"34630:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":8756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34680:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":8757,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8744,"src":"34718:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8758,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"34722:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8759,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"34726:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8760,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8750,"src":"34730:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8754,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34656:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34660:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34656:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34656:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8753,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34640:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34640:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8763,"nodeType":"ExpressionStatement","src":"34640:94:20"}]},"id":8765,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34552:3:20","nodeType":"FunctionDefinition","parameters":{"id":8751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8744,"mutability":"mutable","name":"p0","nameLocation":"34570:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34556:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8743,"name":"string","nodeType":"ElementaryTypeName","src":"34556:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8746,"mutability":"mutable","name":"p1","nameLocation":"34582:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34574:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8745,"name":"uint256","nodeType":"ElementaryTypeName","src":"34574:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8748,"mutability":"mutable","name":"p2","nameLocation":"34594:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34586:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8747,"name":"address","nodeType":"ElementaryTypeName","src":"34586:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8750,"mutability":"mutable","name":"p3","nameLocation":"34612:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34598:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8749,"name":"string","nodeType":"ElementaryTypeName","src":"34598:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34555:60:20"},"returnParameters":{"id":8752,"nodeType":"ParameterList","parameters":[],"src":"34630:0:20"},"scope":12860,"src":"34543:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8787,"nodeType":"Block","src":"34825:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":8779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34875:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":8780,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8767,"src":"34911:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8781,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8769,"src":"34915:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8782,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"34919:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8783,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"34923:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8777,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34851:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34855:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34851:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34851:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8776,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34835:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34835:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8786,"nodeType":"ExpressionStatement","src":"34835:92:20"}]},"id":8788,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34756:3:20","nodeType":"FunctionDefinition","parameters":{"id":8774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8767,"mutability":"mutable","name":"p0","nameLocation":"34774:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34760:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8766,"name":"string","nodeType":"ElementaryTypeName","src":"34760:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8769,"mutability":"mutable","name":"p1","nameLocation":"34786:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34778:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8768,"name":"uint256","nodeType":"ElementaryTypeName","src":"34778:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8771,"mutability":"mutable","name":"p2","nameLocation":"34798:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34790:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8770,"name":"address","nodeType":"ElementaryTypeName","src":"34790:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8773,"mutability":"mutable","name":"p3","nameLocation":"34807:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34802:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8772,"name":"bool","nodeType":"ElementaryTypeName","src":"34802:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34759:51:20"},"returnParameters":{"id":8775,"nodeType":"ParameterList","parameters":[],"src":"34825:0:20"},"scope":12860,"src":"34747:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8810,"nodeType":"Block","src":"35021:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":8802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35071:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":8803,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8790,"src":"35110:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8804,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8792,"src":"35114:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8805,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8794,"src":"35118:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8806,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8796,"src":"35122:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8800,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35047:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35051:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35047:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35047:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8799,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35031:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35031:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8809,"nodeType":"ExpressionStatement","src":"35031:95:20"}]},"id":8811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34949:3:20","nodeType":"FunctionDefinition","parameters":{"id":8797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8790,"mutability":"mutable","name":"p0","nameLocation":"34967:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34953:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8789,"name":"string","nodeType":"ElementaryTypeName","src":"34953:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8792,"mutability":"mutable","name":"p1","nameLocation":"34979:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34971:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8791,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8794,"mutability":"mutable","name":"p2","nameLocation":"34991:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34983:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8793,"name":"address","nodeType":"ElementaryTypeName","src":"34983:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8796,"mutability":"mutable","name":"p3","nameLocation":"35003:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34995:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8795,"name":"address","nodeType":"ElementaryTypeName","src":"34995:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34952:54:20"},"returnParameters":{"id":8798,"nodeType":"ParameterList","parameters":[],"src":"35021:0:20"},"scope":12860,"src":"34940:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8833,"nodeType":"Block","src":"35226:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":8825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35276:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":8826,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8813,"src":"35314:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8827,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8815,"src":"35318:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8828,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8817,"src":"35322:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8829,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8819,"src":"35326:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35252:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35256:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35252:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8822,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35236:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35236:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8832,"nodeType":"ExpressionStatement","src":"35236:94:20"}]},"id":8834,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35148:3:20","nodeType":"FunctionDefinition","parameters":{"id":8820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8813,"mutability":"mutable","name":"p0","nameLocation":"35166:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35152:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8812,"name":"string","nodeType":"ElementaryTypeName","src":"35152:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8815,"mutability":"mutable","name":"p1","nameLocation":"35184:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35170:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8814,"name":"string","nodeType":"ElementaryTypeName","src":"35170:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8817,"mutability":"mutable","name":"p2","nameLocation":"35196:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35188:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8816,"name":"uint256","nodeType":"ElementaryTypeName","src":"35188:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8819,"mutability":"mutable","name":"p3","nameLocation":"35208:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35200:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8818,"name":"uint256","nodeType":"ElementaryTypeName","src":"35200:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35151:60:20"},"returnParameters":{"id":8821,"nodeType":"ParameterList","parameters":[],"src":"35226:0:20"},"scope":12860,"src":"35139:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8856,"nodeType":"Block","src":"35436:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":8848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35486:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":8849,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8836,"src":"35523:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8850,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8838,"src":"35527:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8851,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8840,"src":"35531:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8852,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8842,"src":"35535:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8846,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35462:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35466:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35462:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35462:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8845,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35446:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35446:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8855,"nodeType":"ExpressionStatement","src":"35446:93:20"}]},"id":8857,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35352:3:20","nodeType":"FunctionDefinition","parameters":{"id":8843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8836,"mutability":"mutable","name":"p0","nameLocation":"35370:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35356:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8835,"name":"string","nodeType":"ElementaryTypeName","src":"35356:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8838,"mutability":"mutable","name":"p1","nameLocation":"35388:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35374:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8837,"name":"string","nodeType":"ElementaryTypeName","src":"35374:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8840,"mutability":"mutable","name":"p2","nameLocation":"35400:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35392:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8839,"name":"uint256","nodeType":"ElementaryTypeName","src":"35392:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8842,"mutability":"mutable","name":"p3","nameLocation":"35418:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35404:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8841,"name":"string","nodeType":"ElementaryTypeName","src":"35404:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35355:66:20"},"returnParameters":{"id":8844,"nodeType":"ParameterList","parameters":[],"src":"35436:0:20"},"scope":12860,"src":"35343:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8879,"nodeType":"Block","src":"35636:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":8871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35686:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":8872,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8859,"src":"35721:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8873,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"35725:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8874,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"35729:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8875,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8865,"src":"35733:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35662:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35666:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35662:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35662:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8868,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35646:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35646:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8878,"nodeType":"ExpressionStatement","src":"35646:91:20"}]},"id":8880,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35561:3:20","nodeType":"FunctionDefinition","parameters":{"id":8866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8859,"mutability":"mutable","name":"p0","nameLocation":"35579:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35565:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8858,"name":"string","nodeType":"ElementaryTypeName","src":"35565:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8861,"mutability":"mutable","name":"p1","nameLocation":"35597:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35583:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8860,"name":"string","nodeType":"ElementaryTypeName","src":"35583:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8863,"mutability":"mutable","name":"p2","nameLocation":"35609:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35601:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8862,"name":"uint256","nodeType":"ElementaryTypeName","src":"35601:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8865,"mutability":"mutable","name":"p3","nameLocation":"35618:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35613:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8864,"name":"bool","nodeType":"ElementaryTypeName","src":"35613:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35564:57:20"},"returnParameters":{"id":8867,"nodeType":"ParameterList","parameters":[],"src":"35636:0:20"},"scope":12860,"src":"35552:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8902,"nodeType":"Block","src":"35837:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":8894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35887:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":8895,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"35925:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8896,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8884,"src":"35929:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8897,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8886,"src":"35933:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8898,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8888,"src":"35937:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35863:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35867:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35863:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35863:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8891,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35847:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8901,"nodeType":"ExpressionStatement","src":"35847:94:20"}]},"id":8903,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35759:3:20","nodeType":"FunctionDefinition","parameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8882,"mutability":"mutable","name":"p0","nameLocation":"35777:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35763:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8881,"name":"string","nodeType":"ElementaryTypeName","src":"35763:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8884,"mutability":"mutable","name":"p1","nameLocation":"35795:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35781:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8883,"name":"string","nodeType":"ElementaryTypeName","src":"35781:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8886,"mutability":"mutable","name":"p2","nameLocation":"35807:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35799:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8885,"name":"uint256","nodeType":"ElementaryTypeName","src":"35799:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8888,"mutability":"mutable","name":"p3","nameLocation":"35819:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35811:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8887,"name":"address","nodeType":"ElementaryTypeName","src":"35811:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35762:60:20"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[],"src":"35837:0:20"},"scope":12860,"src":"35750:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8925,"nodeType":"Block","src":"36047:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":8917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36097:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":8918,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"36134:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8919,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8907,"src":"36138:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8920,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8909,"src":"36142:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8921,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"36146:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8915,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36073:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36077:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36073:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36073:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8914,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36057:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36057:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8924,"nodeType":"ExpressionStatement","src":"36057:93:20"}]},"id":8926,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35963:3:20","nodeType":"FunctionDefinition","parameters":{"id":8912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8905,"mutability":"mutable","name":"p0","nameLocation":"35981:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"35967:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8904,"name":"string","nodeType":"ElementaryTypeName","src":"35967:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8907,"mutability":"mutable","name":"p1","nameLocation":"35999:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"35985:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8906,"name":"string","nodeType":"ElementaryTypeName","src":"35985:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8909,"mutability":"mutable","name":"p2","nameLocation":"36017:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"36003:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8908,"name":"string","nodeType":"ElementaryTypeName","src":"36003:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8911,"mutability":"mutable","name":"p3","nameLocation":"36029:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"36021:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8910,"name":"uint256","nodeType":"ElementaryTypeName","src":"36021:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35966:66:20"},"returnParameters":{"id":8913,"nodeType":"ParameterList","parameters":[],"src":"36047:0:20"},"scope":12860,"src":"35954:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8948,"nodeType":"Block","src":"36262:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":8940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36312:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":8941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8928,"src":"36348:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8942,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8930,"src":"36352:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8943,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"36356:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8944,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8934,"src":"36360:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36288:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36292:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36288:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36288:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36272:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36272:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8947,"nodeType":"ExpressionStatement","src":"36272:92:20"}]},"id":8949,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36172:3:20","nodeType":"FunctionDefinition","parameters":{"id":8935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8928,"mutability":"mutable","name":"p0","nameLocation":"36190:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36176:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8927,"name":"string","nodeType":"ElementaryTypeName","src":"36176:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8930,"mutability":"mutable","name":"p1","nameLocation":"36208:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36194:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8929,"name":"string","nodeType":"ElementaryTypeName","src":"36194:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8932,"mutability":"mutable","name":"p2","nameLocation":"36226:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36212:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8931,"name":"string","nodeType":"ElementaryTypeName","src":"36212:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8934,"mutability":"mutable","name":"p3","nameLocation":"36244:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36230:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8933,"name":"string","nodeType":"ElementaryTypeName","src":"36230:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36175:72:20"},"returnParameters":{"id":8936,"nodeType":"ParameterList","parameters":[],"src":"36262:0:20"},"scope":12860,"src":"36163:208:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8971,"nodeType":"Block","src":"36467:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":8963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36517:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":8964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8951,"src":"36551:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8953,"src":"36555:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"36559:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8967,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8957,"src":"36563:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36493:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36497:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36493:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36493:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36477:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36477:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8970,"nodeType":"ExpressionStatement","src":"36477:90:20"}]},"id":8972,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36386:3:20","nodeType":"FunctionDefinition","parameters":{"id":8958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8951,"mutability":"mutable","name":"p0","nameLocation":"36404:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36390:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8950,"name":"string","nodeType":"ElementaryTypeName","src":"36390:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8953,"mutability":"mutable","name":"p1","nameLocation":"36422:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36408:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8952,"name":"string","nodeType":"ElementaryTypeName","src":"36408:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8955,"mutability":"mutable","name":"p2","nameLocation":"36440:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36426:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8954,"name":"string","nodeType":"ElementaryTypeName","src":"36426:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8957,"mutability":"mutable","name":"p3","nameLocation":"36449:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36444:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8956,"name":"bool","nodeType":"ElementaryTypeName","src":"36444:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36389:63:20"},"returnParameters":{"id":8959,"nodeType":"ParameterList","parameters":[],"src":"36467:0:20"},"scope":12860,"src":"36377:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8994,"nodeType":"Block","src":"36673:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":8986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36723:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":8987,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8974,"src":"36760:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8988,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8976,"src":"36764:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8989,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8978,"src":"36768:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8990,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8980,"src":"36772:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,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"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36699:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36703:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36699:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36699:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8983,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36683:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36683:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8993,"nodeType":"ExpressionStatement","src":"36683:93:20"}]},"id":8995,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36589:3:20","nodeType":"FunctionDefinition","parameters":{"id":8981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8974,"mutability":"mutable","name":"p0","nameLocation":"36607:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36593:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8973,"name":"string","nodeType":"ElementaryTypeName","src":"36593:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8976,"mutability":"mutable","name":"p1","nameLocation":"36625:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36611:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8975,"name":"string","nodeType":"ElementaryTypeName","src":"36611:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8978,"mutability":"mutable","name":"p2","nameLocation":"36643:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36629:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8977,"name":"string","nodeType":"ElementaryTypeName","src":"36629:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8980,"mutability":"mutable","name":"p3","nameLocation":"36655:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36647:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8979,"name":"address","nodeType":"ElementaryTypeName","src":"36647:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36592:66:20"},"returnParameters":{"id":8982,"nodeType":"ParameterList","parameters":[],"src":"36673:0:20"},"scope":12860,"src":"36580:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9017,"nodeType":"Block","src":"36873:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":9009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36923:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":9010,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"36958:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9011,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"36962:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9012,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9001,"src":"36966:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9013,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9003,"src":"36970:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9007,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36899:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36903:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36899:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36899:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9006,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36883:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36883:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9016,"nodeType":"ExpressionStatement","src":"36883:91:20"}]},"id":9018,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36798:3:20","nodeType":"FunctionDefinition","parameters":{"id":9004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"p0","nameLocation":"36816:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36802:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8996,"name":"string","nodeType":"ElementaryTypeName","src":"36802:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8999,"mutability":"mutable","name":"p1","nameLocation":"36834:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36820:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8998,"name":"string","nodeType":"ElementaryTypeName","src":"36820:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"p2","nameLocation":"36843:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36838:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9000,"name":"bool","nodeType":"ElementaryTypeName","src":"36838:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9003,"mutability":"mutable","name":"p3","nameLocation":"36855:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36847:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9002,"name":"uint256","nodeType":"ElementaryTypeName","src":"36847:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36801:57:20"},"returnParameters":{"id":9005,"nodeType":"ParameterList","parameters":[],"src":"36873:0:20"},"scope":12860,"src":"36789:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9040,"nodeType":"Block","src":"37077:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":9032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37127:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":9033,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9020,"src":"37161:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9034,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9022,"src":"37165:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9035,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9024,"src":"37169:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9036,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9026,"src":"37173:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37103:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37107:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37103:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37103:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9029,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37087:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37087:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9039,"nodeType":"ExpressionStatement","src":"37087:90:20"}]},"id":9041,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36996:3:20","nodeType":"FunctionDefinition","parameters":{"id":9027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"p0","nameLocation":"37014:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37000:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9019,"name":"string","nodeType":"ElementaryTypeName","src":"37000:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9022,"mutability":"mutable","name":"p1","nameLocation":"37032:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37018:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9021,"name":"string","nodeType":"ElementaryTypeName","src":"37018:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9024,"mutability":"mutable","name":"p2","nameLocation":"37041:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37036:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9023,"name":"bool","nodeType":"ElementaryTypeName","src":"37036:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9026,"mutability":"mutable","name":"p3","nameLocation":"37059:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37045:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9025,"name":"string","nodeType":"ElementaryTypeName","src":"37045:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36999:63:20"},"returnParameters":{"id":9028,"nodeType":"ParameterList","parameters":[],"src":"37077:0:20"},"scope":12860,"src":"36987:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9063,"nodeType":"Block","src":"37271:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":9055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37321:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":9056,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"37353:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9057,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9045,"src":"37357:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9058,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9047,"src":"37361:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9059,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9049,"src":"37365:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37297:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37301:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37297:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37297:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9052,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37281:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37281:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9062,"nodeType":"ExpressionStatement","src":"37281:88:20"}]},"id":9064,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37199:3:20","nodeType":"FunctionDefinition","parameters":{"id":9050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9043,"mutability":"mutable","name":"p0","nameLocation":"37217:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37203:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9042,"name":"string","nodeType":"ElementaryTypeName","src":"37203:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9045,"mutability":"mutable","name":"p1","nameLocation":"37235:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37221:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9044,"name":"string","nodeType":"ElementaryTypeName","src":"37221:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9047,"mutability":"mutable","name":"p2","nameLocation":"37244:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37239:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9046,"name":"bool","nodeType":"ElementaryTypeName","src":"37239:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9049,"mutability":"mutable","name":"p3","nameLocation":"37253:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37248:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9048,"name":"bool","nodeType":"ElementaryTypeName","src":"37248:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37202:54:20"},"returnParameters":{"id":9051,"nodeType":"ParameterList","parameters":[],"src":"37271:0:20"},"scope":12860,"src":"37190:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9086,"nodeType":"Block","src":"37466:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":9078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37516:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":9079,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9066,"src":"37551:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9080,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9068,"src":"37555:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9081,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9070,"src":"37559:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9082,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"37563:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37492:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37496:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37492:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37492:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9075,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37476:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37476:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9085,"nodeType":"ExpressionStatement","src":"37476:91:20"}]},"id":9087,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37391:3:20","nodeType":"FunctionDefinition","parameters":{"id":9073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9066,"mutability":"mutable","name":"p0","nameLocation":"37409:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37395:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9065,"name":"string","nodeType":"ElementaryTypeName","src":"37395:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9068,"mutability":"mutable","name":"p1","nameLocation":"37427:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37413:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9067,"name":"string","nodeType":"ElementaryTypeName","src":"37413:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9070,"mutability":"mutable","name":"p2","nameLocation":"37436:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37431:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9069,"name":"bool","nodeType":"ElementaryTypeName","src":"37431:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9072,"mutability":"mutable","name":"p3","nameLocation":"37448:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37440:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9071,"name":"address","nodeType":"ElementaryTypeName","src":"37440:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37394:57:20"},"returnParameters":{"id":9074,"nodeType":"ParameterList","parameters":[],"src":"37466:0:20"},"scope":12860,"src":"37382:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9109,"nodeType":"Block","src":"37667:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":9101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37717:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":9102,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"37755:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9103,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"37759:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9104,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9093,"src":"37763:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9105,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9095,"src":"37767:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9099,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37693:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37697:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37693:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37693:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9098,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37677:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37677:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9108,"nodeType":"ExpressionStatement","src":"37677:94:20"}]},"id":9110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37589:3:20","nodeType":"FunctionDefinition","parameters":{"id":9096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"p0","nameLocation":"37607:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37593:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9088,"name":"string","nodeType":"ElementaryTypeName","src":"37593:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"p1","nameLocation":"37625:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37611:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9090,"name":"string","nodeType":"ElementaryTypeName","src":"37611:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9093,"mutability":"mutable","name":"p2","nameLocation":"37637:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37629:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9092,"name":"address","nodeType":"ElementaryTypeName","src":"37629:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9095,"mutability":"mutable","name":"p3","nameLocation":"37649:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37641:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9094,"name":"uint256","nodeType":"ElementaryTypeName","src":"37641:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37592:60:20"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[],"src":"37667:0:20"},"scope":12860,"src":"37580:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9132,"nodeType":"Block","src":"37877:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":9124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37927:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":9125,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"37964:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9126,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9114,"src":"37968:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9127,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"37972:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9128,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"37976:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9122,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37903:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37907:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37903:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37903:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9121,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37887:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37887:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9131,"nodeType":"ExpressionStatement","src":"37887:93:20"}]},"id":9133,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37793:3:20","nodeType":"FunctionDefinition","parameters":{"id":9119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9112,"mutability":"mutable","name":"p0","nameLocation":"37811:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37797:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9111,"name":"string","nodeType":"ElementaryTypeName","src":"37797:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9114,"mutability":"mutable","name":"p1","nameLocation":"37829:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37815:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9113,"name":"string","nodeType":"ElementaryTypeName","src":"37815:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9116,"mutability":"mutable","name":"p2","nameLocation":"37841:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37833:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9115,"name":"address","nodeType":"ElementaryTypeName","src":"37833:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9118,"mutability":"mutable","name":"p3","nameLocation":"37859:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37845:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9117,"name":"string","nodeType":"ElementaryTypeName","src":"37845:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37796:66:20"},"returnParameters":{"id":9120,"nodeType":"ParameterList","parameters":[],"src":"37877:0:20"},"scope":12860,"src":"37784:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9155,"nodeType":"Block","src":"38077:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38127:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":9148,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9135,"src":"38162:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9149,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9137,"src":"38166:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9150,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9139,"src":"38170:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9151,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9141,"src":"38174:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38103:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38107:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38103:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38103:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9144,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38087:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38087:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9154,"nodeType":"ExpressionStatement","src":"38087:91:20"}]},"id":9156,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38002:3:20","nodeType":"FunctionDefinition","parameters":{"id":9142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9135,"mutability":"mutable","name":"p0","nameLocation":"38020:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38006:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9134,"name":"string","nodeType":"ElementaryTypeName","src":"38006:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9137,"mutability":"mutable","name":"p1","nameLocation":"38038:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38024:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9136,"name":"string","nodeType":"ElementaryTypeName","src":"38024:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9139,"mutability":"mutable","name":"p2","nameLocation":"38050:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38042:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9138,"name":"address","nodeType":"ElementaryTypeName","src":"38042:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9141,"mutability":"mutable","name":"p3","nameLocation":"38059:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38054:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9140,"name":"bool","nodeType":"ElementaryTypeName","src":"38054:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38005:57:20"},"returnParameters":{"id":9143,"nodeType":"ParameterList","parameters":[],"src":"38077:0:20"},"scope":12860,"src":"37993:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9178,"nodeType":"Block","src":"38278:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38328:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":9171,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9158,"src":"38366:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9172,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9160,"src":"38370:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9173,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9162,"src":"38374:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9174,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9164,"src":"38378:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9168,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38304:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38308:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38304:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38304:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9167,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38288:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38288:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9177,"nodeType":"ExpressionStatement","src":"38288:94:20"}]},"id":9179,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38200:3:20","nodeType":"FunctionDefinition","parameters":{"id":9165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9158,"mutability":"mutable","name":"p0","nameLocation":"38218:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38204:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9157,"name":"string","nodeType":"ElementaryTypeName","src":"38204:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9160,"mutability":"mutable","name":"p1","nameLocation":"38236:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38222:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9159,"name":"string","nodeType":"ElementaryTypeName","src":"38222:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9162,"mutability":"mutable","name":"p2","nameLocation":"38248:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38240:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9161,"name":"address","nodeType":"ElementaryTypeName","src":"38240:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9164,"mutability":"mutable","name":"p3","nameLocation":"38260:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38252:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9163,"name":"address","nodeType":"ElementaryTypeName","src":"38252:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38203:60:20"},"returnParameters":{"id":9166,"nodeType":"ParameterList","parameters":[],"src":"38278:0:20"},"scope":12860,"src":"38191:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9201,"nodeType":"Block","src":"38473:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":9193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38523:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":9194,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9181,"src":"38559:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9195,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"38563:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9196,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9185,"src":"38567:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9197,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"38571:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9191,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38499:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38503:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38499:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38499:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9190,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38483:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38483:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9200,"nodeType":"ExpressionStatement","src":"38483:92:20"}]},"id":9202,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38404:3:20","nodeType":"FunctionDefinition","parameters":{"id":9188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9181,"mutability":"mutable","name":"p0","nameLocation":"38422:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38408:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9180,"name":"string","nodeType":"ElementaryTypeName","src":"38408:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9183,"mutability":"mutable","name":"p1","nameLocation":"38431:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38426:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9182,"name":"bool","nodeType":"ElementaryTypeName","src":"38426:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9185,"mutability":"mutable","name":"p2","nameLocation":"38443:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38435:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9184,"name":"uint256","nodeType":"ElementaryTypeName","src":"38435:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9187,"mutability":"mutable","name":"p3","nameLocation":"38455:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38447:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9186,"name":"uint256","nodeType":"ElementaryTypeName","src":"38447:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38407:51:20"},"returnParameters":{"id":9189,"nodeType":"ParameterList","parameters":[],"src":"38473:0:20"},"scope":12860,"src":"38395:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9224,"nodeType":"Block","src":"38672:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":9216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38722:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":9217,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9204,"src":"38757:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9218,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"38761:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9219,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"38765:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9220,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9210,"src":"38769:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9214,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38698:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38702:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38698:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38698:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9213,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38682:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38682:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9223,"nodeType":"ExpressionStatement","src":"38682:91:20"}]},"id":9225,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38597:3:20","nodeType":"FunctionDefinition","parameters":{"id":9211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9204,"mutability":"mutable","name":"p0","nameLocation":"38615:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38601:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9203,"name":"string","nodeType":"ElementaryTypeName","src":"38601:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9206,"mutability":"mutable","name":"p1","nameLocation":"38624:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38619:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9205,"name":"bool","nodeType":"ElementaryTypeName","src":"38619:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9208,"mutability":"mutable","name":"p2","nameLocation":"38636:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38628:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"38628:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9210,"mutability":"mutable","name":"p3","nameLocation":"38654:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38640:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9209,"name":"string","nodeType":"ElementaryTypeName","src":"38640:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38600:57:20"},"returnParameters":{"id":9212,"nodeType":"ParameterList","parameters":[],"src":"38672:0:20"},"scope":12860,"src":"38588:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9247,"nodeType":"Block","src":"38861:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":9239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38911:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":9240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9227,"src":"38944:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"38948:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9242,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9231,"src":"38952:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9243,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9233,"src":"38956:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38887:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38891:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38887:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38887:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38871:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38871:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9246,"nodeType":"ExpressionStatement","src":"38871:89:20"}]},"id":9248,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38795:3:20","nodeType":"FunctionDefinition","parameters":{"id":9234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9227,"mutability":"mutable","name":"p0","nameLocation":"38813:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38799:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9226,"name":"string","nodeType":"ElementaryTypeName","src":"38799:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9229,"mutability":"mutable","name":"p1","nameLocation":"38822:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38817:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9228,"name":"bool","nodeType":"ElementaryTypeName","src":"38817:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9231,"mutability":"mutable","name":"p2","nameLocation":"38834:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38826:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9230,"name":"uint256","nodeType":"ElementaryTypeName","src":"38826:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9233,"mutability":"mutable","name":"p3","nameLocation":"38843:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38838:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9232,"name":"bool","nodeType":"ElementaryTypeName","src":"38838:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38798:48:20"},"returnParameters":{"id":9235,"nodeType":"ParameterList","parameters":[],"src":"38861:0:20"},"scope":12860,"src":"38786:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9270,"nodeType":"Block","src":"39051:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":9262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39101:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":9263,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9250,"src":"39137:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9264,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9252,"src":"39141:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9265,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9254,"src":"39145:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9266,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9256,"src":"39149:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39077:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39081:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39077:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39077:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9259,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39061:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39061:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9269,"nodeType":"ExpressionStatement","src":"39061:92:20"}]},"id":9271,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38982:3:20","nodeType":"FunctionDefinition","parameters":{"id":9257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9250,"mutability":"mutable","name":"p0","nameLocation":"39000:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"38986:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9249,"name":"string","nodeType":"ElementaryTypeName","src":"38986:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9252,"mutability":"mutable","name":"p1","nameLocation":"39009:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"39004:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9251,"name":"bool","nodeType":"ElementaryTypeName","src":"39004:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9254,"mutability":"mutable","name":"p2","nameLocation":"39021:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"39013:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9253,"name":"uint256","nodeType":"ElementaryTypeName","src":"39013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9256,"mutability":"mutable","name":"p3","nameLocation":"39033:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"39025:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9255,"name":"address","nodeType":"ElementaryTypeName","src":"39025:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38985:51:20"},"returnParameters":{"id":9258,"nodeType":"ParameterList","parameters":[],"src":"39051:0:20"},"scope":12860,"src":"38973:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9293,"nodeType":"Block","src":"39250:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":9285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39300:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":9286,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9273,"src":"39335:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9287,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"39339:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9288,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9277,"src":"39343:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9289,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"39347:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39276:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39280:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39276:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39276:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9282,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39260:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39260:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9292,"nodeType":"ExpressionStatement","src":"39260:91:20"}]},"id":9294,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39175:3:20","nodeType":"FunctionDefinition","parameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9273,"mutability":"mutable","name":"p0","nameLocation":"39193:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39179:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9272,"name":"string","nodeType":"ElementaryTypeName","src":"39179:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9275,"mutability":"mutable","name":"p1","nameLocation":"39202:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39197:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9274,"name":"bool","nodeType":"ElementaryTypeName","src":"39197:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9277,"mutability":"mutable","name":"p2","nameLocation":"39220:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39206:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9276,"name":"string","nodeType":"ElementaryTypeName","src":"39206:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9279,"mutability":"mutable","name":"p3","nameLocation":"39232:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39224:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9278,"name":"uint256","nodeType":"ElementaryTypeName","src":"39224:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39178:57:20"},"returnParameters":{"id":9281,"nodeType":"ParameterList","parameters":[],"src":"39250:0:20"},"scope":12860,"src":"39166:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9316,"nodeType":"Block","src":"39454:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":9308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39504:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":9309,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9296,"src":"39538:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9310,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9298,"src":"39542:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9311,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9300,"src":"39546:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9312,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9302,"src":"39550:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9306,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39480:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39484:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39480:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39480:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9305,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39464:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39464:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9315,"nodeType":"ExpressionStatement","src":"39464:90:20"}]},"id":9317,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39373:3:20","nodeType":"FunctionDefinition","parameters":{"id":9303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9296,"mutability":"mutable","name":"p0","nameLocation":"39391:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39377:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9295,"name":"string","nodeType":"ElementaryTypeName","src":"39377:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9298,"mutability":"mutable","name":"p1","nameLocation":"39400:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39395:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9297,"name":"bool","nodeType":"ElementaryTypeName","src":"39395:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9300,"mutability":"mutable","name":"p2","nameLocation":"39418:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39404:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9299,"name":"string","nodeType":"ElementaryTypeName","src":"39404:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9302,"mutability":"mutable","name":"p3","nameLocation":"39436:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39422:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9301,"name":"string","nodeType":"ElementaryTypeName","src":"39422:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39376:63:20"},"returnParameters":{"id":9304,"nodeType":"ParameterList","parameters":[],"src":"39454:0:20"},"scope":12860,"src":"39364:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9339,"nodeType":"Block","src":"39648:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":9331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39698:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":9332,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9319,"src":"39730:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9333,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"39734:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9334,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"39738:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9335,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9325,"src":"39742:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39674:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39678:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39674:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39674:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9328,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39658:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39658:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9338,"nodeType":"ExpressionStatement","src":"39658:88:20"}]},"id":9340,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39576:3:20","nodeType":"FunctionDefinition","parameters":{"id":9326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9319,"mutability":"mutable","name":"p0","nameLocation":"39594:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39580:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9318,"name":"string","nodeType":"ElementaryTypeName","src":"39580:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9321,"mutability":"mutable","name":"p1","nameLocation":"39603:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39598:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9320,"name":"bool","nodeType":"ElementaryTypeName","src":"39598:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9323,"mutability":"mutable","name":"p2","nameLocation":"39621:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39607:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9322,"name":"string","nodeType":"ElementaryTypeName","src":"39607:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9325,"mutability":"mutable","name":"p3","nameLocation":"39630:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39625:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9324,"name":"bool","nodeType":"ElementaryTypeName","src":"39625:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39579:54:20"},"returnParameters":{"id":9327,"nodeType":"ParameterList","parameters":[],"src":"39648:0:20"},"scope":12860,"src":"39567:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9362,"nodeType":"Block","src":"39843:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":9354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39893:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":9355,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"39928:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9356,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"39932:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9357,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9346,"src":"39936:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9358,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9348,"src":"39940:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9352,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39869:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39873:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39869:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39869:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9351,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39853:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39853:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9361,"nodeType":"ExpressionStatement","src":"39853:91:20"}]},"id":9363,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39768:3:20","nodeType":"FunctionDefinition","parameters":{"id":9349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"p0","nameLocation":"39786:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39772:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9341,"name":"string","nodeType":"ElementaryTypeName","src":"39772:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9344,"mutability":"mutable","name":"p1","nameLocation":"39795:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39790:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9343,"name":"bool","nodeType":"ElementaryTypeName","src":"39790:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9346,"mutability":"mutable","name":"p2","nameLocation":"39813:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39799:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9345,"name":"string","nodeType":"ElementaryTypeName","src":"39799:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9348,"mutability":"mutable","name":"p3","nameLocation":"39825:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39817:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9347,"name":"address","nodeType":"ElementaryTypeName","src":"39817:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39771:57:20"},"returnParameters":{"id":9350,"nodeType":"ParameterList","parameters":[],"src":"39843:0:20"},"scope":12860,"src":"39759:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9385,"nodeType":"Block","src":"40032:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":9377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40082:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":9378,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9365,"src":"40115:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9379,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"40119:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9380,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"40123:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9381,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"40127:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40058:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40062:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40058:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40058:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9374,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40042:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40042:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9384,"nodeType":"ExpressionStatement","src":"40042:89:20"}]},"id":9386,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39966:3:20","nodeType":"FunctionDefinition","parameters":{"id":9372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9365,"mutability":"mutable","name":"p0","nameLocation":"39984:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"39970:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9364,"name":"string","nodeType":"ElementaryTypeName","src":"39970:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9367,"mutability":"mutable","name":"p1","nameLocation":"39993:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"39988:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9366,"name":"bool","nodeType":"ElementaryTypeName","src":"39988:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9369,"mutability":"mutable","name":"p2","nameLocation":"40002:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"39997:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9368,"name":"bool","nodeType":"ElementaryTypeName","src":"39997:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9371,"mutability":"mutable","name":"p3","nameLocation":"40014:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"40006:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9370,"name":"uint256","nodeType":"ElementaryTypeName","src":"40006:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39969:48:20"},"returnParameters":{"id":9373,"nodeType":"ParameterList","parameters":[],"src":"40032:0:20"},"scope":12860,"src":"39957:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9408,"nodeType":"Block","src":"40225:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":9400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40275:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":9401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9388,"src":"40307:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"40311:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9392,"src":"40315:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9404,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9394,"src":"40319:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40251:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40255:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40251:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40251:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40235:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40235:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9407,"nodeType":"ExpressionStatement","src":"40235:88:20"}]},"id":9409,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40153:3:20","nodeType":"FunctionDefinition","parameters":{"id":9395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9388,"mutability":"mutable","name":"p0","nameLocation":"40171:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40157:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9387,"name":"string","nodeType":"ElementaryTypeName","src":"40157:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9390,"mutability":"mutable","name":"p1","nameLocation":"40180:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40175:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9389,"name":"bool","nodeType":"ElementaryTypeName","src":"40175:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9392,"mutability":"mutable","name":"p2","nameLocation":"40189:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40184:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9391,"name":"bool","nodeType":"ElementaryTypeName","src":"40184:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9394,"mutability":"mutable","name":"p3","nameLocation":"40207:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40193:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9393,"name":"string","nodeType":"ElementaryTypeName","src":"40193:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40156:54:20"},"returnParameters":{"id":9396,"nodeType":"ParameterList","parameters":[],"src":"40225:0:20"},"scope":12860,"src":"40144:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9431,"nodeType":"Block","src":"40408:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":9423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40458:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":9424,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"40488:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9425,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9413,"src":"40492:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9426,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9415,"src":"40496:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9427,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"40500:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40434:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40438:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40434:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40434:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9420,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40418:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40418:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9430,"nodeType":"ExpressionStatement","src":"40418:86:20"}]},"id":9432,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40345:3:20","nodeType":"FunctionDefinition","parameters":{"id":9418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9411,"mutability":"mutable","name":"p0","nameLocation":"40363:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40349:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9410,"name":"string","nodeType":"ElementaryTypeName","src":"40349:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9413,"mutability":"mutable","name":"p1","nameLocation":"40372:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40367:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9412,"name":"bool","nodeType":"ElementaryTypeName","src":"40367:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9415,"mutability":"mutable","name":"p2","nameLocation":"40381:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40376:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9414,"name":"bool","nodeType":"ElementaryTypeName","src":"40376:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9417,"mutability":"mutable","name":"p3","nameLocation":"40390:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40385:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9416,"name":"bool","nodeType":"ElementaryTypeName","src":"40385:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40348:45:20"},"returnParameters":{"id":9419,"nodeType":"ParameterList","parameters":[],"src":"40408:0:20"},"scope":12860,"src":"40336:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9454,"nodeType":"Block","src":"40592:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":9446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40642:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":9447,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9434,"src":"40675:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9448,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"40679:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9449,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"40683:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9450,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9440,"src":"40687:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9444,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40618:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40622:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40618:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40618:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9443,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40602:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40602:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9453,"nodeType":"ExpressionStatement","src":"40602:89:20"}]},"id":9455,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40526:3:20","nodeType":"FunctionDefinition","parameters":{"id":9441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9434,"mutability":"mutable","name":"p0","nameLocation":"40544:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40530:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9433,"name":"string","nodeType":"ElementaryTypeName","src":"40530:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9436,"mutability":"mutable","name":"p1","nameLocation":"40553:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40548:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9435,"name":"bool","nodeType":"ElementaryTypeName","src":"40548:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9438,"mutability":"mutable","name":"p2","nameLocation":"40562:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40557:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9437,"name":"bool","nodeType":"ElementaryTypeName","src":"40557:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9440,"mutability":"mutable","name":"p3","nameLocation":"40574:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40566:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9439,"name":"address","nodeType":"ElementaryTypeName","src":"40566:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40529:48:20"},"returnParameters":{"id":9442,"nodeType":"ParameterList","parameters":[],"src":"40592:0:20"},"scope":12860,"src":"40517:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9477,"nodeType":"Block","src":"40782:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":9469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40832:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":9470,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9457,"src":"40868:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9471,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"40872:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9472,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9461,"src":"40876:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9473,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"40880:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9467,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40808:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40812:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40808:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40808:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9466,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40792:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40792:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9476,"nodeType":"ExpressionStatement","src":"40792:92:20"}]},"id":9478,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40713:3:20","nodeType":"FunctionDefinition","parameters":{"id":9464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9457,"mutability":"mutable","name":"p0","nameLocation":"40731:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40717:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9456,"name":"string","nodeType":"ElementaryTypeName","src":"40717:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9459,"mutability":"mutable","name":"p1","nameLocation":"40740:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40735:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9458,"name":"bool","nodeType":"ElementaryTypeName","src":"40735:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9461,"mutability":"mutable","name":"p2","nameLocation":"40752:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40744:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9460,"name":"address","nodeType":"ElementaryTypeName","src":"40744:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9463,"mutability":"mutable","name":"p3","nameLocation":"40764:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40756:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9462,"name":"uint256","nodeType":"ElementaryTypeName","src":"40756:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40716:51:20"},"returnParameters":{"id":9465,"nodeType":"ParameterList","parameters":[],"src":"40782:0:20"},"scope":12860,"src":"40704:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9500,"nodeType":"Block","src":"40981:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":9492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41031:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":9493,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"41066:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9494,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"41070:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9495,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9484,"src":"41074:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9496,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"41078:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9490,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41007:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41011:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41007:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41007:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9489,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40991:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40991:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9499,"nodeType":"ExpressionStatement","src":"40991:91:20"}]},"id":9501,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40906:3:20","nodeType":"FunctionDefinition","parameters":{"id":9487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9480,"mutability":"mutable","name":"p0","nameLocation":"40924:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40910:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9479,"name":"string","nodeType":"ElementaryTypeName","src":"40910:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9482,"mutability":"mutable","name":"p1","nameLocation":"40933:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40928:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9481,"name":"bool","nodeType":"ElementaryTypeName","src":"40928:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9484,"mutability":"mutable","name":"p2","nameLocation":"40945:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40937:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9483,"name":"address","nodeType":"ElementaryTypeName","src":"40937:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9486,"mutability":"mutable","name":"p3","nameLocation":"40963:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40949:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9485,"name":"string","nodeType":"ElementaryTypeName","src":"40949:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40909:57:20"},"returnParameters":{"id":9488,"nodeType":"ParameterList","parameters":[],"src":"40981:0:20"},"scope":12860,"src":"40897:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9523,"nodeType":"Block","src":"41170:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":9515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41220:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":9516,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"41253:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9517,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9505,"src":"41257:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9518,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9507,"src":"41261:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9519,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9509,"src":"41265:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41196:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41200:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41196:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41196:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9512,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41180:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41180:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9522,"nodeType":"ExpressionStatement","src":"41180:89:20"}]},"id":9524,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41104:3:20","nodeType":"FunctionDefinition","parameters":{"id":9510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9503,"mutability":"mutable","name":"p0","nameLocation":"41122:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41108:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9502,"name":"string","nodeType":"ElementaryTypeName","src":"41108:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9505,"mutability":"mutable","name":"p1","nameLocation":"41131:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41126:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9504,"name":"bool","nodeType":"ElementaryTypeName","src":"41126:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9507,"mutability":"mutable","name":"p2","nameLocation":"41143:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41135:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9506,"name":"address","nodeType":"ElementaryTypeName","src":"41135:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9509,"mutability":"mutable","name":"p3","nameLocation":"41152:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41147:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9508,"name":"bool","nodeType":"ElementaryTypeName","src":"41147:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41107:48:20"},"returnParameters":{"id":9511,"nodeType":"ParameterList","parameters":[],"src":"41170:0:20"},"scope":12860,"src":"41095:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9546,"nodeType":"Block","src":"41360:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":9538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41410:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":9539,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9526,"src":"41446:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9540,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"41450:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9541,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"41454:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9542,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"41458:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41386:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41390:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41386:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41386:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9535,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41370:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41370:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9545,"nodeType":"ExpressionStatement","src":"41370:92:20"}]},"id":9547,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41291:3:20","nodeType":"FunctionDefinition","parameters":{"id":9533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9526,"mutability":"mutable","name":"p0","nameLocation":"41309:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41295:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9525,"name":"string","nodeType":"ElementaryTypeName","src":"41295:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9528,"mutability":"mutable","name":"p1","nameLocation":"41318:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41313:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9527,"name":"bool","nodeType":"ElementaryTypeName","src":"41313:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9530,"mutability":"mutable","name":"p2","nameLocation":"41330:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41322:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9529,"name":"address","nodeType":"ElementaryTypeName","src":"41322:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9532,"mutability":"mutable","name":"p3","nameLocation":"41342:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41334:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9531,"name":"address","nodeType":"ElementaryTypeName","src":"41334:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41294:51:20"},"returnParameters":{"id":9534,"nodeType":"ParameterList","parameters":[],"src":"41360:0:20"},"scope":12860,"src":"41282:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9569,"nodeType":"Block","src":"41556:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":9561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41606:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":9562,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"41645:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9563,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"41649:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9564,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9553,"src":"41653:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9565,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9555,"src":"41657:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9559,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41582:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41586:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41582:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41582:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9558,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41566:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41566:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9568,"nodeType":"ExpressionStatement","src":"41566:95:20"}]},"id":9570,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41484:3:20","nodeType":"FunctionDefinition","parameters":{"id":9556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9549,"mutability":"mutable","name":"p0","nameLocation":"41502:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41488:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9548,"name":"string","nodeType":"ElementaryTypeName","src":"41488:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9551,"mutability":"mutable","name":"p1","nameLocation":"41514:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41506:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9550,"name":"address","nodeType":"ElementaryTypeName","src":"41506:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"p2","nameLocation":"41526:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41518:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9552,"name":"uint256","nodeType":"ElementaryTypeName","src":"41518:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9555,"mutability":"mutable","name":"p3","nameLocation":"41538:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41530:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9554,"name":"uint256","nodeType":"ElementaryTypeName","src":"41530:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41487:54:20"},"returnParameters":{"id":9557,"nodeType":"ParameterList","parameters":[],"src":"41556:0:20"},"scope":12860,"src":"41475:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9592,"nodeType":"Block","src":"41761:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":9584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41811:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":9585,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"41849:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9586,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"41853:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9587,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"41857:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9588,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9578,"src":"41861:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9582,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41787:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41791:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41787:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41787:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9581,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41771:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41771:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9591,"nodeType":"ExpressionStatement","src":"41771:94:20"}]},"id":9593,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41683:3:20","nodeType":"FunctionDefinition","parameters":{"id":9579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9572,"mutability":"mutable","name":"p0","nameLocation":"41701:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41687:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9571,"name":"string","nodeType":"ElementaryTypeName","src":"41687:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9574,"mutability":"mutable","name":"p1","nameLocation":"41713:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41705:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9573,"name":"address","nodeType":"ElementaryTypeName","src":"41705:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9576,"mutability":"mutable","name":"p2","nameLocation":"41725:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41717:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9575,"name":"uint256","nodeType":"ElementaryTypeName","src":"41717:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9578,"mutability":"mutable","name":"p3","nameLocation":"41743:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41729:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9577,"name":"string","nodeType":"ElementaryTypeName","src":"41729:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41686:60:20"},"returnParameters":{"id":9580,"nodeType":"ParameterList","parameters":[],"src":"41761:0:20"},"scope":12860,"src":"41674:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9615,"nodeType":"Block","src":"41956:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":9607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42006:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":9608,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9595,"src":"42042:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9609,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9597,"src":"42046:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9610,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9599,"src":"42050:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9611,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9601,"src":"42054:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9605,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41982:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41986:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41982:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41982:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9604,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41966:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41966:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9614,"nodeType":"ExpressionStatement","src":"41966:92:20"}]},"id":9616,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41887:3:20","nodeType":"FunctionDefinition","parameters":{"id":9602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9595,"mutability":"mutable","name":"p0","nameLocation":"41905:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41891:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9594,"name":"string","nodeType":"ElementaryTypeName","src":"41891:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9597,"mutability":"mutable","name":"p1","nameLocation":"41917:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41909:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9596,"name":"address","nodeType":"ElementaryTypeName","src":"41909:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9599,"mutability":"mutable","name":"p2","nameLocation":"41929:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41921:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9598,"name":"uint256","nodeType":"ElementaryTypeName","src":"41921:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9601,"mutability":"mutable","name":"p3","nameLocation":"41938:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41933:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9600,"name":"bool","nodeType":"ElementaryTypeName","src":"41933:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41890:51:20"},"returnParameters":{"id":9603,"nodeType":"ParameterList","parameters":[],"src":"41956:0:20"},"scope":12860,"src":"41878:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9638,"nodeType":"Block","src":"42152:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":9630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42202:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":9631,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"42241:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9632,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"42245:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9633,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"42249:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9634,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"42253:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9628,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42178:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42182:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42178:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42178:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9627,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42162:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42162:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9637,"nodeType":"ExpressionStatement","src":"42162:95:20"}]},"id":9639,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42080:3:20","nodeType":"FunctionDefinition","parameters":{"id":9625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9618,"mutability":"mutable","name":"p0","nameLocation":"42098:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42084:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9617,"name":"string","nodeType":"ElementaryTypeName","src":"42084:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9620,"mutability":"mutable","name":"p1","nameLocation":"42110:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42102:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9619,"name":"address","nodeType":"ElementaryTypeName","src":"42102:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9622,"mutability":"mutable","name":"p2","nameLocation":"42122:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42114:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9621,"name":"uint256","nodeType":"ElementaryTypeName","src":"42114:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9624,"mutability":"mutable","name":"p3","nameLocation":"42134:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42126:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9623,"name":"address","nodeType":"ElementaryTypeName","src":"42126:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42083:54:20"},"returnParameters":{"id":9626,"nodeType":"ParameterList","parameters":[],"src":"42152:0:20"},"scope":12860,"src":"42071:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9661,"nodeType":"Block","src":"42357:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":9653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42407:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":9654,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9641,"src":"42445:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9655,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"42449:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9656,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9645,"src":"42453:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9657,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9647,"src":"42457:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42383:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42387:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42383:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42383:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9650,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42367:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42367:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9660,"nodeType":"ExpressionStatement","src":"42367:94:20"}]},"id":9662,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42279:3:20","nodeType":"FunctionDefinition","parameters":{"id":9648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9641,"mutability":"mutable","name":"p0","nameLocation":"42297:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42283:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9640,"name":"string","nodeType":"ElementaryTypeName","src":"42283:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9643,"mutability":"mutable","name":"p1","nameLocation":"42309:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42301:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9642,"name":"address","nodeType":"ElementaryTypeName","src":"42301:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9645,"mutability":"mutable","name":"p2","nameLocation":"42327:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42313:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9644,"name":"string","nodeType":"ElementaryTypeName","src":"42313:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9647,"mutability":"mutable","name":"p3","nameLocation":"42339:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42331:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9646,"name":"uint256","nodeType":"ElementaryTypeName","src":"42331:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42282:60:20"},"returnParameters":{"id":9649,"nodeType":"ParameterList","parameters":[],"src":"42357:0:20"},"scope":12860,"src":"42270:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9684,"nodeType":"Block","src":"42567:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":9676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42617:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":9677,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"42654:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9678,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"42658:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9679,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9668,"src":"42662:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9680,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"42666:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9674,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42593:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42597:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42593:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42593:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9673,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42577:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42577:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9683,"nodeType":"ExpressionStatement","src":"42577:93:20"}]},"id":9685,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42483:3:20","nodeType":"FunctionDefinition","parameters":{"id":9671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9664,"mutability":"mutable","name":"p0","nameLocation":"42501:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42487:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9663,"name":"string","nodeType":"ElementaryTypeName","src":"42487:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9666,"mutability":"mutable","name":"p1","nameLocation":"42513:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42505:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9665,"name":"address","nodeType":"ElementaryTypeName","src":"42505:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9668,"mutability":"mutable","name":"p2","nameLocation":"42531:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42517:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9667,"name":"string","nodeType":"ElementaryTypeName","src":"42517:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9670,"mutability":"mutable","name":"p3","nameLocation":"42549:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42535:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9669,"name":"string","nodeType":"ElementaryTypeName","src":"42535:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42486:66:20"},"returnParameters":{"id":9672,"nodeType":"ParameterList","parameters":[],"src":"42567:0:20"},"scope":12860,"src":"42474:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9707,"nodeType":"Block","src":"42767:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42817:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":9700,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"42852:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9701,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"42856:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9702,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9691,"src":"42860:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9703,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9693,"src":"42864:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9697,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42793:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42797:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42793:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42793:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9696,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42777:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42777:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9706,"nodeType":"ExpressionStatement","src":"42777:91:20"}]},"id":9708,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42692:3:20","nodeType":"FunctionDefinition","parameters":{"id":9694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9687,"mutability":"mutable","name":"p0","nameLocation":"42710:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42696:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9686,"name":"string","nodeType":"ElementaryTypeName","src":"42696:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9689,"mutability":"mutable","name":"p1","nameLocation":"42722:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42714:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9688,"name":"address","nodeType":"ElementaryTypeName","src":"42714:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9691,"mutability":"mutable","name":"p2","nameLocation":"42740:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42726:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9690,"name":"string","nodeType":"ElementaryTypeName","src":"42726:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9693,"mutability":"mutable","name":"p3","nameLocation":"42749:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9692,"name":"bool","nodeType":"ElementaryTypeName","src":"42744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42695:57:20"},"returnParameters":{"id":9695,"nodeType":"ParameterList","parameters":[],"src":"42767:0:20"},"scope":12860,"src":"42683:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9730,"nodeType":"Block","src":"42968:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":9722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43018:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":9723,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9710,"src":"43056:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9724,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9712,"src":"43060:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9725,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9714,"src":"43064:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9726,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9716,"src":"43068:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9720,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42994:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42998:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42994:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42994:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9719,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42978:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42978:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9729,"nodeType":"ExpressionStatement","src":"42978:94:20"}]},"id":9731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42890:3:20","nodeType":"FunctionDefinition","parameters":{"id":9717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9710,"mutability":"mutable","name":"p0","nameLocation":"42908:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42894:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9709,"name":"string","nodeType":"ElementaryTypeName","src":"42894:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9712,"mutability":"mutable","name":"p1","nameLocation":"42920:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42912:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9711,"name":"address","nodeType":"ElementaryTypeName","src":"42912:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9714,"mutability":"mutable","name":"p2","nameLocation":"42938:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42924:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9713,"name":"string","nodeType":"ElementaryTypeName","src":"42924:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9716,"mutability":"mutable","name":"p3","nameLocation":"42950:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42942:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9715,"name":"address","nodeType":"ElementaryTypeName","src":"42942:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42893:60:20"},"returnParameters":{"id":9718,"nodeType":"ParameterList","parameters":[],"src":"42968:0:20"},"scope":12860,"src":"42881:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9753,"nodeType":"Block","src":"43163:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":9745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43213:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":9746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"43249:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9747,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"43253:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9748,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9737,"src":"43257:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9749,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"43261:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43189:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43193:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43189:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43189:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43173:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43173:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9752,"nodeType":"ExpressionStatement","src":"43173:92:20"}]},"id":9754,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43094:3:20","nodeType":"FunctionDefinition","parameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9733,"mutability":"mutable","name":"p0","nameLocation":"43112:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43098:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9732,"name":"string","nodeType":"ElementaryTypeName","src":"43098:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9735,"mutability":"mutable","name":"p1","nameLocation":"43124:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43116:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9734,"name":"address","nodeType":"ElementaryTypeName","src":"43116:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9737,"mutability":"mutable","name":"p2","nameLocation":"43133:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43128:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9736,"name":"bool","nodeType":"ElementaryTypeName","src":"43128:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9739,"mutability":"mutable","name":"p3","nameLocation":"43145:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43137:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9738,"name":"uint256","nodeType":"ElementaryTypeName","src":"43137:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43097:51:20"},"returnParameters":{"id":9741,"nodeType":"ParameterList","parameters":[],"src":"43163:0:20"},"scope":12860,"src":"43085:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9776,"nodeType":"Block","src":"43362:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":9768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43412:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":9769,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"43447:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9770,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"43451:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9771,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"43455:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9772,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9762,"src":"43459:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43388:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43392:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43388:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43388:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9765,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43372:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43372:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9775,"nodeType":"ExpressionStatement","src":"43372:91:20"}]},"id":9777,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43287:3:20","nodeType":"FunctionDefinition","parameters":{"id":9763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9756,"mutability":"mutable","name":"p0","nameLocation":"43305:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43291:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9755,"name":"string","nodeType":"ElementaryTypeName","src":"43291:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9758,"mutability":"mutable","name":"p1","nameLocation":"43317:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43309:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9757,"name":"address","nodeType":"ElementaryTypeName","src":"43309:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9760,"mutability":"mutable","name":"p2","nameLocation":"43326:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43321:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9759,"name":"bool","nodeType":"ElementaryTypeName","src":"43321:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9762,"mutability":"mutable","name":"p3","nameLocation":"43344:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43330:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9761,"name":"string","nodeType":"ElementaryTypeName","src":"43330:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43290:57:20"},"returnParameters":{"id":9764,"nodeType":"ParameterList","parameters":[],"src":"43362:0:20"},"scope":12860,"src":"43278:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9799,"nodeType":"Block","src":"43551:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":9791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43601:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":9792,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9779,"src":"43634:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9793,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9781,"src":"43638:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9794,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9783,"src":"43642:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9795,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"43646:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43577:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43581:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43577:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43577:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9788,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43561:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43561:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9798,"nodeType":"ExpressionStatement","src":"43561:89:20"}]},"id":9800,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43485:3:20","nodeType":"FunctionDefinition","parameters":{"id":9786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9779,"mutability":"mutable","name":"p0","nameLocation":"43503:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43489:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9778,"name":"string","nodeType":"ElementaryTypeName","src":"43489:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9781,"mutability":"mutable","name":"p1","nameLocation":"43515:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9780,"name":"address","nodeType":"ElementaryTypeName","src":"43507:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9783,"mutability":"mutable","name":"p2","nameLocation":"43524:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43519:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9782,"name":"bool","nodeType":"ElementaryTypeName","src":"43519:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9785,"mutability":"mutable","name":"p3","nameLocation":"43533:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43528:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9784,"name":"bool","nodeType":"ElementaryTypeName","src":"43528:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43488:48:20"},"returnParameters":{"id":9787,"nodeType":"ParameterList","parameters":[],"src":"43551:0:20"},"scope":12860,"src":"43476:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9822,"nodeType":"Block","src":"43741:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":9814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43791:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":9815,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"43827:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9816,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9804,"src":"43831:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9817,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9806,"src":"43835:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9818,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9808,"src":"43839:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43767:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43771:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43767:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43767:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43751:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43751:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9821,"nodeType":"ExpressionStatement","src":"43751:92:20"}]},"id":9823,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43672:3:20","nodeType":"FunctionDefinition","parameters":{"id":9809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"p0","nameLocation":"43690:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43676:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9801,"name":"string","nodeType":"ElementaryTypeName","src":"43676:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9804,"mutability":"mutable","name":"p1","nameLocation":"43702:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43694:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9803,"name":"address","nodeType":"ElementaryTypeName","src":"43694:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9806,"mutability":"mutable","name":"p2","nameLocation":"43711:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43706:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9805,"name":"bool","nodeType":"ElementaryTypeName","src":"43706:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9808,"mutability":"mutable","name":"p3","nameLocation":"43723:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43715:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9807,"name":"address","nodeType":"ElementaryTypeName","src":"43715:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43675:51:20"},"returnParameters":{"id":9810,"nodeType":"ParameterList","parameters":[],"src":"43741:0:20"},"scope":12860,"src":"43663:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9845,"nodeType":"Block","src":"43937:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":9837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43987:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":9838,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9825,"src":"44026:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9839,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9827,"src":"44030:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9840,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9829,"src":"44034:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9841,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9831,"src":"44038:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9835,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43963:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43967:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43963:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43963:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9834,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43947:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43947:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9844,"nodeType":"ExpressionStatement","src":"43947:95:20"}]},"id":9846,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43865:3:20","nodeType":"FunctionDefinition","parameters":{"id":9832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9825,"mutability":"mutable","name":"p0","nameLocation":"43883:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43869:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9824,"name":"string","nodeType":"ElementaryTypeName","src":"43869:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9827,"mutability":"mutable","name":"p1","nameLocation":"43895:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43887:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9826,"name":"address","nodeType":"ElementaryTypeName","src":"43887:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9829,"mutability":"mutable","name":"p2","nameLocation":"43907:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43899:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9828,"name":"address","nodeType":"ElementaryTypeName","src":"43899:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9831,"mutability":"mutable","name":"p3","nameLocation":"43919:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43911:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9830,"name":"uint256","nodeType":"ElementaryTypeName","src":"43911:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43868:54:20"},"returnParameters":{"id":9833,"nodeType":"ParameterList","parameters":[],"src":"43937:0:20"},"scope":12860,"src":"43856:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9868,"nodeType":"Block","src":"44142:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":9860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44192:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":9861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9848,"src":"44230:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9862,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"44234:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9863,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"44238:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9864,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"44242:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44168:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44172:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44168:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44168:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44152:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44152:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9867,"nodeType":"ExpressionStatement","src":"44152:94:20"}]},"id":9869,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44064:3:20","nodeType":"FunctionDefinition","parameters":{"id":9855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9848,"mutability":"mutable","name":"p0","nameLocation":"44082:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44068:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9847,"name":"string","nodeType":"ElementaryTypeName","src":"44068:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9850,"mutability":"mutable","name":"p1","nameLocation":"44094:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9849,"name":"address","nodeType":"ElementaryTypeName","src":"44086:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9852,"mutability":"mutable","name":"p2","nameLocation":"44106:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44098:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9851,"name":"address","nodeType":"ElementaryTypeName","src":"44098:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9854,"mutability":"mutable","name":"p3","nameLocation":"44124:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44110:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9853,"name":"string","nodeType":"ElementaryTypeName","src":"44110:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44067:60:20"},"returnParameters":{"id":9856,"nodeType":"ParameterList","parameters":[],"src":"44142:0:20"},"scope":12860,"src":"44055:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9891,"nodeType":"Block","src":"44337:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":9883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44387:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":9884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9871,"src":"44423:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9873,"src":"44427:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9875,"src":"44431:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9887,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"44435:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44363:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44367:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44363:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44363:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44347:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44347:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9890,"nodeType":"ExpressionStatement","src":"44347:92:20"}]},"id":9892,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44268:3:20","nodeType":"FunctionDefinition","parameters":{"id":9878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9871,"mutability":"mutable","name":"p0","nameLocation":"44286:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44272:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9870,"name":"string","nodeType":"ElementaryTypeName","src":"44272:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9873,"mutability":"mutable","name":"p1","nameLocation":"44298:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44290:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9872,"name":"address","nodeType":"ElementaryTypeName","src":"44290:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9875,"mutability":"mutable","name":"p2","nameLocation":"44310:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44302:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9874,"name":"address","nodeType":"ElementaryTypeName","src":"44302:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9877,"mutability":"mutable","name":"p3","nameLocation":"44319:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44314:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9876,"name":"bool","nodeType":"ElementaryTypeName","src":"44314:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44271:51:20"},"returnParameters":{"id":9879,"nodeType":"ParameterList","parameters":[],"src":"44337:0:20"},"scope":12860,"src":"44259:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9914,"nodeType":"Block","src":"44533:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":9906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44583:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":9907,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"44622:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9908,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"44626:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9909,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9898,"src":"44630:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9910,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9900,"src":"44634:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44559:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44563:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44559:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44559:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9903,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44543:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44543:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9913,"nodeType":"ExpressionStatement","src":"44543:95:20"}]},"id":9915,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44461:3:20","nodeType":"FunctionDefinition","parameters":{"id":9901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9894,"mutability":"mutable","name":"p0","nameLocation":"44479:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44465:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9893,"name":"string","nodeType":"ElementaryTypeName","src":"44465:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9896,"mutability":"mutable","name":"p1","nameLocation":"44491:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44483:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9895,"name":"address","nodeType":"ElementaryTypeName","src":"44483:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9898,"mutability":"mutable","name":"p2","nameLocation":"44503:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44495:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9897,"name":"address","nodeType":"ElementaryTypeName","src":"44495:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9900,"mutability":"mutable","name":"p3","nameLocation":"44515:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9899,"name":"address","nodeType":"ElementaryTypeName","src":"44507:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44464:54:20"},"returnParameters":{"id":9902,"nodeType":"ParameterList","parameters":[],"src":"44533:0:20"},"scope":12860,"src":"44452:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9937,"nodeType":"Block","src":"44723:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":9929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44773:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":9930,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9917,"src":"44810:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9931,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"44814:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9932,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9921,"src":"44818:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9933,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9923,"src":"44822:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9927,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44749:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44753:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44749:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44749:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9926,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44733:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44733:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9936,"nodeType":"ExpressionStatement","src":"44733:93:20"}]},"id":9938,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44660:3:20","nodeType":"FunctionDefinition","parameters":{"id":9924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9917,"mutability":"mutable","name":"p0","nameLocation":"44669:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44664:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9916,"name":"bool","nodeType":"ElementaryTypeName","src":"44664:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9919,"mutability":"mutable","name":"p1","nameLocation":"44681:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44673:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9918,"name":"uint256","nodeType":"ElementaryTypeName","src":"44673:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9921,"mutability":"mutable","name":"p2","nameLocation":"44693:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44685:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9920,"name":"uint256","nodeType":"ElementaryTypeName","src":"44685:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9923,"mutability":"mutable","name":"p3","nameLocation":"44705:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44697:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9922,"name":"uint256","nodeType":"ElementaryTypeName","src":"44697:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44663:45:20"},"returnParameters":{"id":9925,"nodeType":"ParameterList","parameters":[],"src":"44723:0:20"},"scope":12860,"src":"44651:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9960,"nodeType":"Block","src":"44917:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":9952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44967:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":9953,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"45003:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9954,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9942,"src":"45007:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9955,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"45011:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9956,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9946,"src":"45015:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9950,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44943:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44947:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44943:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44943:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9949,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44927:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44927:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9959,"nodeType":"ExpressionStatement","src":"44927:92:20"}]},"id":9961,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44848:3:20","nodeType":"FunctionDefinition","parameters":{"id":9947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9940,"mutability":"mutable","name":"p0","nameLocation":"44857:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44852:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9939,"name":"bool","nodeType":"ElementaryTypeName","src":"44852:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9942,"mutability":"mutable","name":"p1","nameLocation":"44869:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44861:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9941,"name":"uint256","nodeType":"ElementaryTypeName","src":"44861:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9944,"mutability":"mutable","name":"p2","nameLocation":"44881:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44873:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9943,"name":"uint256","nodeType":"ElementaryTypeName","src":"44873:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9946,"mutability":"mutable","name":"p3","nameLocation":"44899:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44885:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9945,"name":"string","nodeType":"ElementaryTypeName","src":"44885:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44851:51:20"},"returnParameters":{"id":9948,"nodeType":"ParameterList","parameters":[],"src":"44917:0:20"},"scope":12860,"src":"44839:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9983,"nodeType":"Block","src":"45101:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":9975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45151:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":9976,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9963,"src":"45185:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9977,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"45189:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9978,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9967,"src":"45193:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9979,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9969,"src":"45197:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9973,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45127:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45131:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45127:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45127:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9972,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45111:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45111:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9982,"nodeType":"ExpressionStatement","src":"45111:90:20"}]},"id":9984,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45041:3:20","nodeType":"FunctionDefinition","parameters":{"id":9970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9963,"mutability":"mutable","name":"p0","nameLocation":"45050:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45045:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9962,"name":"bool","nodeType":"ElementaryTypeName","src":"45045:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9965,"mutability":"mutable","name":"p1","nameLocation":"45062:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45054:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9964,"name":"uint256","nodeType":"ElementaryTypeName","src":"45054:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9967,"mutability":"mutable","name":"p2","nameLocation":"45074:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45066:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9966,"name":"uint256","nodeType":"ElementaryTypeName","src":"45066:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9969,"mutability":"mutable","name":"p3","nameLocation":"45083:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45078:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9968,"name":"bool","nodeType":"ElementaryTypeName","src":"45078:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45044:42:20"},"returnParameters":{"id":9971,"nodeType":"ParameterList","parameters":[],"src":"45101:0:20"},"scope":12860,"src":"45032:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10006,"nodeType":"Block","src":"45286:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":9998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45336:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":9999,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9986,"src":"45373:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10000,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"45377:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10001,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9990,"src":"45381:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10002,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9992,"src":"45385:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9996,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45312:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45316:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45312:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45312:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9995,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45296:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45296:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10005,"nodeType":"ExpressionStatement","src":"45296:93:20"}]},"id":10007,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45223:3:20","nodeType":"FunctionDefinition","parameters":{"id":9993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9986,"mutability":"mutable","name":"p0","nameLocation":"45232:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45227:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9985,"name":"bool","nodeType":"ElementaryTypeName","src":"45227:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9988,"mutability":"mutable","name":"p1","nameLocation":"45244:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45236:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9987,"name":"uint256","nodeType":"ElementaryTypeName","src":"45236:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9990,"mutability":"mutable","name":"p2","nameLocation":"45256:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45248:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9989,"name":"uint256","nodeType":"ElementaryTypeName","src":"45248:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9992,"mutability":"mutable","name":"p3","nameLocation":"45268:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45260:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9991,"name":"address","nodeType":"ElementaryTypeName","src":"45260:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45226:45:20"},"returnParameters":{"id":9994,"nodeType":"ParameterList","parameters":[],"src":"45286:0:20"},"scope":12860,"src":"45214:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10029,"nodeType":"Block","src":"45480:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":10021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45530:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":10022,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"45566:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10023,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"45570:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10024,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10013,"src":"45574:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10025,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10015,"src":"45578:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45506:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45510:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45506:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45506:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10018,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45490:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45490:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10028,"nodeType":"ExpressionStatement","src":"45490:92:20"}]},"id":10030,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45411:3:20","nodeType":"FunctionDefinition","parameters":{"id":10016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10009,"mutability":"mutable","name":"p0","nameLocation":"45420:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45415:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10008,"name":"bool","nodeType":"ElementaryTypeName","src":"45415:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10011,"mutability":"mutable","name":"p1","nameLocation":"45432:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45424:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10010,"name":"uint256","nodeType":"ElementaryTypeName","src":"45424:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10013,"mutability":"mutable","name":"p2","nameLocation":"45450:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45436:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10012,"name":"string","nodeType":"ElementaryTypeName","src":"45436:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10015,"mutability":"mutable","name":"p3","nameLocation":"45462:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45454:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10014,"name":"uint256","nodeType":"ElementaryTypeName","src":"45454:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45414:51:20"},"returnParameters":{"id":10017,"nodeType":"ParameterList","parameters":[],"src":"45480:0:20"},"scope":12860,"src":"45402:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10052,"nodeType":"Block","src":"45679:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":10044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45729:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":10045,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10032,"src":"45764:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10046,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10034,"src":"45768:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10047,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"45772:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10048,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10038,"src":"45776:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45705:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45709:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45705:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45705:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10041,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45689:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45689:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10051,"nodeType":"ExpressionStatement","src":"45689:91:20"}]},"id":10053,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45604:3:20","nodeType":"FunctionDefinition","parameters":{"id":10039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10032,"mutability":"mutable","name":"p0","nameLocation":"45613:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45608:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10031,"name":"bool","nodeType":"ElementaryTypeName","src":"45608:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10034,"mutability":"mutable","name":"p1","nameLocation":"45625:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45617:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10033,"name":"uint256","nodeType":"ElementaryTypeName","src":"45617:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10036,"mutability":"mutable","name":"p2","nameLocation":"45643:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45629:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10035,"name":"string","nodeType":"ElementaryTypeName","src":"45629:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10038,"mutability":"mutable","name":"p3","nameLocation":"45661:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45647:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10037,"name":"string","nodeType":"ElementaryTypeName","src":"45647:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45607:57:20"},"returnParameters":{"id":10040,"nodeType":"ParameterList","parameters":[],"src":"45679:0:20"},"scope":12860,"src":"45595:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10075,"nodeType":"Block","src":"45868:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":10067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45918:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":10068,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"45951:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10069,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10057,"src":"45955:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10070,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10059,"src":"45959:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10071,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10061,"src":"45963:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10065,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45894:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45898:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45894:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45894:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10064,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45878:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45878:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10074,"nodeType":"ExpressionStatement","src":"45878:89:20"}]},"id":10076,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45802:3:20","nodeType":"FunctionDefinition","parameters":{"id":10062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10055,"mutability":"mutable","name":"p0","nameLocation":"45811:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45806:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10054,"name":"bool","nodeType":"ElementaryTypeName","src":"45806:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10057,"mutability":"mutable","name":"p1","nameLocation":"45823:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45815:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10056,"name":"uint256","nodeType":"ElementaryTypeName","src":"45815:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10059,"mutability":"mutable","name":"p2","nameLocation":"45841:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45827:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10058,"name":"string","nodeType":"ElementaryTypeName","src":"45827:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10061,"mutability":"mutable","name":"p3","nameLocation":"45850:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45845:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10060,"name":"bool","nodeType":"ElementaryTypeName","src":"45845:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45805:48:20"},"returnParameters":{"id":10063,"nodeType":"ParameterList","parameters":[],"src":"45868:0:20"},"scope":12860,"src":"45793:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10098,"nodeType":"Block","src":"46058:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":10090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46108:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":10091,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"46144:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10092,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10080,"src":"46148:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10093,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10082,"src":"46152:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10094,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10084,"src":"46156:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46084:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46088:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46084:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46084:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10087,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46068:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46068:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10097,"nodeType":"ExpressionStatement","src":"46068:92:20"}]},"id":10099,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45989:3:20","nodeType":"FunctionDefinition","parameters":{"id":10085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10078,"mutability":"mutable","name":"p0","nameLocation":"45998:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"45993:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10077,"name":"bool","nodeType":"ElementaryTypeName","src":"45993:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10080,"mutability":"mutable","name":"p1","nameLocation":"46010:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"46002:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10079,"name":"uint256","nodeType":"ElementaryTypeName","src":"46002:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10082,"mutability":"mutable","name":"p2","nameLocation":"46028:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"46014:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10081,"name":"string","nodeType":"ElementaryTypeName","src":"46014:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10084,"mutability":"mutable","name":"p3","nameLocation":"46040:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"46032:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10083,"name":"address","nodeType":"ElementaryTypeName","src":"46032:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45992:51:20"},"returnParameters":{"id":10086,"nodeType":"ParameterList","parameters":[],"src":"46058:0:20"},"scope":12860,"src":"45980:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10121,"nodeType":"Block","src":"46242:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":10113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46292:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":10114,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10101,"src":"46326:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10115,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"46330:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10116,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10105,"src":"46334:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10117,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"46338:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10111,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46268:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46272:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46268:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46268:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10110,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46252:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46252:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10120,"nodeType":"ExpressionStatement","src":"46252:90:20"}]},"id":10122,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46182:3:20","nodeType":"FunctionDefinition","parameters":{"id":10108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10101,"mutability":"mutable","name":"p0","nameLocation":"46191:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46186:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10100,"name":"bool","nodeType":"ElementaryTypeName","src":"46186:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10103,"mutability":"mutable","name":"p1","nameLocation":"46203:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46195:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10102,"name":"uint256","nodeType":"ElementaryTypeName","src":"46195:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10105,"mutability":"mutable","name":"p2","nameLocation":"46212:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46207:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10104,"name":"bool","nodeType":"ElementaryTypeName","src":"46207:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10107,"mutability":"mutable","name":"p3","nameLocation":"46224:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46216:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10106,"name":"uint256","nodeType":"ElementaryTypeName","src":"46216:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46185:42:20"},"returnParameters":{"id":10109,"nodeType":"ParameterList","parameters":[],"src":"46242:0:20"},"scope":12860,"src":"46173:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10144,"nodeType":"Block","src":"46430:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":10136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46480:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":10137,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10124,"src":"46513:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10138,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"46517:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10139,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10128,"src":"46521:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10140,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10130,"src":"46525:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10134,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46456:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46460:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46456:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46456:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10133,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46440:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46440:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10143,"nodeType":"ExpressionStatement","src":"46440:89:20"}]},"id":10145,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46364:3:20","nodeType":"FunctionDefinition","parameters":{"id":10131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10124,"mutability":"mutable","name":"p0","nameLocation":"46373:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46368:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10123,"name":"bool","nodeType":"ElementaryTypeName","src":"46368:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10126,"mutability":"mutable","name":"p1","nameLocation":"46385:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46377:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10125,"name":"uint256","nodeType":"ElementaryTypeName","src":"46377:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10128,"mutability":"mutable","name":"p2","nameLocation":"46394:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46389:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10127,"name":"bool","nodeType":"ElementaryTypeName","src":"46389:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10130,"mutability":"mutable","name":"p3","nameLocation":"46412:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46398:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10129,"name":"string","nodeType":"ElementaryTypeName","src":"46398:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46367:48:20"},"returnParameters":{"id":10132,"nodeType":"ParameterList","parameters":[],"src":"46430:0:20"},"scope":12860,"src":"46355:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10167,"nodeType":"Block","src":"46608:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":10159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46658:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":10160,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"46689:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10161,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"46693:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10162,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"46697:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10163,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10153,"src":"46701:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10157,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46634:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46638:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46634:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46634:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10156,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46618:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46618:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10166,"nodeType":"ExpressionStatement","src":"46618:87:20"}]},"id":10168,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46551:3:20","nodeType":"FunctionDefinition","parameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10147,"mutability":"mutable","name":"p0","nameLocation":"46560:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46555:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10146,"name":"bool","nodeType":"ElementaryTypeName","src":"46555:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10149,"mutability":"mutable","name":"p1","nameLocation":"46572:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46564:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10148,"name":"uint256","nodeType":"ElementaryTypeName","src":"46564:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10151,"mutability":"mutable","name":"p2","nameLocation":"46581:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46576:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10150,"name":"bool","nodeType":"ElementaryTypeName","src":"46576:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10153,"mutability":"mutable","name":"p3","nameLocation":"46590:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46585:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10152,"name":"bool","nodeType":"ElementaryTypeName","src":"46585:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46554:39:20"},"returnParameters":{"id":10155,"nodeType":"ParameterList","parameters":[],"src":"46608:0:20"},"scope":12860,"src":"46542:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10190,"nodeType":"Block","src":"46787:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":10182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46837:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":10183,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"46871:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10184,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10172,"src":"46875:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10185,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10174,"src":"46879:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10186,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10176,"src":"46883:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10180,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46813:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46817:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46813:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46813:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10179,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46797:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46797:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10189,"nodeType":"ExpressionStatement","src":"46797:90:20"}]},"id":10191,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46727:3:20","nodeType":"FunctionDefinition","parameters":{"id":10177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10170,"mutability":"mutable","name":"p0","nameLocation":"46736:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46731:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10169,"name":"bool","nodeType":"ElementaryTypeName","src":"46731:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10172,"mutability":"mutable","name":"p1","nameLocation":"46748:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46740:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10171,"name":"uint256","nodeType":"ElementaryTypeName","src":"46740:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10174,"mutability":"mutable","name":"p2","nameLocation":"46757:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46752:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10173,"name":"bool","nodeType":"ElementaryTypeName","src":"46752:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10176,"mutability":"mutable","name":"p3","nameLocation":"46769:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46761:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10175,"name":"address","nodeType":"ElementaryTypeName","src":"46761:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46730:42:20"},"returnParameters":{"id":10178,"nodeType":"ParameterList","parameters":[],"src":"46787:0:20"},"scope":12860,"src":"46718:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10213,"nodeType":"Block","src":"46972:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":10205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47022:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":10206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10193,"src":"47059:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10195,"src":"47063:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10208,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10197,"src":"47067:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10209,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"47071:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46998:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47002:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46998:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46998:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46982:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46982:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10212,"nodeType":"ExpressionStatement","src":"46982:93:20"}]},"id":10214,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46909:3:20","nodeType":"FunctionDefinition","parameters":{"id":10200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10193,"mutability":"mutable","name":"p0","nameLocation":"46918:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46913:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10192,"name":"bool","nodeType":"ElementaryTypeName","src":"46913:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10195,"mutability":"mutable","name":"p1","nameLocation":"46930:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46922:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10194,"name":"uint256","nodeType":"ElementaryTypeName","src":"46922:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10197,"mutability":"mutable","name":"p2","nameLocation":"46942:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46934:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10196,"name":"address","nodeType":"ElementaryTypeName","src":"46934:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10199,"mutability":"mutable","name":"p3","nameLocation":"46954:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46946:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10198,"name":"uint256","nodeType":"ElementaryTypeName","src":"46946:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46912:45:20"},"returnParameters":{"id":10201,"nodeType":"ParameterList","parameters":[],"src":"46972:0:20"},"scope":12860,"src":"46900:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10236,"nodeType":"Block","src":"47166:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":10228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47216:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":10229,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10216,"src":"47252:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10230,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10218,"src":"47256:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10231,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10220,"src":"47260:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10232,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10222,"src":"47264:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10226,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47192:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47196:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47192:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47192:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10225,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47176:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47176:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10235,"nodeType":"ExpressionStatement","src":"47176:92:20"}]},"id":10237,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47097:3:20","nodeType":"FunctionDefinition","parameters":{"id":10223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10216,"mutability":"mutable","name":"p0","nameLocation":"47106:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47101:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10215,"name":"bool","nodeType":"ElementaryTypeName","src":"47101:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10218,"mutability":"mutable","name":"p1","nameLocation":"47118:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47110:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10217,"name":"uint256","nodeType":"ElementaryTypeName","src":"47110:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10220,"mutability":"mutable","name":"p2","nameLocation":"47130:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47122:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10219,"name":"address","nodeType":"ElementaryTypeName","src":"47122:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10222,"mutability":"mutable","name":"p3","nameLocation":"47148:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47134:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10221,"name":"string","nodeType":"ElementaryTypeName","src":"47134:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47100:51:20"},"returnParameters":{"id":10224,"nodeType":"ParameterList","parameters":[],"src":"47166:0:20"},"scope":12860,"src":"47088:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10259,"nodeType":"Block","src":"47350:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":10251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47400:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":10252,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10239,"src":"47434:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10253,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"47438:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10254,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10243,"src":"47442:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10255,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10245,"src":"47446:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10249,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47376:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47380:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47376:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47376:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10248,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47360:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47360:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10258,"nodeType":"ExpressionStatement","src":"47360:90:20"}]},"id":10260,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47290:3:20","nodeType":"FunctionDefinition","parameters":{"id":10246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10239,"mutability":"mutable","name":"p0","nameLocation":"47299:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47294:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10238,"name":"bool","nodeType":"ElementaryTypeName","src":"47294:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10241,"mutability":"mutable","name":"p1","nameLocation":"47311:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47303:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10240,"name":"uint256","nodeType":"ElementaryTypeName","src":"47303:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10243,"mutability":"mutable","name":"p2","nameLocation":"47323:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47315:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10242,"name":"address","nodeType":"ElementaryTypeName","src":"47315:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10245,"mutability":"mutable","name":"p3","nameLocation":"47332:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47327:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10244,"name":"bool","nodeType":"ElementaryTypeName","src":"47327:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47293:42:20"},"returnParameters":{"id":10247,"nodeType":"ParameterList","parameters":[],"src":"47350:0:20"},"scope":12860,"src":"47281:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10282,"nodeType":"Block","src":"47535:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":10274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47585:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":10275,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"47622:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10276,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"47626:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10277,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"47630:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10278,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10268,"src":"47634:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10272,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47561:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47565:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47561:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47561:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10271,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47545:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47545:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10281,"nodeType":"ExpressionStatement","src":"47545:93:20"}]},"id":10283,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47472:3:20","nodeType":"FunctionDefinition","parameters":{"id":10269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"p0","nameLocation":"47481:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47476:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10261,"name":"bool","nodeType":"ElementaryTypeName","src":"47476:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10264,"mutability":"mutable","name":"p1","nameLocation":"47493:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47485:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10263,"name":"uint256","nodeType":"ElementaryTypeName","src":"47485:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10266,"mutability":"mutable","name":"p2","nameLocation":"47505:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47497:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10265,"name":"address","nodeType":"ElementaryTypeName","src":"47497:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10268,"mutability":"mutable","name":"p3","nameLocation":"47517:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47509:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10267,"name":"address","nodeType":"ElementaryTypeName","src":"47509:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47475:45:20"},"returnParameters":{"id":10270,"nodeType":"ParameterList","parameters":[],"src":"47535:0:20"},"scope":12860,"src":"47463:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10305,"nodeType":"Block","src":"47729:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":10297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47779:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":10298,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10285,"src":"47815:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10299,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10287,"src":"47819:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10300,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"47823:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10301,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10291,"src":"47827:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47755:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47759:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47755:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47755:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10294,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47739:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47739:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10304,"nodeType":"ExpressionStatement","src":"47739:92:20"}]},"id":10306,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47660:3:20","nodeType":"FunctionDefinition","parameters":{"id":10292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10285,"mutability":"mutable","name":"p0","nameLocation":"47669:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47664:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10284,"name":"bool","nodeType":"ElementaryTypeName","src":"47664:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10287,"mutability":"mutable","name":"p1","nameLocation":"47687:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47673:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10286,"name":"string","nodeType":"ElementaryTypeName","src":"47673:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10289,"mutability":"mutable","name":"p2","nameLocation":"47699:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47691:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10288,"name":"uint256","nodeType":"ElementaryTypeName","src":"47691:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10291,"mutability":"mutable","name":"p3","nameLocation":"47711:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47703:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10290,"name":"uint256","nodeType":"ElementaryTypeName","src":"47703:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47663:51:20"},"returnParameters":{"id":10293,"nodeType":"ParameterList","parameters":[],"src":"47729:0:20"},"scope":12860,"src":"47651:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10328,"nodeType":"Block","src":"47928:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":10320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47978:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":10321,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10308,"src":"48013:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10322,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10310,"src":"48017:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10323,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10312,"src":"48021:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10324,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10314,"src":"48025:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47954:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47958:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47954:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47954:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47938:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47938:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10327,"nodeType":"ExpressionStatement","src":"47938:91:20"}]},"id":10329,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47853:3:20","nodeType":"FunctionDefinition","parameters":{"id":10315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10308,"mutability":"mutable","name":"p0","nameLocation":"47862:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47857:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10307,"name":"bool","nodeType":"ElementaryTypeName","src":"47857:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10310,"mutability":"mutable","name":"p1","nameLocation":"47880:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47866:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10309,"name":"string","nodeType":"ElementaryTypeName","src":"47866:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10312,"mutability":"mutable","name":"p2","nameLocation":"47892:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47884:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10311,"name":"uint256","nodeType":"ElementaryTypeName","src":"47884:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10314,"mutability":"mutable","name":"p3","nameLocation":"47910:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47896:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10313,"name":"string","nodeType":"ElementaryTypeName","src":"47896:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47856:57:20"},"returnParameters":{"id":10316,"nodeType":"ParameterList","parameters":[],"src":"47928:0:20"},"scope":12860,"src":"47844:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10351,"nodeType":"Block","src":"48117:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":10343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48167:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":10344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10331,"src":"48200:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10345,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10333,"src":"48204:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10346,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"48208:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10347,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"48212:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48143:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48147:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48143:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48143:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48127:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48127:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10350,"nodeType":"ExpressionStatement","src":"48127:89:20"}]},"id":10352,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48051:3:20","nodeType":"FunctionDefinition","parameters":{"id":10338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10331,"mutability":"mutable","name":"p0","nameLocation":"48060:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48055:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10330,"name":"bool","nodeType":"ElementaryTypeName","src":"48055:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10333,"mutability":"mutable","name":"p1","nameLocation":"48078:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48064:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10332,"name":"string","nodeType":"ElementaryTypeName","src":"48064:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10335,"mutability":"mutable","name":"p2","nameLocation":"48090:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48082:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10334,"name":"uint256","nodeType":"ElementaryTypeName","src":"48082:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10337,"mutability":"mutable","name":"p3","nameLocation":"48099:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48094:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10336,"name":"bool","nodeType":"ElementaryTypeName","src":"48094:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48054:48:20"},"returnParameters":{"id":10339,"nodeType":"ParameterList","parameters":[],"src":"48117:0:20"},"scope":12860,"src":"48042:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10374,"nodeType":"Block","src":"48307:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":10366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48357:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":10367,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"48393:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10368,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10356,"src":"48397:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10369,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10358,"src":"48401:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10370,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10360,"src":"48405:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48333:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48337:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48333:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48333:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10363,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48317:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48317:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10373,"nodeType":"ExpressionStatement","src":"48317:92:20"}]},"id":10375,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48238:3:20","nodeType":"FunctionDefinition","parameters":{"id":10361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10354,"mutability":"mutable","name":"p0","nameLocation":"48247:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10353,"name":"bool","nodeType":"ElementaryTypeName","src":"48242:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10356,"mutability":"mutable","name":"p1","nameLocation":"48265:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48251:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10355,"name":"string","nodeType":"ElementaryTypeName","src":"48251:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10358,"mutability":"mutable","name":"p2","nameLocation":"48277:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48269:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10357,"name":"uint256","nodeType":"ElementaryTypeName","src":"48269:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10360,"mutability":"mutable","name":"p3","nameLocation":"48289:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48281:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10359,"name":"address","nodeType":"ElementaryTypeName","src":"48281:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48241:51:20"},"returnParameters":{"id":10362,"nodeType":"ParameterList","parameters":[],"src":"48307:0:20"},"scope":12860,"src":"48229:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10397,"nodeType":"Block","src":"48506:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":10389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48556:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":10390,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"48591:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10391,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10379,"src":"48595:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10392,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"48599:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10393,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10383,"src":"48603:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10387,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48532:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48536:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48532:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48532:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10386,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48516:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48516:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10396,"nodeType":"ExpressionStatement","src":"48516:91:20"}]},"id":10398,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48431:3:20","nodeType":"FunctionDefinition","parameters":{"id":10384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"p0","nameLocation":"48440:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48435:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10376,"name":"bool","nodeType":"ElementaryTypeName","src":"48435:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10379,"mutability":"mutable","name":"p1","nameLocation":"48458:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48444:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10378,"name":"string","nodeType":"ElementaryTypeName","src":"48444:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10381,"mutability":"mutable","name":"p2","nameLocation":"48476:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48462:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10380,"name":"string","nodeType":"ElementaryTypeName","src":"48462:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10383,"mutability":"mutable","name":"p3","nameLocation":"48488:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48480:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10382,"name":"uint256","nodeType":"ElementaryTypeName","src":"48480:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48434:57:20"},"returnParameters":{"id":10385,"nodeType":"ParameterList","parameters":[],"src":"48506:0:20"},"scope":12860,"src":"48422:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10420,"nodeType":"Block","src":"48710:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":10412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48760:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":10413,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10400,"src":"48794:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10414,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10402,"src":"48798:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10415,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10404,"src":"48802:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10416,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10406,"src":"48806:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10410,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48736:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48740:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48736:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48736:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10409,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48720:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48720:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10419,"nodeType":"ExpressionStatement","src":"48720:90:20"}]},"id":10421,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48629:3:20","nodeType":"FunctionDefinition","parameters":{"id":10407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10400,"mutability":"mutable","name":"p0","nameLocation":"48638:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48633:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10399,"name":"bool","nodeType":"ElementaryTypeName","src":"48633:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10402,"mutability":"mutable","name":"p1","nameLocation":"48656:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48642:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10401,"name":"string","nodeType":"ElementaryTypeName","src":"48642:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10404,"mutability":"mutable","name":"p2","nameLocation":"48674:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48660:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10403,"name":"string","nodeType":"ElementaryTypeName","src":"48660:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10406,"mutability":"mutable","name":"p3","nameLocation":"48692:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48678:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10405,"name":"string","nodeType":"ElementaryTypeName","src":"48678:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48632:63:20"},"returnParameters":{"id":10408,"nodeType":"ParameterList","parameters":[],"src":"48710:0:20"},"scope":12860,"src":"48620:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10443,"nodeType":"Block","src":"48904:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":10435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48954:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":10436,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10423,"src":"48986:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10437,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10425,"src":"48990:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10438,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"48994:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10439,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10429,"src":"48998:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10433,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48930:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48934:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48930:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48930:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10432,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48914:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48914:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10442,"nodeType":"ExpressionStatement","src":"48914:88:20"}]},"id":10444,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48832:3:20","nodeType":"FunctionDefinition","parameters":{"id":10430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10423,"mutability":"mutable","name":"p0","nameLocation":"48841:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48836:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10422,"name":"bool","nodeType":"ElementaryTypeName","src":"48836:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10425,"mutability":"mutable","name":"p1","nameLocation":"48859:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48845:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10424,"name":"string","nodeType":"ElementaryTypeName","src":"48845:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10427,"mutability":"mutable","name":"p2","nameLocation":"48877:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48863:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10426,"name":"string","nodeType":"ElementaryTypeName","src":"48863:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10429,"mutability":"mutable","name":"p3","nameLocation":"48886:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48881:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10428,"name":"bool","nodeType":"ElementaryTypeName","src":"48881:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48835:54:20"},"returnParameters":{"id":10431,"nodeType":"ParameterList","parameters":[],"src":"48904:0:20"},"scope":12860,"src":"48823:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10466,"nodeType":"Block","src":"49099:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":10458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49149:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":10459,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"49184:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10460,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10448,"src":"49188:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10461,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"49192:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10462,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10452,"src":"49196:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49125:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49129:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49125:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10455,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49109:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49109:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10465,"nodeType":"ExpressionStatement","src":"49109:91:20"}]},"id":10467,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49024:3:20","nodeType":"FunctionDefinition","parameters":{"id":10453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10446,"mutability":"mutable","name":"p0","nameLocation":"49033:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49028:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10445,"name":"bool","nodeType":"ElementaryTypeName","src":"49028:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10448,"mutability":"mutable","name":"p1","nameLocation":"49051:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49037:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10447,"name":"string","nodeType":"ElementaryTypeName","src":"49037:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10450,"mutability":"mutable","name":"p2","nameLocation":"49069:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49055:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10449,"name":"string","nodeType":"ElementaryTypeName","src":"49055:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10452,"mutability":"mutable","name":"p3","nameLocation":"49081:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49073:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10451,"name":"address","nodeType":"ElementaryTypeName","src":"49073:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49027:57:20"},"returnParameters":{"id":10454,"nodeType":"ParameterList","parameters":[],"src":"49099:0:20"},"scope":12860,"src":"49015:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10489,"nodeType":"Block","src":"49288:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":10481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49338:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":10482,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"49371:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10483,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"49375:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10484,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"49379:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10485,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10475,"src":"49383:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49314:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49318:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49314:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49314:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10478,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49298:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49298:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10488,"nodeType":"ExpressionStatement","src":"49298:89:20"}]},"id":10490,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49222:3:20","nodeType":"FunctionDefinition","parameters":{"id":10476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10469,"mutability":"mutable","name":"p0","nameLocation":"49231:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49226:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10468,"name":"bool","nodeType":"ElementaryTypeName","src":"49226:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10471,"mutability":"mutable","name":"p1","nameLocation":"49249:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49235:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10470,"name":"string","nodeType":"ElementaryTypeName","src":"49235:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10473,"mutability":"mutable","name":"p2","nameLocation":"49258:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49253:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10472,"name":"bool","nodeType":"ElementaryTypeName","src":"49253:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10475,"mutability":"mutable","name":"p3","nameLocation":"49270:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49262:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10474,"name":"uint256","nodeType":"ElementaryTypeName","src":"49262:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49225:48:20"},"returnParameters":{"id":10477,"nodeType":"ParameterList","parameters":[],"src":"49288:0:20"},"scope":12860,"src":"49213:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10512,"nodeType":"Block","src":"49481:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":10504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49531:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":10505,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"49563:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10506,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"49567:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10507,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"49571:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10508,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10498,"src":"49575:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10502,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49507:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49511:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49507:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49507:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10501,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49491:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49491:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10511,"nodeType":"ExpressionStatement","src":"49491:88:20"}]},"id":10513,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49409:3:20","nodeType":"FunctionDefinition","parameters":{"id":10499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10492,"mutability":"mutable","name":"p0","nameLocation":"49418:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49413:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10491,"name":"bool","nodeType":"ElementaryTypeName","src":"49413:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10494,"mutability":"mutable","name":"p1","nameLocation":"49436:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49422:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10493,"name":"string","nodeType":"ElementaryTypeName","src":"49422:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10496,"mutability":"mutable","name":"p2","nameLocation":"49445:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49440:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10495,"name":"bool","nodeType":"ElementaryTypeName","src":"49440:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10498,"mutability":"mutable","name":"p3","nameLocation":"49463:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49449:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10497,"name":"string","nodeType":"ElementaryTypeName","src":"49449:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49412:54:20"},"returnParameters":{"id":10500,"nodeType":"ParameterList","parameters":[],"src":"49481:0:20"},"scope":12860,"src":"49400:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10535,"nodeType":"Block","src":"49664:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":10527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49714:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":10528,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10515,"src":"49744:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10529,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10517,"src":"49748:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10530,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10519,"src":"49752:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10531,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10521,"src":"49756:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49690:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49694:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49690:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49690:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10524,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49674:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49674:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10534,"nodeType":"ExpressionStatement","src":"49674:86:20"}]},"id":10536,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49601:3:20","nodeType":"FunctionDefinition","parameters":{"id":10522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10515,"mutability":"mutable","name":"p0","nameLocation":"49610:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49605:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10514,"name":"bool","nodeType":"ElementaryTypeName","src":"49605:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10517,"mutability":"mutable","name":"p1","nameLocation":"49628:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49614:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10516,"name":"string","nodeType":"ElementaryTypeName","src":"49614:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10519,"mutability":"mutable","name":"p2","nameLocation":"49637:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49632:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10518,"name":"bool","nodeType":"ElementaryTypeName","src":"49632:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10521,"mutability":"mutable","name":"p3","nameLocation":"49646:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49641:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10520,"name":"bool","nodeType":"ElementaryTypeName","src":"49641:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49604:45:20"},"returnParameters":{"id":10523,"nodeType":"ParameterList","parameters":[],"src":"49664:0:20"},"scope":12860,"src":"49592:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10558,"nodeType":"Block","src":"49848:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":10550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49898:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":10551,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10538,"src":"49931:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10552,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10540,"src":"49935:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10553,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10542,"src":"49939:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10554,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10544,"src":"49943:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10548,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49874:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49878:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49874:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49874:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10547,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49858:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49858:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10557,"nodeType":"ExpressionStatement","src":"49858:89:20"}]},"id":10559,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49782:3:20","nodeType":"FunctionDefinition","parameters":{"id":10545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10538,"mutability":"mutable","name":"p0","nameLocation":"49791:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49786:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10537,"name":"bool","nodeType":"ElementaryTypeName","src":"49786:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10540,"mutability":"mutable","name":"p1","nameLocation":"49809:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49795:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10539,"name":"string","nodeType":"ElementaryTypeName","src":"49795:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10542,"mutability":"mutable","name":"p2","nameLocation":"49818:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49813:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10541,"name":"bool","nodeType":"ElementaryTypeName","src":"49813:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10544,"mutability":"mutable","name":"p3","nameLocation":"49830:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49822:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10543,"name":"address","nodeType":"ElementaryTypeName","src":"49822:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49785:48:20"},"returnParameters":{"id":10546,"nodeType":"ParameterList","parameters":[],"src":"49848:0:20"},"scope":12860,"src":"49773:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10581,"nodeType":"Block","src":"50038:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":10573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50088:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":10574,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"50124:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10575,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10563,"src":"50128:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10576,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10565,"src":"50132:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10577,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10567,"src":"50136:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10571,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50064:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50068:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50064:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50064:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10570,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50048:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50048:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10580,"nodeType":"ExpressionStatement","src":"50048:92:20"}]},"id":10582,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49969:3:20","nodeType":"FunctionDefinition","parameters":{"id":10568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10561,"mutability":"mutable","name":"p0","nameLocation":"49978:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"49973:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10560,"name":"bool","nodeType":"ElementaryTypeName","src":"49973:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10563,"mutability":"mutable","name":"p1","nameLocation":"49996:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"49982:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10562,"name":"string","nodeType":"ElementaryTypeName","src":"49982:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10565,"mutability":"mutable","name":"p2","nameLocation":"50008:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"50000:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10564,"name":"address","nodeType":"ElementaryTypeName","src":"50000:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10567,"mutability":"mutable","name":"p3","nameLocation":"50020:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"50012:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10566,"name":"uint256","nodeType":"ElementaryTypeName","src":"50012:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49972:51:20"},"returnParameters":{"id":10569,"nodeType":"ParameterList","parameters":[],"src":"50038:0:20"},"scope":12860,"src":"49960:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10604,"nodeType":"Block","src":"50237:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":10596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50287:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":10597,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"50322:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10598,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10586,"src":"50326:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10599,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10588,"src":"50330:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10600,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"50334:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10594,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50263:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50267:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50263:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50263:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10593,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50247:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50247:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10603,"nodeType":"ExpressionStatement","src":"50247:91:20"}]},"id":10605,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50162:3:20","nodeType":"FunctionDefinition","parameters":{"id":10591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10584,"mutability":"mutable","name":"p0","nameLocation":"50171:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50166:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10583,"name":"bool","nodeType":"ElementaryTypeName","src":"50166:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10586,"mutability":"mutable","name":"p1","nameLocation":"50189:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50175:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10585,"name":"string","nodeType":"ElementaryTypeName","src":"50175:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10588,"mutability":"mutable","name":"p2","nameLocation":"50201:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50193:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10587,"name":"address","nodeType":"ElementaryTypeName","src":"50193:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10590,"mutability":"mutable","name":"p3","nameLocation":"50219:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50205:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10589,"name":"string","nodeType":"ElementaryTypeName","src":"50205:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50165:57:20"},"returnParameters":{"id":10592,"nodeType":"ParameterList","parameters":[],"src":"50237:0:20"},"scope":12860,"src":"50153:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10627,"nodeType":"Block","src":"50426:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":10619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50476:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":10620,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"50509:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10621,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"50513:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10622,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10611,"src":"50517:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10623,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10613,"src":"50521:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50452:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50456:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50452:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50452:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10616,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50436:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50436:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10626,"nodeType":"ExpressionStatement","src":"50436:89:20"}]},"id":10628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50360:3:20","nodeType":"FunctionDefinition","parameters":{"id":10614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10607,"mutability":"mutable","name":"p0","nameLocation":"50369:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50364:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10606,"name":"bool","nodeType":"ElementaryTypeName","src":"50364:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10609,"mutability":"mutable","name":"p1","nameLocation":"50387:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50373:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10608,"name":"string","nodeType":"ElementaryTypeName","src":"50373:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10611,"mutability":"mutable","name":"p2","nameLocation":"50399:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50391:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10610,"name":"address","nodeType":"ElementaryTypeName","src":"50391:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10613,"mutability":"mutable","name":"p3","nameLocation":"50408:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50403:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10612,"name":"bool","nodeType":"ElementaryTypeName","src":"50403:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50363:48:20"},"returnParameters":{"id":10615,"nodeType":"ParameterList","parameters":[],"src":"50426:0:20"},"scope":12860,"src":"50351:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10650,"nodeType":"Block","src":"50616:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":10642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50666:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":10643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"50702:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10644,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"50706:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10645,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"50710:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10646,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"50714:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50642:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50646:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50642:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50642:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50626:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50626:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10649,"nodeType":"ExpressionStatement","src":"50626:92:20"}]},"id":10651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50547:3:20","nodeType":"FunctionDefinition","parameters":{"id":10637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10630,"mutability":"mutable","name":"p0","nameLocation":"50556:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50551:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10629,"name":"bool","nodeType":"ElementaryTypeName","src":"50551:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10632,"mutability":"mutable","name":"p1","nameLocation":"50574:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50560:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10631,"name":"string","nodeType":"ElementaryTypeName","src":"50560:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10634,"mutability":"mutable","name":"p2","nameLocation":"50586:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50578:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10633,"name":"address","nodeType":"ElementaryTypeName","src":"50578:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10636,"mutability":"mutable","name":"p3","nameLocation":"50598:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50590:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10635,"name":"address","nodeType":"ElementaryTypeName","src":"50590:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50550:51:20"},"returnParameters":{"id":10638,"nodeType":"ParameterList","parameters":[],"src":"50616:0:20"},"scope":12860,"src":"50538:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10673,"nodeType":"Block","src":"50800:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":10665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50850:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":10666,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10653,"src":"50884:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10667,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10655,"src":"50888:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10668,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10657,"src":"50892:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10669,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10659,"src":"50896:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50826:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50830:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50826:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50826:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10662,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50810:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50810:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10672,"nodeType":"ExpressionStatement","src":"50810:90:20"}]},"id":10674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50740:3:20","nodeType":"FunctionDefinition","parameters":{"id":10660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10653,"mutability":"mutable","name":"p0","nameLocation":"50749:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10652,"name":"bool","nodeType":"ElementaryTypeName","src":"50744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10655,"mutability":"mutable","name":"p1","nameLocation":"50758:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50753:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10654,"name":"bool","nodeType":"ElementaryTypeName","src":"50753:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10657,"mutability":"mutable","name":"p2","nameLocation":"50770:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50762:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10656,"name":"uint256","nodeType":"ElementaryTypeName","src":"50762:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10659,"mutability":"mutable","name":"p3","nameLocation":"50782:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10658,"name":"uint256","nodeType":"ElementaryTypeName","src":"50774:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50743:42:20"},"returnParameters":{"id":10661,"nodeType":"ParameterList","parameters":[],"src":"50800:0:20"},"scope":12860,"src":"50731:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10696,"nodeType":"Block","src":"50988:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":10688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51038:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":10689,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10676,"src":"51071:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10690,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"51075:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10691,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"51079:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10692,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"51083:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10686,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51014:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51018:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51014:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51014:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10685,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50998:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50998:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10695,"nodeType":"ExpressionStatement","src":"50998:89:20"}]},"id":10697,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50922:3:20","nodeType":"FunctionDefinition","parameters":{"id":10683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10676,"mutability":"mutable","name":"p0","nameLocation":"50931:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50926:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10675,"name":"bool","nodeType":"ElementaryTypeName","src":"50926:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10678,"mutability":"mutable","name":"p1","nameLocation":"50940:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50935:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10677,"name":"bool","nodeType":"ElementaryTypeName","src":"50935:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10680,"mutability":"mutable","name":"p2","nameLocation":"50952:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50944:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10679,"name":"uint256","nodeType":"ElementaryTypeName","src":"50944:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10682,"mutability":"mutable","name":"p3","nameLocation":"50970:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50956:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10681,"name":"string","nodeType":"ElementaryTypeName","src":"50956:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50925:48:20"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[],"src":"50988:0:20"},"scope":12860,"src":"50913:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10719,"nodeType":"Block","src":"51166:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":10711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51216:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":10712,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10699,"src":"51247:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10713,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10701,"src":"51251:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10714,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10703,"src":"51255:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10715,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10705,"src":"51259:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51192:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51196:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51192:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51192:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10708,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51176:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51176:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10718,"nodeType":"ExpressionStatement","src":"51176:87:20"}]},"id":10720,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51109:3:20","nodeType":"FunctionDefinition","parameters":{"id":10706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10699,"mutability":"mutable","name":"p0","nameLocation":"51118:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51113:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10698,"name":"bool","nodeType":"ElementaryTypeName","src":"51113:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10701,"mutability":"mutable","name":"p1","nameLocation":"51127:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51122:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10700,"name":"bool","nodeType":"ElementaryTypeName","src":"51122:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10703,"mutability":"mutable","name":"p2","nameLocation":"51139:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51131:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10702,"name":"uint256","nodeType":"ElementaryTypeName","src":"51131:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10705,"mutability":"mutable","name":"p3","nameLocation":"51148:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51143:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10704,"name":"bool","nodeType":"ElementaryTypeName","src":"51143:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51112:39:20"},"returnParameters":{"id":10707,"nodeType":"ParameterList","parameters":[],"src":"51166:0:20"},"scope":12860,"src":"51100:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10742,"nodeType":"Block","src":"51345:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":10734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51395:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":10735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10722,"src":"51429:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10736,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10724,"src":"51433:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10737,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10726,"src":"51437:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10738,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10728,"src":"51441:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51371:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51375:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51371:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51371:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51355:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51355:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10741,"nodeType":"ExpressionStatement","src":"51355:90:20"}]},"id":10743,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51285:3:20","nodeType":"FunctionDefinition","parameters":{"id":10729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10722,"mutability":"mutable","name":"p0","nameLocation":"51294:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51289:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10721,"name":"bool","nodeType":"ElementaryTypeName","src":"51289:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10724,"mutability":"mutable","name":"p1","nameLocation":"51303:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51298:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10723,"name":"bool","nodeType":"ElementaryTypeName","src":"51298:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10726,"mutability":"mutable","name":"p2","nameLocation":"51315:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51307:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10725,"name":"uint256","nodeType":"ElementaryTypeName","src":"51307:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10728,"mutability":"mutable","name":"p3","nameLocation":"51327:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51319:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10727,"name":"address","nodeType":"ElementaryTypeName","src":"51319:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51288:42:20"},"returnParameters":{"id":10730,"nodeType":"ParameterList","parameters":[],"src":"51345:0:20"},"scope":12860,"src":"51276:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10765,"nodeType":"Block","src":"51533:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":10757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51583:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":10758,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"51616:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10759,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10747,"src":"51620:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10760,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10749,"src":"51624:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10761,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"51628:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51559:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51563:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51559:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51559:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10754,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51543:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51543:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10764,"nodeType":"ExpressionStatement","src":"51543:89:20"}]},"id":10766,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51467:3:20","nodeType":"FunctionDefinition","parameters":{"id":10752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10745,"mutability":"mutable","name":"p0","nameLocation":"51476:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51471:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10744,"name":"bool","nodeType":"ElementaryTypeName","src":"51471:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10747,"mutability":"mutable","name":"p1","nameLocation":"51485:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51480:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10746,"name":"bool","nodeType":"ElementaryTypeName","src":"51480:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10749,"mutability":"mutable","name":"p2","nameLocation":"51503:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51489:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10748,"name":"string","nodeType":"ElementaryTypeName","src":"51489:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10751,"mutability":"mutable","name":"p3","nameLocation":"51515:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10750,"name":"uint256","nodeType":"ElementaryTypeName","src":"51507:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51470:48:20"},"returnParameters":{"id":10753,"nodeType":"ParameterList","parameters":[],"src":"51533:0:20"},"scope":12860,"src":"51458:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10788,"nodeType":"Block","src":"51726:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":10780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51776:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":10781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10768,"src":"51808:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10770,"src":"51812:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10772,"src":"51816:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10784,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10774,"src":"51820:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51752:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51756:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51752:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51752:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51736:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51736:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10787,"nodeType":"ExpressionStatement","src":"51736:88:20"}]},"id":10789,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51654:3:20","nodeType":"FunctionDefinition","parameters":{"id":10775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10768,"mutability":"mutable","name":"p0","nameLocation":"51663:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51658:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10767,"name":"bool","nodeType":"ElementaryTypeName","src":"51658:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10770,"mutability":"mutable","name":"p1","nameLocation":"51672:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51667:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10769,"name":"bool","nodeType":"ElementaryTypeName","src":"51667:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10772,"mutability":"mutable","name":"p2","nameLocation":"51690:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51676:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10771,"name":"string","nodeType":"ElementaryTypeName","src":"51676:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10774,"mutability":"mutable","name":"p3","nameLocation":"51708:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51694:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10773,"name":"string","nodeType":"ElementaryTypeName","src":"51694:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51657:54:20"},"returnParameters":{"id":10776,"nodeType":"ParameterList","parameters":[],"src":"51726:0:20"},"scope":12860,"src":"51645:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10811,"nodeType":"Block","src":"51909:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":10803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51959:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":10804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"51989:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10793,"src":"51993:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10795,"src":"51997:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10807,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"52001:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51935:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51939:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51935:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51935:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51919:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51919:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10810,"nodeType":"ExpressionStatement","src":"51919:86:20"}]},"id":10812,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51846:3:20","nodeType":"FunctionDefinition","parameters":{"id":10798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10791,"mutability":"mutable","name":"p0","nameLocation":"51855:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51850:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10790,"name":"bool","nodeType":"ElementaryTypeName","src":"51850:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10793,"mutability":"mutable","name":"p1","nameLocation":"51864:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51859:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10792,"name":"bool","nodeType":"ElementaryTypeName","src":"51859:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10795,"mutability":"mutable","name":"p2","nameLocation":"51882:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51868:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10794,"name":"string","nodeType":"ElementaryTypeName","src":"51868:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10797,"mutability":"mutable","name":"p3","nameLocation":"51891:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51886:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10796,"name":"bool","nodeType":"ElementaryTypeName","src":"51886:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51849:45:20"},"returnParameters":{"id":10799,"nodeType":"ParameterList","parameters":[],"src":"51909:0:20"},"scope":12860,"src":"51837:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10834,"nodeType":"Block","src":"52093:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":10826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52143:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":10827,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10814,"src":"52176:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10828,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10816,"src":"52180:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10829,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10818,"src":"52184:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10830,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10820,"src":"52188:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52119:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52123:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52119:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52119:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52103:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52103:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10833,"nodeType":"ExpressionStatement","src":"52103:89:20"}]},"id":10835,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52027:3:20","nodeType":"FunctionDefinition","parameters":{"id":10821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10814,"mutability":"mutable","name":"p0","nameLocation":"52036:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52031:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10813,"name":"bool","nodeType":"ElementaryTypeName","src":"52031:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10816,"mutability":"mutable","name":"p1","nameLocation":"52045:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52040:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10815,"name":"bool","nodeType":"ElementaryTypeName","src":"52040:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10818,"mutability":"mutable","name":"p2","nameLocation":"52063:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52049:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10817,"name":"string","nodeType":"ElementaryTypeName","src":"52049:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10820,"mutability":"mutable","name":"p3","nameLocation":"52075:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52067:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10819,"name":"address","nodeType":"ElementaryTypeName","src":"52067:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52030:48:20"},"returnParameters":{"id":10822,"nodeType":"ParameterList","parameters":[],"src":"52093:0:20"},"scope":12860,"src":"52018:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10857,"nodeType":"Block","src":"52271:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":10849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52321:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":10850,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10837,"src":"52352:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10851,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10839,"src":"52356:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10852,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10841,"src":"52360:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10853,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"52364:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52297:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52301:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52297:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52297:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10846,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52281:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52281:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10856,"nodeType":"ExpressionStatement","src":"52281:87:20"}]},"id":10858,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52214:3:20","nodeType":"FunctionDefinition","parameters":{"id":10844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10837,"mutability":"mutable","name":"p0","nameLocation":"52223:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52218:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10836,"name":"bool","nodeType":"ElementaryTypeName","src":"52218:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10839,"mutability":"mutable","name":"p1","nameLocation":"52232:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52227:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10838,"name":"bool","nodeType":"ElementaryTypeName","src":"52227:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10841,"mutability":"mutable","name":"p2","nameLocation":"52241:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52236:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10840,"name":"bool","nodeType":"ElementaryTypeName","src":"52236:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10843,"mutability":"mutable","name":"p3","nameLocation":"52253:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52245:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10842,"name":"uint256","nodeType":"ElementaryTypeName","src":"52245:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52217:39:20"},"returnParameters":{"id":10845,"nodeType":"ParameterList","parameters":[],"src":"52271:0:20"},"scope":12860,"src":"52205:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10880,"nodeType":"Block","src":"52453:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":10872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52503:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":10873,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10860,"src":"52533:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10874,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10862,"src":"52537:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10875,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10864,"src":"52541:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10876,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10866,"src":"52545:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10870,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52479:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52483:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52479:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52479:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10869,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52463:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52463:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10879,"nodeType":"ExpressionStatement","src":"52463:86:20"}]},"id":10881,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52390:3:20","nodeType":"FunctionDefinition","parameters":{"id":10867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"p0","nameLocation":"52399:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52394:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10859,"name":"bool","nodeType":"ElementaryTypeName","src":"52394:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10862,"mutability":"mutable","name":"p1","nameLocation":"52408:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52403:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10861,"name":"bool","nodeType":"ElementaryTypeName","src":"52403:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10864,"mutability":"mutable","name":"p2","nameLocation":"52417:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52412:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10863,"name":"bool","nodeType":"ElementaryTypeName","src":"52412:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10866,"mutability":"mutable","name":"p3","nameLocation":"52435:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52421:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10865,"name":"string","nodeType":"ElementaryTypeName","src":"52421:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52393:45:20"},"returnParameters":{"id":10868,"nodeType":"ParameterList","parameters":[],"src":"52453:0:20"},"scope":12860,"src":"52381:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10903,"nodeType":"Block","src":"52625:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":10895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52675:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":10896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"52703:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10897,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10885,"src":"52707:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10898,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10887,"src":"52711:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10899,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10889,"src":"52715:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52651:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52655:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52651:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52651:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52635:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52635:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10902,"nodeType":"ExpressionStatement","src":"52635:84:20"}]},"id":10904,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52571:3:20","nodeType":"FunctionDefinition","parameters":{"id":10890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10883,"mutability":"mutable","name":"p0","nameLocation":"52580:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52575:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10882,"name":"bool","nodeType":"ElementaryTypeName","src":"52575:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10885,"mutability":"mutable","name":"p1","nameLocation":"52589:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52584:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10884,"name":"bool","nodeType":"ElementaryTypeName","src":"52584:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10887,"mutability":"mutable","name":"p2","nameLocation":"52598:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52593:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10886,"name":"bool","nodeType":"ElementaryTypeName","src":"52593:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10889,"mutability":"mutable","name":"p3","nameLocation":"52607:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52602:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10888,"name":"bool","nodeType":"ElementaryTypeName","src":"52602:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52574:36:20"},"returnParameters":{"id":10891,"nodeType":"ParameterList","parameters":[],"src":"52625:0:20"},"scope":12860,"src":"52562:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10926,"nodeType":"Block","src":"52798:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":10918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52848:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":10919,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10906,"src":"52879:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10920,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10908,"src":"52883:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10921,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"52887:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10922,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10912,"src":"52891:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52824:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52828:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52824:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52824:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10915,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52808:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52808:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10925,"nodeType":"ExpressionStatement","src":"52808:87:20"}]},"id":10927,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52741:3:20","nodeType":"FunctionDefinition","parameters":{"id":10913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10906,"mutability":"mutable","name":"p0","nameLocation":"52750:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52745:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10905,"name":"bool","nodeType":"ElementaryTypeName","src":"52745:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10908,"mutability":"mutable","name":"p1","nameLocation":"52759:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52754:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10907,"name":"bool","nodeType":"ElementaryTypeName","src":"52754:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10910,"mutability":"mutable","name":"p2","nameLocation":"52768:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52763:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10909,"name":"bool","nodeType":"ElementaryTypeName","src":"52763:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10912,"mutability":"mutable","name":"p3","nameLocation":"52780:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52772:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10911,"name":"address","nodeType":"ElementaryTypeName","src":"52772:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52744:39:20"},"returnParameters":{"id":10914,"nodeType":"ParameterList","parameters":[],"src":"52798:0:20"},"scope":12860,"src":"52732:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10949,"nodeType":"Block","src":"52977:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":10941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53027:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":10942,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"53061:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10943,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10931,"src":"53065:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10944,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10933,"src":"53069:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10945,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10935,"src":"53073:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53003:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53007:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53003:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53003:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10938,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52987:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52987:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10948,"nodeType":"ExpressionStatement","src":"52987:90:20"}]},"id":10950,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52917:3:20","nodeType":"FunctionDefinition","parameters":{"id":10936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10929,"mutability":"mutable","name":"p0","nameLocation":"52926:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52921:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10928,"name":"bool","nodeType":"ElementaryTypeName","src":"52921:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10931,"mutability":"mutable","name":"p1","nameLocation":"52935:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52930:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10930,"name":"bool","nodeType":"ElementaryTypeName","src":"52930:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10933,"mutability":"mutable","name":"p2","nameLocation":"52947:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52939:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10932,"name":"address","nodeType":"ElementaryTypeName","src":"52939:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10935,"mutability":"mutable","name":"p3","nameLocation":"52959:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52951:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10934,"name":"uint256","nodeType":"ElementaryTypeName","src":"52951:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52920:42:20"},"returnParameters":{"id":10937,"nodeType":"ParameterList","parameters":[],"src":"52977:0:20"},"scope":12860,"src":"52908:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10972,"nodeType":"Block","src":"53165:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":10964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53215:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":10965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10952,"src":"53248:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10966,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10954,"src":"53252:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10967,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10956,"src":"53256:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10968,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10958,"src":"53260:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53191:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53195:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53191:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53191:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53175:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53175:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10971,"nodeType":"ExpressionStatement","src":"53175:89:20"}]},"id":10973,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53099:3:20","nodeType":"FunctionDefinition","parameters":{"id":10959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10952,"mutability":"mutable","name":"p0","nameLocation":"53108:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53103:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10951,"name":"bool","nodeType":"ElementaryTypeName","src":"53103:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10954,"mutability":"mutable","name":"p1","nameLocation":"53117:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53112:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10953,"name":"bool","nodeType":"ElementaryTypeName","src":"53112:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10956,"mutability":"mutable","name":"p2","nameLocation":"53129:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53121:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10955,"name":"address","nodeType":"ElementaryTypeName","src":"53121:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10958,"mutability":"mutable","name":"p3","nameLocation":"53147:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53133:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10957,"name":"string","nodeType":"ElementaryTypeName","src":"53133:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53102:48:20"},"returnParameters":{"id":10960,"nodeType":"ParameterList","parameters":[],"src":"53165:0:20"},"scope":12860,"src":"53090:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10995,"nodeType":"Block","src":"53343:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":10987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53393:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":10988,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"53424:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10989,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"53428:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10990,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"53432:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10991,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"53436:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53369:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53373:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53369:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53369:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10984,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53353:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53353:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10994,"nodeType":"ExpressionStatement","src":"53353:87:20"}]},"id":10996,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53286:3:20","nodeType":"FunctionDefinition","parameters":{"id":10982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10975,"mutability":"mutable","name":"p0","nameLocation":"53295:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53290:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10974,"name":"bool","nodeType":"ElementaryTypeName","src":"53290:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10977,"mutability":"mutable","name":"p1","nameLocation":"53304:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53299:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10976,"name":"bool","nodeType":"ElementaryTypeName","src":"53299:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10979,"mutability":"mutable","name":"p2","nameLocation":"53316:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53308:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10978,"name":"address","nodeType":"ElementaryTypeName","src":"53308:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10981,"mutability":"mutable","name":"p3","nameLocation":"53325:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53320:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10980,"name":"bool","nodeType":"ElementaryTypeName","src":"53320:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53289:39:20"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[],"src":"53343:0:20"},"scope":12860,"src":"53277:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11018,"nodeType":"Block","src":"53522:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":11010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53572:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":11011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10998,"src":"53606:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11012,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11000,"src":"53610:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11013,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"53614:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11014,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11004,"src":"53618:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53548:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53552:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53548:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53548:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53532:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53532:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11017,"nodeType":"ExpressionStatement","src":"53532:90:20"}]},"id":11019,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53462:3:20","nodeType":"FunctionDefinition","parameters":{"id":11005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10998,"mutability":"mutable","name":"p0","nameLocation":"53471:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53466:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10997,"name":"bool","nodeType":"ElementaryTypeName","src":"53466:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11000,"mutability":"mutable","name":"p1","nameLocation":"53480:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53475:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10999,"name":"bool","nodeType":"ElementaryTypeName","src":"53475:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11002,"mutability":"mutable","name":"p2","nameLocation":"53492:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53484:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11001,"name":"address","nodeType":"ElementaryTypeName","src":"53484:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11004,"mutability":"mutable","name":"p3","nameLocation":"53504:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53496:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11003,"name":"address","nodeType":"ElementaryTypeName","src":"53496:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53465:42:20"},"returnParameters":{"id":11006,"nodeType":"ParameterList","parameters":[],"src":"53522:0:20"},"scope":12860,"src":"53453:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11041,"nodeType":"Block","src":"53707:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":11033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53757:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":11034,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"53794:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11035,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"53798:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11036,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"53802:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11037,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"53806:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53733:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53737:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53733:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53733:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11030,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53717:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53717:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11040,"nodeType":"ExpressionStatement","src":"53717:93:20"}]},"id":11042,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53644:3:20","nodeType":"FunctionDefinition","parameters":{"id":11028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11021,"mutability":"mutable","name":"p0","nameLocation":"53653:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53648:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11020,"name":"bool","nodeType":"ElementaryTypeName","src":"53648:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11023,"mutability":"mutable","name":"p1","nameLocation":"53665:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53657:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11022,"name":"address","nodeType":"ElementaryTypeName","src":"53657:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11025,"mutability":"mutable","name":"p2","nameLocation":"53677:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53669:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11024,"name":"uint256","nodeType":"ElementaryTypeName","src":"53669:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11027,"mutability":"mutable","name":"p3","nameLocation":"53689:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53681:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11026,"name":"uint256","nodeType":"ElementaryTypeName","src":"53681:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53647:45:20"},"returnParameters":{"id":11029,"nodeType":"ParameterList","parameters":[],"src":"53707:0:20"},"scope":12860,"src":"53635:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11064,"nodeType":"Block","src":"53901:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":11056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53951:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":11057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11044,"src":"53987:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11058,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"53991:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11059,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11048,"src":"53995:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11060,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11050,"src":"53999:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53927:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53931:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53927:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53927:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53911:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53911:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11063,"nodeType":"ExpressionStatement","src":"53911:92:20"}]},"id":11065,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53832:3:20","nodeType":"FunctionDefinition","parameters":{"id":11051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11044,"mutability":"mutable","name":"p0","nameLocation":"53841:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53836:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11043,"name":"bool","nodeType":"ElementaryTypeName","src":"53836:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11046,"mutability":"mutable","name":"p1","nameLocation":"53853:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53845:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11045,"name":"address","nodeType":"ElementaryTypeName","src":"53845:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11048,"mutability":"mutable","name":"p2","nameLocation":"53865:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53857:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11047,"name":"uint256","nodeType":"ElementaryTypeName","src":"53857:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11050,"mutability":"mutable","name":"p3","nameLocation":"53883:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53869:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11049,"name":"string","nodeType":"ElementaryTypeName","src":"53869:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53835:51:20"},"returnParameters":{"id":11052,"nodeType":"ParameterList","parameters":[],"src":"53901:0:20"},"scope":12860,"src":"53823:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11087,"nodeType":"Block","src":"54085:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":11079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54135:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":11080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11067,"src":"54169:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"54173:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"54177:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11083,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11073,"src":"54181:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54111:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54115:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54111:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54111:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54095:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54095:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11086,"nodeType":"ExpressionStatement","src":"54095:90:20"}]},"id":11088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54025:3:20","nodeType":"FunctionDefinition","parameters":{"id":11074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11067,"mutability":"mutable","name":"p0","nameLocation":"54034:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54029:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11066,"name":"bool","nodeType":"ElementaryTypeName","src":"54029:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11069,"mutability":"mutable","name":"p1","nameLocation":"54046:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54038:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11068,"name":"address","nodeType":"ElementaryTypeName","src":"54038:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"p2","nameLocation":"54058:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54050:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11070,"name":"uint256","nodeType":"ElementaryTypeName","src":"54050:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11073,"mutability":"mutable","name":"p3","nameLocation":"54067:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54062:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11072,"name":"bool","nodeType":"ElementaryTypeName","src":"54062:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54028:42:20"},"returnParameters":{"id":11075,"nodeType":"ParameterList","parameters":[],"src":"54085:0:20"},"scope":12860,"src":"54016:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11110,"nodeType":"Block","src":"54270:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":11102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54320:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":11103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11090,"src":"54357:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11092,"src":"54361:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11094,"src":"54365:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11106,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"54369:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54296:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54300:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54296:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54296:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54280:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54280:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11109,"nodeType":"ExpressionStatement","src":"54280:93:20"}]},"id":11111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54207:3:20","nodeType":"FunctionDefinition","parameters":{"id":11097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11090,"mutability":"mutable","name":"p0","nameLocation":"54216:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54211:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11089,"name":"bool","nodeType":"ElementaryTypeName","src":"54211:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11092,"mutability":"mutable","name":"p1","nameLocation":"54228:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54220:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11091,"name":"address","nodeType":"ElementaryTypeName","src":"54220:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11094,"mutability":"mutable","name":"p2","nameLocation":"54240:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54232:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11093,"name":"uint256","nodeType":"ElementaryTypeName","src":"54232:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11096,"mutability":"mutable","name":"p3","nameLocation":"54252:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54244:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11095,"name":"address","nodeType":"ElementaryTypeName","src":"54244:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54210:45:20"},"returnParameters":{"id":11098,"nodeType":"ParameterList","parameters":[],"src":"54270:0:20"},"scope":12860,"src":"54198:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11133,"nodeType":"Block","src":"54464:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":11125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54514:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":11126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11113,"src":"54550:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11115,"src":"54554:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11117,"src":"54558:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11129,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11119,"src":"54562:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54490:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54494:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54490:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54490:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54474:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54474:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11132,"nodeType":"ExpressionStatement","src":"54474:92:20"}]},"id":11134,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54395:3:20","nodeType":"FunctionDefinition","parameters":{"id":11120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11113,"mutability":"mutable","name":"p0","nameLocation":"54404:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54399:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11112,"name":"bool","nodeType":"ElementaryTypeName","src":"54399:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11115,"mutability":"mutable","name":"p1","nameLocation":"54416:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54408:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11114,"name":"address","nodeType":"ElementaryTypeName","src":"54408:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11117,"mutability":"mutable","name":"p2","nameLocation":"54434:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54420:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11116,"name":"string","nodeType":"ElementaryTypeName","src":"54420:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11119,"mutability":"mutable","name":"p3","nameLocation":"54446:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54438:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11118,"name":"uint256","nodeType":"ElementaryTypeName","src":"54438:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54398:51:20"},"returnParameters":{"id":11121,"nodeType":"ParameterList","parameters":[],"src":"54464:0:20"},"scope":12860,"src":"54386:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11156,"nodeType":"Block","src":"54663:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":11148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54713:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":11149,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11136,"src":"54748:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11150,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11138,"src":"54752:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11151,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11140,"src":"54756:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11152,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"54760:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54689:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54693:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54689:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54689:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11145,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54673:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54673:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11155,"nodeType":"ExpressionStatement","src":"54673:91:20"}]},"id":11157,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54588:3:20","nodeType":"FunctionDefinition","parameters":{"id":11143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11136,"mutability":"mutable","name":"p0","nameLocation":"54597:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54592:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11135,"name":"bool","nodeType":"ElementaryTypeName","src":"54592:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11138,"mutability":"mutable","name":"p1","nameLocation":"54609:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54601:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11137,"name":"address","nodeType":"ElementaryTypeName","src":"54601:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11140,"mutability":"mutable","name":"p2","nameLocation":"54627:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54613:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11139,"name":"string","nodeType":"ElementaryTypeName","src":"54613:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"p3","nameLocation":"54645:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54631:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11141,"name":"string","nodeType":"ElementaryTypeName","src":"54631:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54591:57:20"},"returnParameters":{"id":11144,"nodeType":"ParameterList","parameters":[],"src":"54663:0:20"},"scope":12860,"src":"54579:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11179,"nodeType":"Block","src":"54852:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":11171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54902:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":11172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11159,"src":"54935:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"54939:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11174,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11163,"src":"54943:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11175,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11165,"src":"54947:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54878:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54882:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54878:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54878:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54862:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54862:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11178,"nodeType":"ExpressionStatement","src":"54862:89:20"}]},"id":11180,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54786:3:20","nodeType":"FunctionDefinition","parameters":{"id":11166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11159,"mutability":"mutable","name":"p0","nameLocation":"54795:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54790:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11158,"name":"bool","nodeType":"ElementaryTypeName","src":"54790:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11161,"mutability":"mutable","name":"p1","nameLocation":"54807:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54799:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11160,"name":"address","nodeType":"ElementaryTypeName","src":"54799:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11163,"mutability":"mutable","name":"p2","nameLocation":"54825:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54811:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11162,"name":"string","nodeType":"ElementaryTypeName","src":"54811:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11165,"mutability":"mutable","name":"p3","nameLocation":"54834:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54829:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11164,"name":"bool","nodeType":"ElementaryTypeName","src":"54829:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54789:48:20"},"returnParameters":{"id":11167,"nodeType":"ParameterList","parameters":[],"src":"54852:0:20"},"scope":12860,"src":"54777:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11202,"nodeType":"Block","src":"55042:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":11194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55092:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":11195,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11182,"src":"55128:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11196,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11184,"src":"55132:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11197,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"55136:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11198,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11188,"src":"55140:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55068:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55072:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55068:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55068:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11191,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55052:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55052:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11201,"nodeType":"ExpressionStatement","src":"55052:92:20"}]},"id":11203,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54973:3:20","nodeType":"FunctionDefinition","parameters":{"id":11189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11182,"mutability":"mutable","name":"p0","nameLocation":"54982:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"54977:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11181,"name":"bool","nodeType":"ElementaryTypeName","src":"54977:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11184,"mutability":"mutable","name":"p1","nameLocation":"54994:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"54986:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11183,"name":"address","nodeType":"ElementaryTypeName","src":"54986:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11186,"mutability":"mutable","name":"p2","nameLocation":"55012:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"54998:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11185,"name":"string","nodeType":"ElementaryTypeName","src":"54998:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11188,"mutability":"mutable","name":"p3","nameLocation":"55024:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"55016:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11187,"name":"address","nodeType":"ElementaryTypeName","src":"55016:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54976:51:20"},"returnParameters":{"id":11190,"nodeType":"ParameterList","parameters":[],"src":"55042:0:20"},"scope":12860,"src":"54964:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11225,"nodeType":"Block","src":"55226:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":11217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55276:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":11218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11205,"src":"55310:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11207,"src":"55314:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11220,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11209,"src":"55318:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11221,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11211,"src":"55322:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55252:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55256:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55252:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55252:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55236:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55236:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11224,"nodeType":"ExpressionStatement","src":"55236:90:20"}]},"id":11226,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55166:3:20","nodeType":"FunctionDefinition","parameters":{"id":11212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11205,"mutability":"mutable","name":"p0","nameLocation":"55175:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55170:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11204,"name":"bool","nodeType":"ElementaryTypeName","src":"55170:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11207,"mutability":"mutable","name":"p1","nameLocation":"55187:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55179:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11206,"name":"address","nodeType":"ElementaryTypeName","src":"55179:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11209,"mutability":"mutable","name":"p2","nameLocation":"55196:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55191:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11208,"name":"bool","nodeType":"ElementaryTypeName","src":"55191:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11211,"mutability":"mutable","name":"p3","nameLocation":"55208:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55200:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11210,"name":"uint256","nodeType":"ElementaryTypeName","src":"55200:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55169:42:20"},"returnParameters":{"id":11213,"nodeType":"ParameterList","parameters":[],"src":"55226:0:20"},"scope":12860,"src":"55157:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11248,"nodeType":"Block","src":"55414:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":11240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55464:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":11241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"55497:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11230,"src":"55501:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11232,"src":"55505:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11244,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11234,"src":"55509:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55440:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55444:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55440:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55440:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55424:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55424:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11247,"nodeType":"ExpressionStatement","src":"55424:89:20"}]},"id":11249,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55348:3:20","nodeType":"FunctionDefinition","parameters":{"id":11235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11228,"mutability":"mutable","name":"p0","nameLocation":"55357:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55352:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11227,"name":"bool","nodeType":"ElementaryTypeName","src":"55352:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11230,"mutability":"mutable","name":"p1","nameLocation":"55369:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55361:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11229,"name":"address","nodeType":"ElementaryTypeName","src":"55361:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11232,"mutability":"mutable","name":"p2","nameLocation":"55378:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55373:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11231,"name":"bool","nodeType":"ElementaryTypeName","src":"55373:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11234,"mutability":"mutable","name":"p3","nameLocation":"55396:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55382:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11233,"name":"string","nodeType":"ElementaryTypeName","src":"55382:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55351:48:20"},"returnParameters":{"id":11236,"nodeType":"ParameterList","parameters":[],"src":"55414:0:20"},"scope":12860,"src":"55339:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11271,"nodeType":"Block","src":"55592:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":11263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55642:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":11264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11251,"src":"55673:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11253,"src":"55677:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11255,"src":"55681:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11267,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11257,"src":"55685:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55618:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55622:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55618:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55618:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55602:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55602:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11270,"nodeType":"ExpressionStatement","src":"55602:87:20"}]},"id":11272,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55535:3:20","nodeType":"FunctionDefinition","parameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11251,"mutability":"mutable","name":"p0","nameLocation":"55544:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55539:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11250,"name":"bool","nodeType":"ElementaryTypeName","src":"55539:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11253,"mutability":"mutable","name":"p1","nameLocation":"55556:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55548:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11252,"name":"address","nodeType":"ElementaryTypeName","src":"55548:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11255,"mutability":"mutable","name":"p2","nameLocation":"55565:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55560:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11254,"name":"bool","nodeType":"ElementaryTypeName","src":"55560:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11257,"mutability":"mutable","name":"p3","nameLocation":"55574:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55569:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11256,"name":"bool","nodeType":"ElementaryTypeName","src":"55569:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55538:39:20"},"returnParameters":{"id":11259,"nodeType":"ParameterList","parameters":[],"src":"55592:0:20"},"scope":12860,"src":"55526:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11294,"nodeType":"Block","src":"55771:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":11286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55821:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":11287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"55855:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11288,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11276,"src":"55859:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11289,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"55863:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11290,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"55867:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55797:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55801:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55797:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55797:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55781:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55781:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11293,"nodeType":"ExpressionStatement","src":"55781:90:20"}]},"id":11295,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55711:3:20","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11274,"mutability":"mutable","name":"p0","nameLocation":"55720:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55715:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11273,"name":"bool","nodeType":"ElementaryTypeName","src":"55715:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11276,"mutability":"mutable","name":"p1","nameLocation":"55732:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55724:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11275,"name":"address","nodeType":"ElementaryTypeName","src":"55724:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11278,"mutability":"mutable","name":"p2","nameLocation":"55741:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55736:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11277,"name":"bool","nodeType":"ElementaryTypeName","src":"55736:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11280,"mutability":"mutable","name":"p3","nameLocation":"55753:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11279,"name":"address","nodeType":"ElementaryTypeName","src":"55745:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55714:42:20"},"returnParameters":{"id":11282,"nodeType":"ParameterList","parameters":[],"src":"55771:0:20"},"scope":12860,"src":"55702:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11317,"nodeType":"Block","src":"55956:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":11309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56006:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":11310,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11297,"src":"56043:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11311,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11299,"src":"56047:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11301,"src":"56051:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11313,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11303,"src":"56055:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55982:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55986:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55982:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55982:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55966:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55966:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11316,"nodeType":"ExpressionStatement","src":"55966:93:20"}]},"id":11318,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55893:3:20","nodeType":"FunctionDefinition","parameters":{"id":11304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11297,"mutability":"mutable","name":"p0","nameLocation":"55902:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55897:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11296,"name":"bool","nodeType":"ElementaryTypeName","src":"55897:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11299,"mutability":"mutable","name":"p1","nameLocation":"55914:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55906:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11298,"name":"address","nodeType":"ElementaryTypeName","src":"55906:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11301,"mutability":"mutable","name":"p2","nameLocation":"55926:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55918:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11300,"name":"address","nodeType":"ElementaryTypeName","src":"55918:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11303,"mutability":"mutable","name":"p3","nameLocation":"55938:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55930:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11302,"name":"uint256","nodeType":"ElementaryTypeName","src":"55930:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55896:45:20"},"returnParameters":{"id":11305,"nodeType":"ParameterList","parameters":[],"src":"55956:0:20"},"scope":12860,"src":"55884:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11340,"nodeType":"Block","src":"56150:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":11332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56200:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":11333,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11320,"src":"56236:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11334,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11322,"src":"56240:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11335,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"56244:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11336,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11326,"src":"56248:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56176:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56180:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56176:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56176:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56160:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11339,"nodeType":"ExpressionStatement","src":"56160:92:20"}]},"id":11341,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56081:3:20","nodeType":"FunctionDefinition","parameters":{"id":11327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11320,"mutability":"mutable","name":"p0","nameLocation":"56090:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56085:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11319,"name":"bool","nodeType":"ElementaryTypeName","src":"56085:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11322,"mutability":"mutable","name":"p1","nameLocation":"56102:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56094:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11321,"name":"address","nodeType":"ElementaryTypeName","src":"56094:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11324,"mutability":"mutable","name":"p2","nameLocation":"56114:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56106:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11323,"name":"address","nodeType":"ElementaryTypeName","src":"56106:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11326,"mutability":"mutable","name":"p3","nameLocation":"56132:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56118:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11325,"name":"string","nodeType":"ElementaryTypeName","src":"56118:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56084:51:20"},"returnParameters":{"id":11328,"nodeType":"ParameterList","parameters":[],"src":"56150:0:20"},"scope":12860,"src":"56072:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11363,"nodeType":"Block","src":"56334:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":11355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56384:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":11356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11343,"src":"56418:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"56422:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11347,"src":"56426:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11359,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11349,"src":"56430:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56360:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56364:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56360:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56360:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56344:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56344:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11362,"nodeType":"ExpressionStatement","src":"56344:90:20"}]},"id":11364,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56274:3:20","nodeType":"FunctionDefinition","parameters":{"id":11350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11343,"mutability":"mutable","name":"p0","nameLocation":"56283:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56278:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11342,"name":"bool","nodeType":"ElementaryTypeName","src":"56278:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11345,"mutability":"mutable","name":"p1","nameLocation":"56295:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56287:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11344,"name":"address","nodeType":"ElementaryTypeName","src":"56287:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11347,"mutability":"mutable","name":"p2","nameLocation":"56307:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56299:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11346,"name":"address","nodeType":"ElementaryTypeName","src":"56299:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11349,"mutability":"mutable","name":"p3","nameLocation":"56316:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56311:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11348,"name":"bool","nodeType":"ElementaryTypeName","src":"56311:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56277:42:20"},"returnParameters":{"id":11351,"nodeType":"ParameterList","parameters":[],"src":"56334:0:20"},"scope":12860,"src":"56265:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11386,"nodeType":"Block","src":"56519:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":11378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56569:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":11379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11366,"src":"56606:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11368,"src":"56610:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11370,"src":"56614:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11382,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"56618:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56545:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56549:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56545:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56545:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56529:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56529:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11385,"nodeType":"ExpressionStatement","src":"56529:93:20"}]},"id":11387,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56456:3:20","nodeType":"FunctionDefinition","parameters":{"id":11373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11366,"mutability":"mutable","name":"p0","nameLocation":"56465:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56460:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11365,"name":"bool","nodeType":"ElementaryTypeName","src":"56460:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11368,"mutability":"mutable","name":"p1","nameLocation":"56477:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56469:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11367,"name":"address","nodeType":"ElementaryTypeName","src":"56469:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11370,"mutability":"mutable","name":"p2","nameLocation":"56489:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56481:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11369,"name":"address","nodeType":"ElementaryTypeName","src":"56481:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11372,"mutability":"mutable","name":"p3","nameLocation":"56501:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56493:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11371,"name":"address","nodeType":"ElementaryTypeName","src":"56493:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56459:45:20"},"returnParameters":{"id":11374,"nodeType":"ParameterList","parameters":[],"src":"56519:0:20"},"scope":12860,"src":"56447:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11409,"nodeType":"Block","src":"56710:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":11401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56760:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":11402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11389,"src":"56800:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11403,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11391,"src":"56804:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11404,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11393,"src":"56808:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11405,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"56812:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56736:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56740:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56736:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56736:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56720:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56720:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11408,"nodeType":"ExpressionStatement","src":"56720:96:20"}]},"id":11410,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56644:3:20","nodeType":"FunctionDefinition","parameters":{"id":11396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11389,"mutability":"mutable","name":"p0","nameLocation":"56656:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56648:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11388,"name":"address","nodeType":"ElementaryTypeName","src":"56648:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11391,"mutability":"mutable","name":"p1","nameLocation":"56668:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56660:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11390,"name":"uint256","nodeType":"ElementaryTypeName","src":"56660:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11393,"mutability":"mutable","name":"p2","nameLocation":"56680:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56672:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11392,"name":"uint256","nodeType":"ElementaryTypeName","src":"56672:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11395,"mutability":"mutable","name":"p3","nameLocation":"56692:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56684:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11394,"name":"uint256","nodeType":"ElementaryTypeName","src":"56684:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56647:48:20"},"returnParameters":{"id":11397,"nodeType":"ParameterList","parameters":[],"src":"56710:0:20"},"scope":12860,"src":"56635:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11432,"nodeType":"Block","src":"56910:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":11424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56960:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":11425,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"56999:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11426,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11414,"src":"57003:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11427,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11416,"src":"57007:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11428,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11418,"src":"57011:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56936:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56940:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56936:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56936:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11421,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56920:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56920:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11431,"nodeType":"ExpressionStatement","src":"56920:95:20"}]},"id":11433,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56838:3:20","nodeType":"FunctionDefinition","parameters":{"id":11419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11412,"mutability":"mutable","name":"p0","nameLocation":"56850:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56842:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11411,"name":"address","nodeType":"ElementaryTypeName","src":"56842:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11414,"mutability":"mutable","name":"p1","nameLocation":"56862:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56854:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11413,"name":"uint256","nodeType":"ElementaryTypeName","src":"56854:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11416,"mutability":"mutable","name":"p2","nameLocation":"56874:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56866:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11415,"name":"uint256","nodeType":"ElementaryTypeName","src":"56866:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11418,"mutability":"mutable","name":"p3","nameLocation":"56892:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56878:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11417,"name":"string","nodeType":"ElementaryTypeName","src":"56878:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56841:54:20"},"returnParameters":{"id":11420,"nodeType":"ParameterList","parameters":[],"src":"56910:0:20"},"scope":12860,"src":"56829:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11455,"nodeType":"Block","src":"57100:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":11447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57150:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":11448,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11435,"src":"57187:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11449,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11437,"src":"57191:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11450,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"57195:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11451,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"57199:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57126:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57130:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57126:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57126:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57110:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57110:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11454,"nodeType":"ExpressionStatement","src":"57110:93:20"}]},"id":11456,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57037:3:20","nodeType":"FunctionDefinition","parameters":{"id":11442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11435,"mutability":"mutable","name":"p0","nameLocation":"57049:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57041:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11434,"name":"address","nodeType":"ElementaryTypeName","src":"57041:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11437,"mutability":"mutable","name":"p1","nameLocation":"57061:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57053:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11436,"name":"uint256","nodeType":"ElementaryTypeName","src":"57053:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11439,"mutability":"mutable","name":"p2","nameLocation":"57073:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57065:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11438,"name":"uint256","nodeType":"ElementaryTypeName","src":"57065:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11441,"mutability":"mutable","name":"p3","nameLocation":"57082:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57077:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11440,"name":"bool","nodeType":"ElementaryTypeName","src":"57077:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57040:45:20"},"returnParameters":{"id":11443,"nodeType":"ParameterList","parameters":[],"src":"57100:0:20"},"scope":12860,"src":"57028:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11478,"nodeType":"Block","src":"57291:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":11470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57341:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":11471,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11458,"src":"57381:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11472,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11460,"src":"57385:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11473,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"57389:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11474,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11464,"src":"57393:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11468,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57317:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57321:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57317:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57317:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11467,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57301:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57301:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11477,"nodeType":"ExpressionStatement","src":"57301:96:20"}]},"id":11479,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57225:3:20","nodeType":"FunctionDefinition","parameters":{"id":11465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11458,"mutability":"mutable","name":"p0","nameLocation":"57237:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57229:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11457,"name":"address","nodeType":"ElementaryTypeName","src":"57229:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11460,"mutability":"mutable","name":"p1","nameLocation":"57249:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57241:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11459,"name":"uint256","nodeType":"ElementaryTypeName","src":"57241:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11462,"mutability":"mutable","name":"p2","nameLocation":"57261:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57253:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11461,"name":"uint256","nodeType":"ElementaryTypeName","src":"57253:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11464,"mutability":"mutable","name":"p3","nameLocation":"57273:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57265:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11463,"name":"address","nodeType":"ElementaryTypeName","src":"57265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57228:48:20"},"returnParameters":{"id":11466,"nodeType":"ParameterList","parameters":[],"src":"57291:0:20"},"scope":12860,"src":"57216:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11501,"nodeType":"Block","src":"57491:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":11493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57541:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":11494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11481,"src":"57580:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11483,"src":"57584:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11496,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"57588:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11497,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11487,"src":"57592:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57517:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57521:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57517:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57517:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57501:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57501:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11500,"nodeType":"ExpressionStatement","src":"57501:95:20"}]},"id":11502,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57419:3:20","nodeType":"FunctionDefinition","parameters":{"id":11488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11481,"mutability":"mutable","name":"p0","nameLocation":"57431:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57423:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11480,"name":"address","nodeType":"ElementaryTypeName","src":"57423:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11483,"mutability":"mutable","name":"p1","nameLocation":"57443:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57435:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11482,"name":"uint256","nodeType":"ElementaryTypeName","src":"57435:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11485,"mutability":"mutable","name":"p2","nameLocation":"57461:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57447:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11484,"name":"string","nodeType":"ElementaryTypeName","src":"57447:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11487,"mutability":"mutable","name":"p3","nameLocation":"57473:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57465:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11486,"name":"uint256","nodeType":"ElementaryTypeName","src":"57465:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57422:54:20"},"returnParameters":{"id":11489,"nodeType":"ParameterList","parameters":[],"src":"57491:0:20"},"scope":12860,"src":"57410:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11524,"nodeType":"Block","src":"57696:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":11516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57746:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":11517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11504,"src":"57784:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11506,"src":"57788:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11519,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"57792:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11520,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11510,"src":"57796:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57722:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57726:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57722:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57722:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57706:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57706:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11523,"nodeType":"ExpressionStatement","src":"57706:94:20"}]},"id":11525,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57618:3:20","nodeType":"FunctionDefinition","parameters":{"id":11511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11504,"mutability":"mutable","name":"p0","nameLocation":"57630:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57622:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11503,"name":"address","nodeType":"ElementaryTypeName","src":"57622:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11506,"mutability":"mutable","name":"p1","nameLocation":"57642:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57634:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11505,"name":"uint256","nodeType":"ElementaryTypeName","src":"57634:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11508,"mutability":"mutable","name":"p2","nameLocation":"57660:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57646:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11507,"name":"string","nodeType":"ElementaryTypeName","src":"57646:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11510,"mutability":"mutable","name":"p3","nameLocation":"57678:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57664:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11509,"name":"string","nodeType":"ElementaryTypeName","src":"57664:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57621:60:20"},"returnParameters":{"id":11512,"nodeType":"ParameterList","parameters":[],"src":"57696:0:20"},"scope":12860,"src":"57609:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11547,"nodeType":"Block","src":"57891:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":11539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57941:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":11540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11527,"src":"57977:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"57981:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11531,"src":"57985:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11543,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11533,"src":"57989:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57917:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57921:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57917:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57917:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57901:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57901:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"ExpressionStatement","src":"57901:92:20"}]},"id":11548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57822:3:20","nodeType":"FunctionDefinition","parameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11527,"mutability":"mutable","name":"p0","nameLocation":"57834:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57826:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11526,"name":"address","nodeType":"ElementaryTypeName","src":"57826:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11529,"mutability":"mutable","name":"p1","nameLocation":"57846:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57838:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11528,"name":"uint256","nodeType":"ElementaryTypeName","src":"57838:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11531,"mutability":"mutable","name":"p2","nameLocation":"57864:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57850:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11530,"name":"string","nodeType":"ElementaryTypeName","src":"57850:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"p3","nameLocation":"57873:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57868:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11532,"name":"bool","nodeType":"ElementaryTypeName","src":"57868:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57825:51:20"},"returnParameters":{"id":11535,"nodeType":"ParameterList","parameters":[],"src":"57891:0:20"},"scope":12860,"src":"57813:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11570,"nodeType":"Block","src":"58087:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":11562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58137:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":11563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"58176:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11552,"src":"58180:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11554,"src":"58184:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11566,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11556,"src":"58188:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58113:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58117:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58113:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58113:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58097:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58097:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11569,"nodeType":"ExpressionStatement","src":"58097:95:20"}]},"id":11571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58015:3:20","nodeType":"FunctionDefinition","parameters":{"id":11557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11550,"mutability":"mutable","name":"p0","nameLocation":"58027:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58019:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11549,"name":"address","nodeType":"ElementaryTypeName","src":"58019:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11552,"mutability":"mutable","name":"p1","nameLocation":"58039:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58031:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11551,"name":"uint256","nodeType":"ElementaryTypeName","src":"58031:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11554,"mutability":"mutable","name":"p2","nameLocation":"58057:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58043:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11553,"name":"string","nodeType":"ElementaryTypeName","src":"58043:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11556,"mutability":"mutable","name":"p3","nameLocation":"58069:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58061:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11555,"name":"address","nodeType":"ElementaryTypeName","src":"58061:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58018:54:20"},"returnParameters":{"id":11558,"nodeType":"ParameterList","parameters":[],"src":"58087:0:20"},"scope":12860,"src":"58006:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11593,"nodeType":"Block","src":"58277:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":11585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58327:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":11586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11573,"src":"58364:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11575,"src":"58368:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"58372:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11589,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11579,"src":"58376:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58303:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58307:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58303:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58303:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58287:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58287:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11592,"nodeType":"ExpressionStatement","src":"58287:93:20"}]},"id":11594,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58214:3:20","nodeType":"FunctionDefinition","parameters":{"id":11580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11573,"mutability":"mutable","name":"p0","nameLocation":"58226:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58218:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11572,"name":"address","nodeType":"ElementaryTypeName","src":"58218:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11575,"mutability":"mutable","name":"p1","nameLocation":"58238:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58230:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11574,"name":"uint256","nodeType":"ElementaryTypeName","src":"58230:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11577,"mutability":"mutable","name":"p2","nameLocation":"58247:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11576,"name":"bool","nodeType":"ElementaryTypeName","src":"58242:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11579,"mutability":"mutable","name":"p3","nameLocation":"58259:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58251:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11578,"name":"uint256","nodeType":"ElementaryTypeName","src":"58251:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58217:45:20"},"returnParameters":{"id":11581,"nodeType":"ParameterList","parameters":[],"src":"58277:0:20"},"scope":12860,"src":"58205:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11616,"nodeType":"Block","src":"58471:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":11608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58521:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":11609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11596,"src":"58557:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11610,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11598,"src":"58561:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11611,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11600,"src":"58565:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11612,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"58569:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58497:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58501:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58497:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58497:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58481:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58481:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11615,"nodeType":"ExpressionStatement","src":"58481:92:20"}]},"id":11617,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58402:3:20","nodeType":"FunctionDefinition","parameters":{"id":11603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11596,"mutability":"mutable","name":"p0","nameLocation":"58414:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58406:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11595,"name":"address","nodeType":"ElementaryTypeName","src":"58406:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11598,"mutability":"mutable","name":"p1","nameLocation":"58426:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58418:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11597,"name":"uint256","nodeType":"ElementaryTypeName","src":"58418:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11600,"mutability":"mutable","name":"p2","nameLocation":"58435:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58430:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11599,"name":"bool","nodeType":"ElementaryTypeName","src":"58430:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11602,"mutability":"mutable","name":"p3","nameLocation":"58453:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58439:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11601,"name":"string","nodeType":"ElementaryTypeName","src":"58439:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58405:51:20"},"returnParameters":{"id":11604,"nodeType":"ParameterList","parameters":[],"src":"58471:0:20"},"scope":12860,"src":"58393:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11639,"nodeType":"Block","src":"58655:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":11631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58705:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":11632,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11619,"src":"58739:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11633,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"58743:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11634,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11623,"src":"58747:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11635,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11625,"src":"58751:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58681:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58685:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58681:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58681:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11628,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58665:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58665:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11638,"nodeType":"ExpressionStatement","src":"58665:90:20"}]},"id":11640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58595:3:20","nodeType":"FunctionDefinition","parameters":{"id":11626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11619,"mutability":"mutable","name":"p0","nameLocation":"58607:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58599:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11618,"name":"address","nodeType":"ElementaryTypeName","src":"58599:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11621,"mutability":"mutable","name":"p1","nameLocation":"58619:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58611:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11620,"name":"uint256","nodeType":"ElementaryTypeName","src":"58611:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11623,"mutability":"mutable","name":"p2","nameLocation":"58628:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58623:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11622,"name":"bool","nodeType":"ElementaryTypeName","src":"58623:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11625,"mutability":"mutable","name":"p3","nameLocation":"58637:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58632:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11624,"name":"bool","nodeType":"ElementaryTypeName","src":"58632:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58598:42:20"},"returnParameters":{"id":11627,"nodeType":"ParameterList","parameters":[],"src":"58655:0:20"},"scope":12860,"src":"58586:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11662,"nodeType":"Block","src":"58840:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":11654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58890:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":11655,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11642,"src":"58927:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11656,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"58931:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11657,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11646,"src":"58935:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11658,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11648,"src":"58939:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58866:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58870:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58866:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58866:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58850:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58850:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11661,"nodeType":"ExpressionStatement","src":"58850:93:20"}]},"id":11663,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58777:3:20","nodeType":"FunctionDefinition","parameters":{"id":11649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11642,"mutability":"mutable","name":"p0","nameLocation":"58789:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58781:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11641,"name":"address","nodeType":"ElementaryTypeName","src":"58781:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11644,"mutability":"mutable","name":"p1","nameLocation":"58801:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58793:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11643,"name":"uint256","nodeType":"ElementaryTypeName","src":"58793:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11646,"mutability":"mutable","name":"p2","nameLocation":"58810:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58805:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11645,"name":"bool","nodeType":"ElementaryTypeName","src":"58805:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11648,"mutability":"mutable","name":"p3","nameLocation":"58822:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58814:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11647,"name":"address","nodeType":"ElementaryTypeName","src":"58814:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58780:45:20"},"returnParameters":{"id":11650,"nodeType":"ParameterList","parameters":[],"src":"58840:0:20"},"scope":12860,"src":"58768:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11685,"nodeType":"Block","src":"59031:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":11677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59081:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":11678,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11665,"src":"59121:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11679,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11667,"src":"59125:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11680,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11669,"src":"59129:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11681,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"59133:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59057:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59061:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59057:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59057:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11674,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59041:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59041:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"59041:96:20"}]},"id":11686,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58965:3:20","nodeType":"FunctionDefinition","parameters":{"id":11672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11665,"mutability":"mutable","name":"p0","nameLocation":"58977:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"58969:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11664,"name":"address","nodeType":"ElementaryTypeName","src":"58969:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11667,"mutability":"mutable","name":"p1","nameLocation":"58989:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"58981:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11666,"name":"uint256","nodeType":"ElementaryTypeName","src":"58981:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11669,"mutability":"mutable","name":"p2","nameLocation":"59001:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"58993:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11668,"name":"address","nodeType":"ElementaryTypeName","src":"58993:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11671,"mutability":"mutable","name":"p3","nameLocation":"59013:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"59005:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11670,"name":"uint256","nodeType":"ElementaryTypeName","src":"59005:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58968:48:20"},"returnParameters":{"id":11673,"nodeType":"ParameterList","parameters":[],"src":"59031:0:20"},"scope":12860,"src":"58956:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11708,"nodeType":"Block","src":"59231:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":11700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59281:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":11701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11688,"src":"59320:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11690,"src":"59324:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11692,"src":"59328:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11704,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11694,"src":"59332:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59257:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59261:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59257:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59257:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59241:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59241:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11707,"nodeType":"ExpressionStatement","src":"59241:95:20"}]},"id":11709,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59159:3:20","nodeType":"FunctionDefinition","parameters":{"id":11695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11688,"mutability":"mutable","name":"p0","nameLocation":"59171:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59163:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11687,"name":"address","nodeType":"ElementaryTypeName","src":"59163:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11690,"mutability":"mutable","name":"p1","nameLocation":"59183:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59175:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11689,"name":"uint256","nodeType":"ElementaryTypeName","src":"59175:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11692,"mutability":"mutable","name":"p2","nameLocation":"59195:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59187:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11691,"name":"address","nodeType":"ElementaryTypeName","src":"59187:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11694,"mutability":"mutable","name":"p3","nameLocation":"59213:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59199:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11693,"name":"string","nodeType":"ElementaryTypeName","src":"59199:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59162:54:20"},"returnParameters":{"id":11696,"nodeType":"ParameterList","parameters":[],"src":"59231:0:20"},"scope":12860,"src":"59150:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11731,"nodeType":"Block","src":"59421:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":11723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59471:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":11724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11711,"src":"59508:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11713,"src":"59512:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11715,"src":"59516:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11727,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"59520:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59447:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59451:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59447:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59447:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59431:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59431:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11730,"nodeType":"ExpressionStatement","src":"59431:93:20"}]},"id":11732,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59358:3:20","nodeType":"FunctionDefinition","parameters":{"id":11718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11711,"mutability":"mutable","name":"p0","nameLocation":"59370:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59362:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11710,"name":"address","nodeType":"ElementaryTypeName","src":"59362:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11713,"mutability":"mutable","name":"p1","nameLocation":"59382:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59374:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11712,"name":"uint256","nodeType":"ElementaryTypeName","src":"59374:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11715,"mutability":"mutable","name":"p2","nameLocation":"59394:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59386:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11714,"name":"address","nodeType":"ElementaryTypeName","src":"59386:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11717,"mutability":"mutable","name":"p3","nameLocation":"59403:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59398:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11716,"name":"bool","nodeType":"ElementaryTypeName","src":"59398:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59361:45:20"},"returnParameters":{"id":11719,"nodeType":"ParameterList","parameters":[],"src":"59421:0:20"},"scope":12860,"src":"59349:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11754,"nodeType":"Block","src":"59612:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":11746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59662:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":11747,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11734,"src":"59702:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11748,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"59706:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11749,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11738,"src":"59710:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11750,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11740,"src":"59714:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59638:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59642:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59638:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59638:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59622:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59622:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11753,"nodeType":"ExpressionStatement","src":"59622:96:20"}]},"id":11755,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59546:3:20","nodeType":"FunctionDefinition","parameters":{"id":11741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11734,"mutability":"mutable","name":"p0","nameLocation":"59558:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59550:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11733,"name":"address","nodeType":"ElementaryTypeName","src":"59550:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11736,"mutability":"mutable","name":"p1","nameLocation":"59570:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59562:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11735,"name":"uint256","nodeType":"ElementaryTypeName","src":"59562:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11738,"mutability":"mutable","name":"p2","nameLocation":"59582:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59574:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11737,"name":"address","nodeType":"ElementaryTypeName","src":"59574:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11740,"mutability":"mutable","name":"p3","nameLocation":"59594:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59586:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11739,"name":"address","nodeType":"ElementaryTypeName","src":"59586:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59549:48:20"},"returnParameters":{"id":11742,"nodeType":"ParameterList","parameters":[],"src":"59612:0:20"},"scope":12860,"src":"59537:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11777,"nodeType":"Block","src":"59812:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":11769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59862:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":11770,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"59901:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11771,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11759,"src":"59905:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11772,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11761,"src":"59909:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11773,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11763,"src":"59913:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59838:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59842:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59838:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59838:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59822:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59822:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11776,"nodeType":"ExpressionStatement","src":"59822:95:20"}]},"id":11778,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59740:3:20","nodeType":"FunctionDefinition","parameters":{"id":11764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11757,"mutability":"mutable","name":"p0","nameLocation":"59752:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59744:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11756,"name":"address","nodeType":"ElementaryTypeName","src":"59744:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11759,"mutability":"mutable","name":"p1","nameLocation":"59770:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59756:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11758,"name":"string","nodeType":"ElementaryTypeName","src":"59756:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11761,"mutability":"mutable","name":"p2","nameLocation":"59782:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11760,"name":"uint256","nodeType":"ElementaryTypeName","src":"59774:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11763,"mutability":"mutable","name":"p3","nameLocation":"59794:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59786:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11762,"name":"uint256","nodeType":"ElementaryTypeName","src":"59786:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59743:54:20"},"returnParameters":{"id":11765,"nodeType":"ParameterList","parameters":[],"src":"59812:0:20"},"scope":12860,"src":"59731:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11800,"nodeType":"Block","src":"60017:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":11792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60067:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":11793,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"60105:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11794,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11782,"src":"60109:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11795,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"60113:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11796,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11786,"src":"60117:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60043:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60047:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60043:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60043:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11789,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60027:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60027:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11799,"nodeType":"ExpressionStatement","src":"60027:94:20"}]},"id":11801,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59939:3:20","nodeType":"FunctionDefinition","parameters":{"id":11787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11780,"mutability":"mutable","name":"p0","nameLocation":"59951:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59943:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11779,"name":"address","nodeType":"ElementaryTypeName","src":"59943:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11782,"mutability":"mutable","name":"p1","nameLocation":"59969:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59955:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11781,"name":"string","nodeType":"ElementaryTypeName","src":"59955:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11784,"mutability":"mutable","name":"p2","nameLocation":"59981:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59973:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11783,"name":"uint256","nodeType":"ElementaryTypeName","src":"59973:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11786,"mutability":"mutable","name":"p3","nameLocation":"59999:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59985:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11785,"name":"string","nodeType":"ElementaryTypeName","src":"59985:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59942:60:20"},"returnParameters":{"id":11788,"nodeType":"ParameterList","parameters":[],"src":"60017:0:20"},"scope":12860,"src":"59930:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11823,"nodeType":"Block","src":"60212:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":11815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60262:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":11816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"60298:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11805,"src":"60302:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11807,"src":"60306:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11819,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11809,"src":"60310:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60238:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60242:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60238:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60238:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60222:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60222:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11822,"nodeType":"ExpressionStatement","src":"60222:92:20"}]},"id":11824,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60143:3:20","nodeType":"FunctionDefinition","parameters":{"id":11810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"p0","nameLocation":"60155:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60147:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11802,"name":"address","nodeType":"ElementaryTypeName","src":"60147:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11805,"mutability":"mutable","name":"p1","nameLocation":"60173:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60159:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11804,"name":"string","nodeType":"ElementaryTypeName","src":"60159:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11807,"mutability":"mutable","name":"p2","nameLocation":"60185:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60177:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11806,"name":"uint256","nodeType":"ElementaryTypeName","src":"60177:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11809,"mutability":"mutable","name":"p3","nameLocation":"60194:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60189:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11808,"name":"bool","nodeType":"ElementaryTypeName","src":"60189:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60146:51:20"},"returnParameters":{"id":11811,"nodeType":"ParameterList","parameters":[],"src":"60212:0:20"},"scope":12860,"src":"60134:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11846,"nodeType":"Block","src":"60408:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":11838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60458:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":11839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"60497:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"60501:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11830,"src":"60505:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11842,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11832,"src":"60509:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60434:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60438:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60434:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60434:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60418:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60418:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11845,"nodeType":"ExpressionStatement","src":"60418:95:20"}]},"id":11847,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60336:3:20","nodeType":"FunctionDefinition","parameters":{"id":11833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11826,"mutability":"mutable","name":"p0","nameLocation":"60348:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60340:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11825,"name":"address","nodeType":"ElementaryTypeName","src":"60340:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11828,"mutability":"mutable","name":"p1","nameLocation":"60366:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60352:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11827,"name":"string","nodeType":"ElementaryTypeName","src":"60352:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11830,"mutability":"mutable","name":"p2","nameLocation":"60378:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60370:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11829,"name":"uint256","nodeType":"ElementaryTypeName","src":"60370:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11832,"mutability":"mutable","name":"p3","nameLocation":"60390:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60382:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11831,"name":"address","nodeType":"ElementaryTypeName","src":"60382:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60339:54:20"},"returnParameters":{"id":11834,"nodeType":"ParameterList","parameters":[],"src":"60408:0:20"},"scope":12860,"src":"60327:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11869,"nodeType":"Block","src":"60613:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":11861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60663:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":11862,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11849,"src":"60701:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11863,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11851,"src":"60705:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11864,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"60709:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11865,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"60713:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60639:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60643:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60639:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60639:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60623:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60623:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11868,"nodeType":"ExpressionStatement","src":"60623:94:20"}]},"id":11870,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60535:3:20","nodeType":"FunctionDefinition","parameters":{"id":11856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11849,"mutability":"mutable","name":"p0","nameLocation":"60547:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60539:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11848,"name":"address","nodeType":"ElementaryTypeName","src":"60539:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11851,"mutability":"mutable","name":"p1","nameLocation":"60565:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60551:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11850,"name":"string","nodeType":"ElementaryTypeName","src":"60551:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11853,"mutability":"mutable","name":"p2","nameLocation":"60583:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60569:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11852,"name":"string","nodeType":"ElementaryTypeName","src":"60569:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11855,"mutability":"mutable","name":"p3","nameLocation":"60595:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60587:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11854,"name":"uint256","nodeType":"ElementaryTypeName","src":"60587:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60538:60:20"},"returnParameters":{"id":11857,"nodeType":"ParameterList","parameters":[],"src":"60613:0:20"},"scope":12860,"src":"60526:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11892,"nodeType":"Block","src":"60823:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":11884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60873:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":11885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11872,"src":"60910:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11886,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11874,"src":"60914:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11887,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"60918:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11888,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11878,"src":"60922:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"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"}],"expression":{"id":11882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60849:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60853:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60849:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60849:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60833:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60833:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11891,"nodeType":"ExpressionStatement","src":"60833:93:20"}]},"id":11893,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60739:3:20","nodeType":"FunctionDefinition","parameters":{"id":11879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11872,"mutability":"mutable","name":"p0","nameLocation":"60751:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60743:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11871,"name":"address","nodeType":"ElementaryTypeName","src":"60743:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11874,"mutability":"mutable","name":"p1","nameLocation":"60769:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60755:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11873,"name":"string","nodeType":"ElementaryTypeName","src":"60755:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11876,"mutability":"mutable","name":"p2","nameLocation":"60787:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60773:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11875,"name":"string","nodeType":"ElementaryTypeName","src":"60773:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11878,"mutability":"mutable","name":"p3","nameLocation":"60805:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60791:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11877,"name":"string","nodeType":"ElementaryTypeName","src":"60791:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60742:66:20"},"returnParameters":{"id":11880,"nodeType":"ParameterList","parameters":[],"src":"60823:0:20"},"scope":12860,"src":"60730:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11915,"nodeType":"Block","src":"61023:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":11907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61073:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":11908,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"61108:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11909,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11897,"src":"61112:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11910,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"61116:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11911,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"61120:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61049:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61053:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61049:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61049:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11904,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61033:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61033:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11914,"nodeType":"ExpressionStatement","src":"61033:91:20"}]},"id":11916,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60948:3:20","nodeType":"FunctionDefinition","parameters":{"id":11902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"p0","nameLocation":"60960:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"60952:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11894,"name":"address","nodeType":"ElementaryTypeName","src":"60952:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11897,"mutability":"mutable","name":"p1","nameLocation":"60978:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"60964:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11896,"name":"string","nodeType":"ElementaryTypeName","src":"60964:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11899,"mutability":"mutable","name":"p2","nameLocation":"60996:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"60982:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11898,"name":"string","nodeType":"ElementaryTypeName","src":"60982:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11901,"mutability":"mutable","name":"p3","nameLocation":"61005:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"61000:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11900,"name":"bool","nodeType":"ElementaryTypeName","src":"61000:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60951:57:20"},"returnParameters":{"id":11903,"nodeType":"ParameterList","parameters":[],"src":"61023:0:20"},"scope":12860,"src":"60939:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11938,"nodeType":"Block","src":"61224:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":11930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61274:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":11931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11918,"src":"61312:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11932,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11920,"src":"61316:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11933,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"61320:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11934,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11924,"src":"61324:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61250:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61254:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61250:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61250:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61234:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61234:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11937,"nodeType":"ExpressionStatement","src":"61234:94:20"}]},"id":11939,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61146:3:20","nodeType":"FunctionDefinition","parameters":{"id":11925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11918,"mutability":"mutable","name":"p0","nameLocation":"61158:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61150:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11917,"name":"address","nodeType":"ElementaryTypeName","src":"61150:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11920,"mutability":"mutable","name":"p1","nameLocation":"61176:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61162:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11919,"name":"string","nodeType":"ElementaryTypeName","src":"61162:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11922,"mutability":"mutable","name":"p2","nameLocation":"61194:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61180:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11921,"name":"string","nodeType":"ElementaryTypeName","src":"61180:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11924,"mutability":"mutable","name":"p3","nameLocation":"61206:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61198:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11923,"name":"address","nodeType":"ElementaryTypeName","src":"61198:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61149:60:20"},"returnParameters":{"id":11926,"nodeType":"ParameterList","parameters":[],"src":"61224:0:20"},"scope":12860,"src":"61137:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11961,"nodeType":"Block","src":"61419:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":11953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61469:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":11954,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11941,"src":"61505:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11955,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11943,"src":"61509:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11956,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"61513:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11957,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"61517:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61445:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61449:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61445:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61445:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11950,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61429:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61429:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11960,"nodeType":"ExpressionStatement","src":"61429:92:20"}]},"id":11962,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61350:3:20","nodeType":"FunctionDefinition","parameters":{"id":11948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11941,"mutability":"mutable","name":"p0","nameLocation":"61362:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61354:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11940,"name":"address","nodeType":"ElementaryTypeName","src":"61354:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11943,"mutability":"mutable","name":"p1","nameLocation":"61380:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61366:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11942,"name":"string","nodeType":"ElementaryTypeName","src":"61366:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11945,"mutability":"mutable","name":"p2","nameLocation":"61389:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61384:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11944,"name":"bool","nodeType":"ElementaryTypeName","src":"61384:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11947,"mutability":"mutable","name":"p3","nameLocation":"61401:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61393:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"61393:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61353:51:20"},"returnParameters":{"id":11949,"nodeType":"ParameterList","parameters":[],"src":"61419:0:20"},"scope":12860,"src":"61341:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11984,"nodeType":"Block","src":"61618:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":11976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61668:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":11977,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11964,"src":"61703:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11978,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11966,"src":"61707:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11979,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11968,"src":"61711:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11980,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11970,"src":"61715:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61644:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61648:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61644:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61644:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11973,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61628:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61628:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11983,"nodeType":"ExpressionStatement","src":"61628:91:20"}]},"id":11985,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61543:3:20","nodeType":"FunctionDefinition","parameters":{"id":11971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11964,"mutability":"mutable","name":"p0","nameLocation":"61555:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61547:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11963,"name":"address","nodeType":"ElementaryTypeName","src":"61547:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11966,"mutability":"mutable","name":"p1","nameLocation":"61573:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61559:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11965,"name":"string","nodeType":"ElementaryTypeName","src":"61559:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11968,"mutability":"mutable","name":"p2","nameLocation":"61582:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61577:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11967,"name":"bool","nodeType":"ElementaryTypeName","src":"61577:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11970,"mutability":"mutable","name":"p3","nameLocation":"61600:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61586:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11969,"name":"string","nodeType":"ElementaryTypeName","src":"61586:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61546:57:20"},"returnParameters":{"id":11972,"nodeType":"ParameterList","parameters":[],"src":"61618:0:20"},"scope":12860,"src":"61534:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12007,"nodeType":"Block","src":"61807:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":11999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61857:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":12000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11987,"src":"61890:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11989,"src":"61894:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11991,"src":"61898:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12003,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11993,"src":"61902:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61833:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61837:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61833:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61833:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61817:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61817:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12006,"nodeType":"ExpressionStatement","src":"61817:89:20"}]},"id":12008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61741:3:20","nodeType":"FunctionDefinition","parameters":{"id":11994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11987,"mutability":"mutable","name":"p0","nameLocation":"61753:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11986,"name":"address","nodeType":"ElementaryTypeName","src":"61745:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11989,"mutability":"mutable","name":"p1","nameLocation":"61771:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61757:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11988,"name":"string","nodeType":"ElementaryTypeName","src":"61757:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11991,"mutability":"mutable","name":"p2","nameLocation":"61780:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61775:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11990,"name":"bool","nodeType":"ElementaryTypeName","src":"61775:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11993,"mutability":"mutable","name":"p3","nameLocation":"61789:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61784:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11992,"name":"bool","nodeType":"ElementaryTypeName","src":"61784:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61744:48:20"},"returnParameters":{"id":11995,"nodeType":"ParameterList","parameters":[],"src":"61807:0:20"},"scope":12860,"src":"61732:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12030,"nodeType":"Block","src":"61997:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":12022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62047:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":12023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12010,"src":"62083:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12012,"src":"62087:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"62091:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12026,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12016,"src":"62095:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62023:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62027:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62023:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62023:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62007:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62007:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12029,"nodeType":"ExpressionStatement","src":"62007:92:20"}]},"id":12031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61928:3:20","nodeType":"FunctionDefinition","parameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12010,"mutability":"mutable","name":"p0","nameLocation":"61940:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61932:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12009,"name":"address","nodeType":"ElementaryTypeName","src":"61932:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12012,"mutability":"mutable","name":"p1","nameLocation":"61958:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61944:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12011,"name":"string","nodeType":"ElementaryTypeName","src":"61944:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12014,"mutability":"mutable","name":"p2","nameLocation":"61967:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61962:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12013,"name":"bool","nodeType":"ElementaryTypeName","src":"61962:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12016,"mutability":"mutable","name":"p3","nameLocation":"61979:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61971:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12015,"name":"address","nodeType":"ElementaryTypeName","src":"61971:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61931:51:20"},"returnParameters":{"id":12018,"nodeType":"ParameterList","parameters":[],"src":"61997:0:20"},"scope":12860,"src":"61919:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12053,"nodeType":"Block","src":"62193:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":12045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62243:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":12046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12033,"src":"62282:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12035,"src":"62286:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12037,"src":"62290:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12049,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12039,"src":"62294:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62219:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62223:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62219:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62219:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62203:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62203:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12052,"nodeType":"ExpressionStatement","src":"62203:95:20"}]},"id":12054,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62121:3:20","nodeType":"FunctionDefinition","parameters":{"id":12040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12033,"mutability":"mutable","name":"p0","nameLocation":"62133:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62125:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12032,"name":"address","nodeType":"ElementaryTypeName","src":"62125:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12035,"mutability":"mutable","name":"p1","nameLocation":"62151:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62137:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12034,"name":"string","nodeType":"ElementaryTypeName","src":"62137:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12037,"mutability":"mutable","name":"p2","nameLocation":"62163:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62155:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12036,"name":"address","nodeType":"ElementaryTypeName","src":"62155:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12039,"mutability":"mutable","name":"p3","nameLocation":"62175:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62167:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12038,"name":"uint256","nodeType":"ElementaryTypeName","src":"62167:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62124:54:20"},"returnParameters":{"id":12041,"nodeType":"ParameterList","parameters":[],"src":"62193:0:20"},"scope":12860,"src":"62112:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12076,"nodeType":"Block","src":"62398:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":12068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62448:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":12069,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12056,"src":"62486:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12070,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12058,"src":"62490:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12071,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12060,"src":"62494:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12072,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12062,"src":"62498:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62424:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62428:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62424:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62424:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12065,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62408:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62408:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12075,"nodeType":"ExpressionStatement","src":"62408:94:20"}]},"id":12077,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62320:3:20","nodeType":"FunctionDefinition","parameters":{"id":12063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12056,"mutability":"mutable","name":"p0","nameLocation":"62332:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62324:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12055,"name":"address","nodeType":"ElementaryTypeName","src":"62324:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12058,"mutability":"mutable","name":"p1","nameLocation":"62350:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62336:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12057,"name":"string","nodeType":"ElementaryTypeName","src":"62336:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12060,"mutability":"mutable","name":"p2","nameLocation":"62362:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62354:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12059,"name":"address","nodeType":"ElementaryTypeName","src":"62354:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12062,"mutability":"mutable","name":"p3","nameLocation":"62380:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62366:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12061,"name":"string","nodeType":"ElementaryTypeName","src":"62366:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62323:60:20"},"returnParameters":{"id":12064,"nodeType":"ParameterList","parameters":[],"src":"62398:0:20"},"scope":12860,"src":"62311:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12099,"nodeType":"Block","src":"62593:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":12091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62643:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":12092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"62679:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12093,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12081,"src":"62683:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12094,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"62687:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12095,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12085,"src":"62691:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62619:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62623:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62619:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62619:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62603:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62603:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12098,"nodeType":"ExpressionStatement","src":"62603:92:20"}]},"id":12100,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62524:3:20","nodeType":"FunctionDefinition","parameters":{"id":12086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12079,"mutability":"mutable","name":"p0","nameLocation":"62536:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62528:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12078,"name":"address","nodeType":"ElementaryTypeName","src":"62528:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12081,"mutability":"mutable","name":"p1","nameLocation":"62554:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62540:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12080,"name":"string","nodeType":"ElementaryTypeName","src":"62540:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12083,"mutability":"mutable","name":"p2","nameLocation":"62566:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62558:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12082,"name":"address","nodeType":"ElementaryTypeName","src":"62558:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12085,"mutability":"mutable","name":"p3","nameLocation":"62575:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62570:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12084,"name":"bool","nodeType":"ElementaryTypeName","src":"62570:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62527:51:20"},"returnParameters":{"id":12087,"nodeType":"ParameterList","parameters":[],"src":"62593:0:20"},"scope":12860,"src":"62515:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12122,"nodeType":"Block","src":"62789:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":12114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62839:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":12115,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"62878:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12116,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12104,"src":"62882:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12117,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12106,"src":"62886:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12118,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12108,"src":"62890:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62815:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62819:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62815:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62815:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12111,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62799:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62799:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12121,"nodeType":"ExpressionStatement","src":"62799:95:20"}]},"id":12123,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62717:3:20","nodeType":"FunctionDefinition","parameters":{"id":12109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12102,"mutability":"mutable","name":"p0","nameLocation":"62729:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62721:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12101,"name":"address","nodeType":"ElementaryTypeName","src":"62721:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12104,"mutability":"mutable","name":"p1","nameLocation":"62747:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62733:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12103,"name":"string","nodeType":"ElementaryTypeName","src":"62733:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12106,"mutability":"mutable","name":"p2","nameLocation":"62759:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62751:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12105,"name":"address","nodeType":"ElementaryTypeName","src":"62751:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12108,"mutability":"mutable","name":"p3","nameLocation":"62771:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62763:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12107,"name":"address","nodeType":"ElementaryTypeName","src":"62763:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62720:54:20"},"returnParameters":{"id":12110,"nodeType":"ParameterList","parameters":[],"src":"62789:0:20"},"scope":12860,"src":"62708:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12145,"nodeType":"Block","src":"62979:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":12137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63029:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":12138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12125,"src":"63066:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12127,"src":"63070:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12140,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12129,"src":"63074:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12141,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"63078:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63005:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63009:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63005:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63005:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62989:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62989:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"62989:93:20"}]},"id":12146,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62916:3:20","nodeType":"FunctionDefinition","parameters":{"id":12132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12125,"mutability":"mutable","name":"p0","nameLocation":"62928:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62920:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12124,"name":"address","nodeType":"ElementaryTypeName","src":"62920:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12127,"mutability":"mutable","name":"p1","nameLocation":"62937:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62932:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12126,"name":"bool","nodeType":"ElementaryTypeName","src":"62932:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12129,"mutability":"mutable","name":"p2","nameLocation":"62949:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62941:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12128,"name":"uint256","nodeType":"ElementaryTypeName","src":"62941:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12131,"mutability":"mutable","name":"p3","nameLocation":"62961:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62953:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12130,"name":"uint256","nodeType":"ElementaryTypeName","src":"62953:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62919:45:20"},"returnParameters":{"id":12133,"nodeType":"ParameterList","parameters":[],"src":"62979:0:20"},"scope":12860,"src":"62907:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12168,"nodeType":"Block","src":"63173:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":12160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63223:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":12161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12148,"src":"63259:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12150,"src":"63263:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12152,"src":"63267:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12164,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12154,"src":"63271:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63199:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63203:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63199:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63199:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63183:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63183:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12167,"nodeType":"ExpressionStatement","src":"63183:92:20"}]},"id":12169,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63104:3:20","nodeType":"FunctionDefinition","parameters":{"id":12155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12148,"mutability":"mutable","name":"p0","nameLocation":"63116:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63108:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12147,"name":"address","nodeType":"ElementaryTypeName","src":"63108:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12150,"mutability":"mutable","name":"p1","nameLocation":"63125:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63120:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12149,"name":"bool","nodeType":"ElementaryTypeName","src":"63120:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12152,"mutability":"mutable","name":"p2","nameLocation":"63137:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63129:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12151,"name":"uint256","nodeType":"ElementaryTypeName","src":"63129:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12154,"mutability":"mutable","name":"p3","nameLocation":"63155:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63141:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12153,"name":"string","nodeType":"ElementaryTypeName","src":"63141:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63107:51:20"},"returnParameters":{"id":12156,"nodeType":"ParameterList","parameters":[],"src":"63173:0:20"},"scope":12860,"src":"63095:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12191,"nodeType":"Block","src":"63357:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":12183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63407:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":12184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12171,"src":"63441:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12173,"src":"63445:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"63449:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12187,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12177,"src":"63453:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63383:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63387:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63383:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63383:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63367:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63367:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12190,"nodeType":"ExpressionStatement","src":"63367:90:20"}]},"id":12192,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63297:3:20","nodeType":"FunctionDefinition","parameters":{"id":12178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12171,"mutability":"mutable","name":"p0","nameLocation":"63309:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63301:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12170,"name":"address","nodeType":"ElementaryTypeName","src":"63301:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12173,"mutability":"mutable","name":"p1","nameLocation":"63318:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63313:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12172,"name":"bool","nodeType":"ElementaryTypeName","src":"63313:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12175,"mutability":"mutable","name":"p2","nameLocation":"63330:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63322:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12174,"name":"uint256","nodeType":"ElementaryTypeName","src":"63322:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12177,"mutability":"mutable","name":"p3","nameLocation":"63339:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63334:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12176,"name":"bool","nodeType":"ElementaryTypeName","src":"63334:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63300:42:20"},"returnParameters":{"id":12179,"nodeType":"ParameterList","parameters":[],"src":"63357:0:20"},"scope":12860,"src":"63288:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12214,"nodeType":"Block","src":"63542:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":12206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63592:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":12207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12194,"src":"63629:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"63633:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12209,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"63637:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12210,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12200,"src":"63641:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63568:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63572:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63568:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63568:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63552:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63552:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12213,"nodeType":"ExpressionStatement","src":"63552:93:20"}]},"id":12215,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63479:3:20","nodeType":"FunctionDefinition","parameters":{"id":12201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12194,"mutability":"mutable","name":"p0","nameLocation":"63491:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63483:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12193,"name":"address","nodeType":"ElementaryTypeName","src":"63483:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12196,"mutability":"mutable","name":"p1","nameLocation":"63500:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63495:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12195,"name":"bool","nodeType":"ElementaryTypeName","src":"63495:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12198,"mutability":"mutable","name":"p2","nameLocation":"63512:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63504:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12197,"name":"uint256","nodeType":"ElementaryTypeName","src":"63504:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12200,"mutability":"mutable","name":"p3","nameLocation":"63524:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63516:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12199,"name":"address","nodeType":"ElementaryTypeName","src":"63516:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63482:45:20"},"returnParameters":{"id":12202,"nodeType":"ParameterList","parameters":[],"src":"63542:0:20"},"scope":12860,"src":"63470:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12237,"nodeType":"Block","src":"63736:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":12229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63786:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":12230,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"63822:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12231,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"63826:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12232,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"63830:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12233,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"63834:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63762:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63766:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63762:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63762:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12226,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63746:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63746:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"63746:92:20"}]},"id":12238,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63667:3:20","nodeType":"FunctionDefinition","parameters":{"id":12224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12217,"mutability":"mutable","name":"p0","nameLocation":"63679:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63671:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12216,"name":"address","nodeType":"ElementaryTypeName","src":"63671:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12219,"mutability":"mutable","name":"p1","nameLocation":"63688:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63683:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12218,"name":"bool","nodeType":"ElementaryTypeName","src":"63683:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12221,"mutability":"mutable","name":"p2","nameLocation":"63706:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63692:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12220,"name":"string","nodeType":"ElementaryTypeName","src":"63692:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12223,"mutability":"mutable","name":"p3","nameLocation":"63718:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63710:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12222,"name":"uint256","nodeType":"ElementaryTypeName","src":"63710:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63670:51:20"},"returnParameters":{"id":12225,"nodeType":"ParameterList","parameters":[],"src":"63736:0:20"},"scope":12860,"src":"63658:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12260,"nodeType":"Block","src":"63935:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":12252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63985:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":12253,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12240,"src":"64020:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12254,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"64024:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12255,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"64028:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12256,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"64032:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63961:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63965:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63961:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63961:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63945:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63945:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12259,"nodeType":"ExpressionStatement","src":"63945:91:20"}]},"id":12261,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63860:3:20","nodeType":"FunctionDefinition","parameters":{"id":12247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12240,"mutability":"mutable","name":"p0","nameLocation":"63872:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63864:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12239,"name":"address","nodeType":"ElementaryTypeName","src":"63864:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12242,"mutability":"mutable","name":"p1","nameLocation":"63881:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63876:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12241,"name":"bool","nodeType":"ElementaryTypeName","src":"63876:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12244,"mutability":"mutable","name":"p2","nameLocation":"63899:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63885:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12243,"name":"string","nodeType":"ElementaryTypeName","src":"63885:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12246,"mutability":"mutable","name":"p3","nameLocation":"63917:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63903:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12245,"name":"string","nodeType":"ElementaryTypeName","src":"63903:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63863:57:20"},"returnParameters":{"id":12248,"nodeType":"ParameterList","parameters":[],"src":"63935:0:20"},"scope":12860,"src":"63851:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12283,"nodeType":"Block","src":"64124:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":12275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64174:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":12276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12263,"src":"64207:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"64211:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12267,"src":"64215:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12279,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12269,"src":"64219:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64150:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64154:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64150:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64150:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64134:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64134:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12282,"nodeType":"ExpressionStatement","src":"64134:89:20"}]},"id":12284,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64058:3:20","nodeType":"FunctionDefinition","parameters":{"id":12270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12263,"mutability":"mutable","name":"p0","nameLocation":"64070:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64062:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12262,"name":"address","nodeType":"ElementaryTypeName","src":"64062:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12265,"mutability":"mutable","name":"p1","nameLocation":"64079:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64074:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12264,"name":"bool","nodeType":"ElementaryTypeName","src":"64074:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12267,"mutability":"mutable","name":"p2","nameLocation":"64097:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64083:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12266,"name":"string","nodeType":"ElementaryTypeName","src":"64083:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12269,"mutability":"mutable","name":"p3","nameLocation":"64106:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64101:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12268,"name":"bool","nodeType":"ElementaryTypeName","src":"64101:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64061:48:20"},"returnParameters":{"id":12271,"nodeType":"ParameterList","parameters":[],"src":"64124:0:20"},"scope":12860,"src":"64049:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12306,"nodeType":"Block","src":"64314:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":12298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64364:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":12299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12286,"src":"64400:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12288,"src":"64404:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12290,"src":"64408:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12302,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12292,"src":"64412:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64340:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64344:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64340:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64340:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64324:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64324:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12305,"nodeType":"ExpressionStatement","src":"64324:92:20"}]},"id":12307,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64245:3:20","nodeType":"FunctionDefinition","parameters":{"id":12293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12286,"mutability":"mutable","name":"p0","nameLocation":"64257:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64249:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12285,"name":"address","nodeType":"ElementaryTypeName","src":"64249:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12288,"mutability":"mutable","name":"p1","nameLocation":"64266:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64261:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12287,"name":"bool","nodeType":"ElementaryTypeName","src":"64261:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12290,"mutability":"mutable","name":"p2","nameLocation":"64284:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64270:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12289,"name":"string","nodeType":"ElementaryTypeName","src":"64270:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12292,"mutability":"mutable","name":"p3","nameLocation":"64296:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64288:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12291,"name":"address","nodeType":"ElementaryTypeName","src":"64288:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64248:51:20"},"returnParameters":{"id":12294,"nodeType":"ParameterList","parameters":[],"src":"64314:0:20"},"scope":12860,"src":"64236:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12329,"nodeType":"Block","src":"64498:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":12321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64548:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":12322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"64582:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12323,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"64586:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12324,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12313,"src":"64590:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12325,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12315,"src":"64594:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64524:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64528:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64524:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64524:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12318,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64508:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64508:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12328,"nodeType":"ExpressionStatement","src":"64508:90:20"}]},"id":12330,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64438:3:20","nodeType":"FunctionDefinition","parameters":{"id":12316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12309,"mutability":"mutable","name":"p0","nameLocation":"64450:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64442:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12308,"name":"address","nodeType":"ElementaryTypeName","src":"64442:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12311,"mutability":"mutable","name":"p1","nameLocation":"64459:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64454:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12310,"name":"bool","nodeType":"ElementaryTypeName","src":"64454:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12313,"mutability":"mutable","name":"p2","nameLocation":"64468:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64463:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12312,"name":"bool","nodeType":"ElementaryTypeName","src":"64463:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12315,"mutability":"mutable","name":"p3","nameLocation":"64480:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64472:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12314,"name":"uint256","nodeType":"ElementaryTypeName","src":"64472:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64441:42:20"},"returnParameters":{"id":12317,"nodeType":"ParameterList","parameters":[],"src":"64498:0:20"},"scope":12860,"src":"64429:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12352,"nodeType":"Block","src":"64686:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":12344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64736:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":12345,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12332,"src":"64769:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12346,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12334,"src":"64773:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12347,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12336,"src":"64777:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12348,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"64781:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64712:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64716:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64712:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64712:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64696:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64696:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12351,"nodeType":"ExpressionStatement","src":"64696:89:20"}]},"id":12353,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64620:3:20","nodeType":"FunctionDefinition","parameters":{"id":12339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12332,"mutability":"mutable","name":"p0","nameLocation":"64632:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64624:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12331,"name":"address","nodeType":"ElementaryTypeName","src":"64624:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12334,"mutability":"mutable","name":"p1","nameLocation":"64641:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64636:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12333,"name":"bool","nodeType":"ElementaryTypeName","src":"64636:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12336,"mutability":"mutable","name":"p2","nameLocation":"64650:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64645:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12335,"name":"bool","nodeType":"ElementaryTypeName","src":"64645:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12338,"mutability":"mutable","name":"p3","nameLocation":"64668:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64654:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12337,"name":"string","nodeType":"ElementaryTypeName","src":"64654:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64623:48:20"},"returnParameters":{"id":12340,"nodeType":"ParameterList","parameters":[],"src":"64686:0:20"},"scope":12860,"src":"64611:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12375,"nodeType":"Block","src":"64864:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":12367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64914:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":12368,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12355,"src":"64945:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12369,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12357,"src":"64949:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12370,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"64953:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12371,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12361,"src":"64957:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64890:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64894:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64890:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64890:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12364,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64874:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64874:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12374,"nodeType":"ExpressionStatement","src":"64874:87:20"}]},"id":12376,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64807:3:20","nodeType":"FunctionDefinition","parameters":{"id":12362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12355,"mutability":"mutable","name":"p0","nameLocation":"64819:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64811:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12354,"name":"address","nodeType":"ElementaryTypeName","src":"64811:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12357,"mutability":"mutable","name":"p1","nameLocation":"64828:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64823:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12356,"name":"bool","nodeType":"ElementaryTypeName","src":"64823:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12359,"mutability":"mutable","name":"p2","nameLocation":"64837:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64832:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12358,"name":"bool","nodeType":"ElementaryTypeName","src":"64832:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12361,"mutability":"mutable","name":"p3","nameLocation":"64846:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64841:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12360,"name":"bool","nodeType":"ElementaryTypeName","src":"64841:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64810:39:20"},"returnParameters":{"id":12363,"nodeType":"ParameterList","parameters":[],"src":"64864:0:20"},"scope":12860,"src":"64798:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12398,"nodeType":"Block","src":"65043:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":12390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65093:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":12391,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"65127:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12392,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"65131:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12393,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"65135:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12394,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12384,"src":"65139:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65069:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65073:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65069:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65069:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12387,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65053:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65053:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12397,"nodeType":"ExpressionStatement","src":"65053:90:20"}]},"id":12399,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64983:3:20","nodeType":"FunctionDefinition","parameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12378,"mutability":"mutable","name":"p0","nameLocation":"64995:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"64987:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12377,"name":"address","nodeType":"ElementaryTypeName","src":"64987:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12380,"mutability":"mutable","name":"p1","nameLocation":"65004:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"64999:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12379,"name":"bool","nodeType":"ElementaryTypeName","src":"64999:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12382,"mutability":"mutable","name":"p2","nameLocation":"65013:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"65008:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12381,"name":"bool","nodeType":"ElementaryTypeName","src":"65008:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12384,"mutability":"mutable","name":"p3","nameLocation":"65025:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"65017:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12383,"name":"address","nodeType":"ElementaryTypeName","src":"65017:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64986:42:20"},"returnParameters":{"id":12386,"nodeType":"ParameterList","parameters":[],"src":"65043:0:20"},"scope":12860,"src":"64974:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12421,"nodeType":"Block","src":"65228:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":12413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65278:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":12414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12401,"src":"65315:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12415,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"65319:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12416,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12405,"src":"65323:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12417,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"65327:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65254:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65258:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65254:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65254:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65238:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65238:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"65238:93:20"}]},"id":12422,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65165:3:20","nodeType":"FunctionDefinition","parameters":{"id":12408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12401,"mutability":"mutable","name":"p0","nameLocation":"65177:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65169:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12400,"name":"address","nodeType":"ElementaryTypeName","src":"65169:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12403,"mutability":"mutable","name":"p1","nameLocation":"65186:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65181:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12402,"name":"bool","nodeType":"ElementaryTypeName","src":"65181:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12405,"mutability":"mutable","name":"p2","nameLocation":"65198:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65190:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12404,"name":"address","nodeType":"ElementaryTypeName","src":"65190:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12407,"mutability":"mutable","name":"p3","nameLocation":"65210:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65202:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12406,"name":"uint256","nodeType":"ElementaryTypeName","src":"65202:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65168:45:20"},"returnParameters":{"id":12409,"nodeType":"ParameterList","parameters":[],"src":"65228:0:20"},"scope":12860,"src":"65156:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12444,"nodeType":"Block","src":"65422:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":12436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65472:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":12437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"65508:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12438,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"65512:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12439,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12428,"src":"65516:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12440,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"65520:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65448:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65452:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65448:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65448:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65432:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65432:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12443,"nodeType":"ExpressionStatement","src":"65432:92:20"}]},"id":12445,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65353:3:20","nodeType":"FunctionDefinition","parameters":{"id":12431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12424,"mutability":"mutable","name":"p0","nameLocation":"65365:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65357:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12423,"name":"address","nodeType":"ElementaryTypeName","src":"65357:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12426,"mutability":"mutable","name":"p1","nameLocation":"65374:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65369:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12425,"name":"bool","nodeType":"ElementaryTypeName","src":"65369:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12428,"mutability":"mutable","name":"p2","nameLocation":"65386:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65378:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12427,"name":"address","nodeType":"ElementaryTypeName","src":"65378:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12430,"mutability":"mutable","name":"p3","nameLocation":"65404:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65390:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12429,"name":"string","nodeType":"ElementaryTypeName","src":"65390:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65356:51:20"},"returnParameters":{"id":12432,"nodeType":"ParameterList","parameters":[],"src":"65422:0:20"},"scope":12860,"src":"65344:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12467,"nodeType":"Block","src":"65606:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":12459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65656:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":12460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"65690:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"65694:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"65698:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12463,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12453,"src":"65702:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65632:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65636:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65632:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65632:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65616:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65616:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12466,"nodeType":"ExpressionStatement","src":"65616:90:20"}]},"id":12468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65546:3:20","nodeType":"FunctionDefinition","parameters":{"id":12454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12447,"mutability":"mutable","name":"p0","nameLocation":"65558:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65550:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12446,"name":"address","nodeType":"ElementaryTypeName","src":"65550:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12449,"mutability":"mutable","name":"p1","nameLocation":"65567:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65562:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12448,"name":"bool","nodeType":"ElementaryTypeName","src":"65562:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"p2","nameLocation":"65579:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65571:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12450,"name":"address","nodeType":"ElementaryTypeName","src":"65571:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12453,"mutability":"mutable","name":"p3","nameLocation":"65588:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65583:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12452,"name":"bool","nodeType":"ElementaryTypeName","src":"65583:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65549:42:20"},"returnParameters":{"id":12455,"nodeType":"ParameterList","parameters":[],"src":"65606:0:20"},"scope":12860,"src":"65537:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12490,"nodeType":"Block","src":"65791:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":12482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65841:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":12483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"65878:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"65882:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"65886:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12486,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"65890:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65817:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65821:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65817:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65817:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65801:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65801:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12489,"nodeType":"ExpressionStatement","src":"65801:93:20"}]},"id":12491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65728:3:20","nodeType":"FunctionDefinition","parameters":{"id":12477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12470,"mutability":"mutable","name":"p0","nameLocation":"65740:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65732:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12469,"name":"address","nodeType":"ElementaryTypeName","src":"65732:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12472,"mutability":"mutable","name":"p1","nameLocation":"65749:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12471,"name":"bool","nodeType":"ElementaryTypeName","src":"65744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12474,"mutability":"mutable","name":"p2","nameLocation":"65761:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65753:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12473,"name":"address","nodeType":"ElementaryTypeName","src":"65753:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12476,"mutability":"mutable","name":"p3","nameLocation":"65773:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65765:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12475,"name":"address","nodeType":"ElementaryTypeName","src":"65765:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65731:45:20"},"returnParameters":{"id":12478,"nodeType":"ParameterList","parameters":[],"src":"65791:0:20"},"scope":12860,"src":"65719:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12513,"nodeType":"Block","src":"65982:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":12505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66032:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":12506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12493,"src":"66072:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"66076:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12497,"src":"66080:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12509,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12499,"src":"66084:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66008:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66012:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66008:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66008:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65992:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65992:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12512,"nodeType":"ExpressionStatement","src":"65992:96:20"}]},"id":12514,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65916:3:20","nodeType":"FunctionDefinition","parameters":{"id":12500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12493,"mutability":"mutable","name":"p0","nameLocation":"65928:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65920:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12492,"name":"address","nodeType":"ElementaryTypeName","src":"65920:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12495,"mutability":"mutable","name":"p1","nameLocation":"65940:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65932:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12494,"name":"address","nodeType":"ElementaryTypeName","src":"65932:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12497,"mutability":"mutable","name":"p2","nameLocation":"65952:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65944:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12496,"name":"uint256","nodeType":"ElementaryTypeName","src":"65944:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12499,"mutability":"mutable","name":"p3","nameLocation":"65964:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65956:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12498,"name":"uint256","nodeType":"ElementaryTypeName","src":"65956:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65919:48:20"},"returnParameters":{"id":12501,"nodeType":"ParameterList","parameters":[],"src":"65982:0:20"},"scope":12860,"src":"65907:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12536,"nodeType":"Block","src":"66182:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":12528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66232:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":12529,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12516,"src":"66271:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12530,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"66275:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12531,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"66279:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12532,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12522,"src":"66283:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12526,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66208:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66212:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66208:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66208:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12525,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66192:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66192:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12535,"nodeType":"ExpressionStatement","src":"66192:95:20"}]},"id":12537,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66110:3:20","nodeType":"FunctionDefinition","parameters":{"id":12523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12516,"mutability":"mutable","name":"p0","nameLocation":"66122:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66114:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12515,"name":"address","nodeType":"ElementaryTypeName","src":"66114:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12518,"mutability":"mutable","name":"p1","nameLocation":"66134:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66126:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"66126:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"p2","nameLocation":"66146:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66138:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"66138:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12522,"mutability":"mutable","name":"p3","nameLocation":"66164:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66150:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12521,"name":"string","nodeType":"ElementaryTypeName","src":"66150:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66113:54:20"},"returnParameters":{"id":12524,"nodeType":"ParameterList","parameters":[],"src":"66182:0:20"},"scope":12860,"src":"66101:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12559,"nodeType":"Block","src":"66372:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":12551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66422:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":12552,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12539,"src":"66459:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12553,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"66463:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12554,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"66467:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12555,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"66471:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66398:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66402:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66398:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66398:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12548,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66382:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66382:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12558,"nodeType":"ExpressionStatement","src":"66382:93:20"}]},"id":12560,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66309:3:20","nodeType":"FunctionDefinition","parameters":{"id":12546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12539,"mutability":"mutable","name":"p0","nameLocation":"66321:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66313:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12538,"name":"address","nodeType":"ElementaryTypeName","src":"66313:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12541,"mutability":"mutable","name":"p1","nameLocation":"66333:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66325:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12540,"name":"address","nodeType":"ElementaryTypeName","src":"66325:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12543,"mutability":"mutable","name":"p2","nameLocation":"66345:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66337:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12542,"name":"uint256","nodeType":"ElementaryTypeName","src":"66337:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12545,"mutability":"mutable","name":"p3","nameLocation":"66354:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66349:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12544,"name":"bool","nodeType":"ElementaryTypeName","src":"66349:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66312:45:20"},"returnParameters":{"id":12547,"nodeType":"ParameterList","parameters":[],"src":"66372:0:20"},"scope":12860,"src":"66300:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12582,"nodeType":"Block","src":"66563:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":12574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66613:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":12575,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12562,"src":"66653:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12564,"src":"66657:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12577,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12566,"src":"66661:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12578,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12568,"src":"66665:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66589:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66593:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66589:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66589:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66573:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66573:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12581,"nodeType":"ExpressionStatement","src":"66573:96:20"}]},"id":12583,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66497:3:20","nodeType":"FunctionDefinition","parameters":{"id":12569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12562,"mutability":"mutable","name":"p0","nameLocation":"66509:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66501:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12561,"name":"address","nodeType":"ElementaryTypeName","src":"66501:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12564,"mutability":"mutable","name":"p1","nameLocation":"66521:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66513:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12563,"name":"address","nodeType":"ElementaryTypeName","src":"66513:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12566,"mutability":"mutable","name":"p2","nameLocation":"66533:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66525:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12565,"name":"uint256","nodeType":"ElementaryTypeName","src":"66525:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12568,"mutability":"mutable","name":"p3","nameLocation":"66545:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66537:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12567,"name":"address","nodeType":"ElementaryTypeName","src":"66537:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66500:48:20"},"returnParameters":{"id":12570,"nodeType":"ParameterList","parameters":[],"src":"66563:0:20"},"scope":12860,"src":"66488:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12605,"nodeType":"Block","src":"66763:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":12597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66813:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":12598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12585,"src":"66852:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12599,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12587,"src":"66856:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"66860:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12601,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12591,"src":"66864:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66789:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66793:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66789:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66789:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66773:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66773:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12604,"nodeType":"ExpressionStatement","src":"66773:95:20"}]},"id":12606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66691:3:20","nodeType":"FunctionDefinition","parameters":{"id":12592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12585,"mutability":"mutable","name":"p0","nameLocation":"66703:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66695:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12584,"name":"address","nodeType":"ElementaryTypeName","src":"66695:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12587,"mutability":"mutable","name":"p1","nameLocation":"66715:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66707:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12586,"name":"address","nodeType":"ElementaryTypeName","src":"66707:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12589,"mutability":"mutable","name":"p2","nameLocation":"66733:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66719:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12588,"name":"string","nodeType":"ElementaryTypeName","src":"66719:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12591,"mutability":"mutable","name":"p3","nameLocation":"66745:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66737:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12590,"name":"uint256","nodeType":"ElementaryTypeName","src":"66737:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66694:54:20"},"returnParameters":{"id":12593,"nodeType":"ParameterList","parameters":[],"src":"66763:0:20"},"scope":12860,"src":"66682:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12628,"nodeType":"Block","src":"66968:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":12620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67018:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":12621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12608,"src":"67056:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12610,"src":"67060:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12612,"src":"67064:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12624,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12614,"src":"67068:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66994:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66998:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66994:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66994:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66978:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66978:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12627,"nodeType":"ExpressionStatement","src":"66978:94:20"}]},"id":12629,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66890:3:20","nodeType":"FunctionDefinition","parameters":{"id":12615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12608,"mutability":"mutable","name":"p0","nameLocation":"66902:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66894:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12607,"name":"address","nodeType":"ElementaryTypeName","src":"66894:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12610,"mutability":"mutable","name":"p1","nameLocation":"66914:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66906:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12609,"name":"address","nodeType":"ElementaryTypeName","src":"66906:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12612,"mutability":"mutable","name":"p2","nameLocation":"66932:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66918:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12611,"name":"string","nodeType":"ElementaryTypeName","src":"66918:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12614,"mutability":"mutable","name":"p3","nameLocation":"66950:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66936:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12613,"name":"string","nodeType":"ElementaryTypeName","src":"66936:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66893:60:20"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"66968:0:20"},"scope":12860,"src":"66881:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12651,"nodeType":"Block","src":"67163:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":12643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67213:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":12644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12631,"src":"67249:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12633,"src":"67253:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"67257:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12647,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12637,"src":"67261:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67189:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67193:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67189:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67189:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67173:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67173:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12650,"nodeType":"ExpressionStatement","src":"67173:92:20"}]},"id":12652,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67094:3:20","nodeType":"FunctionDefinition","parameters":{"id":12638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"p0","nameLocation":"67106:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67098:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12630,"name":"address","nodeType":"ElementaryTypeName","src":"67098:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12633,"mutability":"mutable","name":"p1","nameLocation":"67118:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67110:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12632,"name":"address","nodeType":"ElementaryTypeName","src":"67110:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12635,"mutability":"mutable","name":"p2","nameLocation":"67136:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67122:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12634,"name":"string","nodeType":"ElementaryTypeName","src":"67122:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12637,"mutability":"mutable","name":"p3","nameLocation":"67145:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67140:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12636,"name":"bool","nodeType":"ElementaryTypeName","src":"67140:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67097:51:20"},"returnParameters":{"id":12639,"nodeType":"ParameterList","parameters":[],"src":"67163:0:20"},"scope":12860,"src":"67085:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12674,"nodeType":"Block","src":"67359:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":12666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67409:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":12667,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12654,"src":"67448:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12668,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"67452:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12669,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"67456:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12670,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"67460:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67385:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67389:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67385:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67385:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12663,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67369:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67369:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12673,"nodeType":"ExpressionStatement","src":"67369:95:20"}]},"id":12675,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67287:3:20","nodeType":"FunctionDefinition","parameters":{"id":12661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"p0","nameLocation":"67299:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67291:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12653,"name":"address","nodeType":"ElementaryTypeName","src":"67291:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12656,"mutability":"mutable","name":"p1","nameLocation":"67311:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67303:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12655,"name":"address","nodeType":"ElementaryTypeName","src":"67303:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12658,"mutability":"mutable","name":"p2","nameLocation":"67329:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67315:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12657,"name":"string","nodeType":"ElementaryTypeName","src":"67315:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12660,"mutability":"mutable","name":"p3","nameLocation":"67341:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67333:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12659,"name":"address","nodeType":"ElementaryTypeName","src":"67333:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67290:54:20"},"returnParameters":{"id":12662,"nodeType":"ParameterList","parameters":[],"src":"67359:0:20"},"scope":12860,"src":"67278:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12697,"nodeType":"Block","src":"67549:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":12689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67599:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":12690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"67636:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12691,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"67640:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12692,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"67644:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12693,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12683,"src":"67648:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67575:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67579:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67575:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67575:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67559:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67559:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12696,"nodeType":"ExpressionStatement","src":"67559:93:20"}]},"id":12698,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67486:3:20","nodeType":"FunctionDefinition","parameters":{"id":12684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"p0","nameLocation":"67498:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67490:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12676,"name":"address","nodeType":"ElementaryTypeName","src":"67490:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12679,"mutability":"mutable","name":"p1","nameLocation":"67510:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67502:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12678,"name":"address","nodeType":"ElementaryTypeName","src":"67502:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12681,"mutability":"mutable","name":"p2","nameLocation":"67519:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67514:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12680,"name":"bool","nodeType":"ElementaryTypeName","src":"67514:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12683,"mutability":"mutable","name":"p3","nameLocation":"67531:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67523:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12682,"name":"uint256","nodeType":"ElementaryTypeName","src":"67523:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67489:45:20"},"returnParameters":{"id":12685,"nodeType":"ParameterList","parameters":[],"src":"67549:0:20"},"scope":12860,"src":"67477:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12720,"nodeType":"Block","src":"67743:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":12712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67793:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":12713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12700,"src":"67829:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12714,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12702,"src":"67833:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12715,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"67837:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12716,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12706,"src":"67841:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67769:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67773:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67769:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67769:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67753:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67753:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12719,"nodeType":"ExpressionStatement","src":"67753:92:20"}]},"id":12721,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67674:3:20","nodeType":"FunctionDefinition","parameters":{"id":12707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12700,"mutability":"mutable","name":"p0","nameLocation":"67686:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67678:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12699,"name":"address","nodeType":"ElementaryTypeName","src":"67678:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12702,"mutability":"mutable","name":"p1","nameLocation":"67698:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67690:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12701,"name":"address","nodeType":"ElementaryTypeName","src":"67690:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12704,"mutability":"mutable","name":"p2","nameLocation":"67707:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67702:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12703,"name":"bool","nodeType":"ElementaryTypeName","src":"67702:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12706,"mutability":"mutable","name":"p3","nameLocation":"67725:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67711:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12705,"name":"string","nodeType":"ElementaryTypeName","src":"67711:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67677:51:20"},"returnParameters":{"id":12708,"nodeType":"ParameterList","parameters":[],"src":"67743:0:20"},"scope":12860,"src":"67665:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12743,"nodeType":"Block","src":"67927:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":12735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67977:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":12736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"68011:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12725,"src":"68015:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"68019:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12739,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"68023:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67953:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67957:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67953:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67953:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67937:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67937:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12742,"nodeType":"ExpressionStatement","src":"67937:90:20"}]},"id":12744,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67867:3:20","nodeType":"FunctionDefinition","parameters":{"id":12730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12723,"mutability":"mutable","name":"p0","nameLocation":"67879:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67871:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12722,"name":"address","nodeType":"ElementaryTypeName","src":"67871:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12725,"mutability":"mutable","name":"p1","nameLocation":"67891:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67883:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12724,"name":"address","nodeType":"ElementaryTypeName","src":"67883:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12727,"mutability":"mutable","name":"p2","nameLocation":"67900:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67895:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12726,"name":"bool","nodeType":"ElementaryTypeName","src":"67895:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12729,"mutability":"mutable","name":"p3","nameLocation":"67909:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67904:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12728,"name":"bool","nodeType":"ElementaryTypeName","src":"67904:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67870:42:20"},"returnParameters":{"id":12731,"nodeType":"ParameterList","parameters":[],"src":"67927:0:20"},"scope":12860,"src":"67858:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12766,"nodeType":"Block","src":"68112:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":12758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68162:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":12759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12746,"src":"68199:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12748,"src":"68203:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12750,"src":"68207:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12762,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12752,"src":"68211:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68138:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68142:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68138:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68138:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68122:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68122:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12765,"nodeType":"ExpressionStatement","src":"68122:93:20"}]},"id":12767,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68049:3:20","nodeType":"FunctionDefinition","parameters":{"id":12753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12746,"mutability":"mutable","name":"p0","nameLocation":"68061:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68053:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12745,"name":"address","nodeType":"ElementaryTypeName","src":"68053:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12748,"mutability":"mutable","name":"p1","nameLocation":"68073:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68065:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12747,"name":"address","nodeType":"ElementaryTypeName","src":"68065:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12750,"mutability":"mutable","name":"p2","nameLocation":"68082:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68077:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12749,"name":"bool","nodeType":"ElementaryTypeName","src":"68077:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12752,"mutability":"mutable","name":"p3","nameLocation":"68094:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12751,"name":"address","nodeType":"ElementaryTypeName","src":"68086:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68052:45:20"},"returnParameters":{"id":12754,"nodeType":"ParameterList","parameters":[],"src":"68112:0:20"},"scope":12860,"src":"68040:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12789,"nodeType":"Block","src":"68303:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":12781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68353:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":12782,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12769,"src":"68393:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12783,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12771,"src":"68397:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12784,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12773,"src":"68401:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12785,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12775,"src":"68405:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68329:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68333:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68329:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68329:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12778,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68313:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68313:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12788,"nodeType":"ExpressionStatement","src":"68313:96:20"}]},"id":12790,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68237:3:20","nodeType":"FunctionDefinition","parameters":{"id":12776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12769,"mutability":"mutable","name":"p0","nameLocation":"68249:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68241:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12768,"name":"address","nodeType":"ElementaryTypeName","src":"68241:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12771,"mutability":"mutable","name":"p1","nameLocation":"68261:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68253:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12770,"name":"address","nodeType":"ElementaryTypeName","src":"68253:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12773,"mutability":"mutable","name":"p2","nameLocation":"68273:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68265:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12772,"name":"address","nodeType":"ElementaryTypeName","src":"68265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12775,"mutability":"mutable","name":"p3","nameLocation":"68285:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68277:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12774,"name":"uint256","nodeType":"ElementaryTypeName","src":"68277:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68240:48:20"},"returnParameters":{"id":12777,"nodeType":"ParameterList","parameters":[],"src":"68303:0:20"},"scope":12860,"src":"68228:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12812,"nodeType":"Block","src":"68503:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":12804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68553:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":12805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"68592:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12806,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12794,"src":"68596:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12807,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12796,"src":"68600:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12808,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12798,"src":"68604:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68529:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68533:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68529:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68529:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68513:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68513:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12811,"nodeType":"ExpressionStatement","src":"68513:95:20"}]},"id":12813,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68431:3:20","nodeType":"FunctionDefinition","parameters":{"id":12799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12792,"mutability":"mutable","name":"p0","nameLocation":"68443:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68435:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12791,"name":"address","nodeType":"ElementaryTypeName","src":"68435:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12794,"mutability":"mutable","name":"p1","nameLocation":"68455:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68447:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12793,"name":"address","nodeType":"ElementaryTypeName","src":"68447:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12796,"mutability":"mutable","name":"p2","nameLocation":"68467:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68459:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12795,"name":"address","nodeType":"ElementaryTypeName","src":"68459:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12798,"mutability":"mutable","name":"p3","nameLocation":"68485:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68471:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12797,"name":"string","nodeType":"ElementaryTypeName","src":"68471:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68434:54:20"},"returnParameters":{"id":12800,"nodeType":"ParameterList","parameters":[],"src":"68503:0:20"},"scope":12860,"src":"68422:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12835,"nodeType":"Block","src":"68693:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":12827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68743:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":12828,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12815,"src":"68780:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12829,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12817,"src":"68784:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12830,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12819,"src":"68788:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12831,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12821,"src":"68792:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68719:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68723:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68719:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68719:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12824,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68703:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68703:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12834,"nodeType":"ExpressionStatement","src":"68703:93:20"}]},"id":12836,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68630:3:20","nodeType":"FunctionDefinition","parameters":{"id":12822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12815,"mutability":"mutable","name":"p0","nameLocation":"68642:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68634:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12814,"name":"address","nodeType":"ElementaryTypeName","src":"68634:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12817,"mutability":"mutable","name":"p1","nameLocation":"68654:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12816,"name":"address","nodeType":"ElementaryTypeName","src":"68646:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12819,"mutability":"mutable","name":"p2","nameLocation":"68666:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68658:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12818,"name":"address","nodeType":"ElementaryTypeName","src":"68658:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12821,"mutability":"mutable","name":"p3","nameLocation":"68675:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68670:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12820,"name":"bool","nodeType":"ElementaryTypeName","src":"68670:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68633:45:20"},"returnParameters":{"id":12823,"nodeType":"ParameterList","parameters":[],"src":"68693:0:20"},"scope":12860,"src":"68621:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12858,"nodeType":"Block","src":"68884:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":12850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68934:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":12851,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12838,"src":"68974:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12852,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12840,"src":"68978:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12853,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12842,"src":"68982:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12854,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12844,"src":"68986:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68910:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68914:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68910:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68910:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12847,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68894:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68894:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12857,"nodeType":"ExpressionStatement","src":"68894:96:20"}]},"id":12859,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68818:3:20","nodeType":"FunctionDefinition","parameters":{"id":12845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12838,"mutability":"mutable","name":"p0","nameLocation":"68830:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68822:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12837,"name":"address","nodeType":"ElementaryTypeName","src":"68822:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12840,"mutability":"mutable","name":"p1","nameLocation":"68842:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68834:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12839,"name":"address","nodeType":"ElementaryTypeName","src":"68834:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12842,"mutability":"mutable","name":"p2","nameLocation":"68854:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68846:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12841,"name":"address","nodeType":"ElementaryTypeName","src":"68846:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12844,"mutability":"mutable","name":"p3","nameLocation":"68866:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68858:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12843,"name":"address","nodeType":"ElementaryTypeName","src":"68858:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68821:48:20"},"returnParameters":{"id":12846,"nodeType":"ParameterList","parameters":[],"src":"68884:0:20"},"scope":12860,"src":"68809:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12861,"src":"66:68934:20","usedErrors":[],"usedEvents":[]}],"src":"32:68969:20"},"id":20}},"contracts":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"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 proxied contracts do not make use of 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. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` 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 prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ERC20Burnable":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]}},\"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.20+commit.a1b79de6\"},\"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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Create2.sol":{"Create2":{"abi":[{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"Create2FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"Create2InsufficientBalance","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 PUSH9 0xE7E9279FF64B09F601 SLOAD DUP5 0x2E PUSH18 0x6F7A61CC445F390EC702821D0B55366E14DC PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"495:3877:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;495:3877:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0xE7E9279FF64B09F601 SLOAD DUP5 0x2E PUSH18 0x6F7A61CC445F390EC702821D0B55366E14DC PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"495:3877:7:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"Create2InsufficientBalance\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Helper to make usage of the `CREATE2` EVM opcode easier and safer. `CREATE2` can be used to compute in advance the address where a smart contract will be deployed, which allows for interesting new mechanisms known as 'counterfactual interactions'. See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more information.\",\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"Create2FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"Create2InsufficientBalance(uint256,uint256)\":[{\"details\":\"Not enough balance for performing a CREATE2 deploy.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Create2.sol\":\"Create2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"MessageHashUtils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3235:10;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:10:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 CALLVALUE PUSH4 0xDEBBF13F 0xB8 EXTCODEHASH LOG3 PUSH24 0xD5AEE496BEF03D76CF5DA25C1D00D7810C1A5D8A2C296473 PUSH16 0x6C634300081400330000000000000000 ","sourceMap":"1330:11640:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1330:11640:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLVALUE PUSH4 0xDEBBF13F 0xB8 EXTCODEHASH LOG3 PUSH24 0xD5AEE496BEF03D76CF5DA25C1D00D7810C1A5D8A2C296473 PUSH16 0x6C634300081400330000000000000000 ","sourceMap":"1330:11640:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ```solidity contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}"}},"contracts/Bridged.sol":{"Bridged":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"dispatched","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract Relayer","name":"relayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"queried","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"dispatched(address,bytes)":"5d903f03","initialize(address)":"c4d66de8","queried(address,bytes)":"82dcc731"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"dispatched\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Relayer\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"queried\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridged.sol\":\"Bridged\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/Collector.sol":{"Collector":{"abi":[{"inputs":[{"internalType":"contract ValidatorManager","name":"_validatorManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Echoed","type":"event"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"echo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3779":{"entryPoint":null,"id":3779,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:331:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"120:209:21","statements":[{"body":{"nodeType":"YulBlock","src":"166:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"175:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"178:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"168:6:21"},"nodeType":"YulFunctionCall","src":"168:12:21"},"nodeType":"YulExpressionStatement","src":"168:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"141:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"150:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"137:3:21"},"nodeType":"YulFunctionCall","src":"137:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"162:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"133:3:21"},"nodeType":"YulFunctionCall","src":"133:32:21"},"nodeType":"YulIf","src":"130:52:21"},{"nodeType":"YulVariableDeclaration","src":"191:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"210:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"204:5:21"},"nodeType":"YulFunctionCall","src":"204:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"195:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"283:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"292:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"285:6:21"},"nodeType":"YulFunctionCall","src":"285:12:21"},"nodeType":"YulExpressionStatement","src":"285:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"242:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"273:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"264:3:21"},"nodeType":"YulFunctionCall","src":"264:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"260:3:21"},"nodeType":"YulFunctionCall","src":"260:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"249:3:21"},"nodeType":"YulFunctionCall","src":"249:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"239:2:21"},"nodeType":"YulFunctionCall","src":"239:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:50:21"},"nodeType":"YulIf","src":"229:70:21"},{"nodeType":"YulAssignment","src":"308:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"318:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"308:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"86:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"97:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"109:6:21","type":""}],"src":"14:315:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161037338038061037383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102e0806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x373 CODESIZE SUB DUP1 PUSH2 0x373 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2E0 DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x274B9F10 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x14C JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x199ED7C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x333DAF92 SWAP1 PUSH2 0x77 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x24D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x26E JUMP JUMPDEST PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x2BB937B733903B30B634B230BA37B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH32 0x84259FBF8A54ADFE7CE845EEE74785AACEDCF222BDEB9F31672EB2A429D453E0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1A4 JUMPI PUSH2 0x1A4 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1CC JUMPI PUSH2 0x1CC PUSH2 0x136 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x22D JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x211 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x266 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x207 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x290 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x207 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0xE 0xD7 PUSH12 0x9B397A7DDDFB203452FB71D9 0xF DUP12 PUSH16 0xCAD5E57C5D3589686E12FD75E164736F PUSH13 0x63430008140033000000000000 ","sourceMap":"106:466:15:-:0;;;236:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;294:16;:36;;-1:-1:-1;;;;;;294:36:15;-1:-1:-1;;;;;294:36:15;;;;;;;;;;106:466;;14:315:21;109:6;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:21;;239:42;;229:70;;295:1;292;285:12;229:70;318:5;14:315;-1:-1:-1;;;14:315:21:o;:::-;106:466:15;;;;;;"},"deployedBytecode":{"functionDebugData":{"@echo_3801":{"entryPoint":69,"id":3801,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":622,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_bytes_memory_ptr":{"entryPoint":332,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_bytes":{"entryPoint":519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":589,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":310,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2705:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"242:893:21","statements":[{"body":{"nodeType":"YulBlock","src":"288:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"297:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"300:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"290:6:21"},"nodeType":"YulFunctionCall","src":"290:12:21"},"nodeType":"YulExpressionStatement","src":"290:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"263:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"272:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"259:3:21"},"nodeType":"YulFunctionCall","src":"259:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"284:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"255:3:21"},"nodeType":"YulFunctionCall","src":"255:32:21"},"nodeType":"YulIf","src":"252:52:21"},{"nodeType":"YulAssignment","src":"313:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"336:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"323:12:21"},"nodeType":"YulFunctionCall","src":"323:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"313:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"355:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"386:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"397:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"382:3:21"},"nodeType":"YulFunctionCall","src":"382:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"369:12:21"},"nodeType":"YulFunctionCall","src":"369:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"359:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"410:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"420:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"414:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"465:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"477:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"467:6:21"},"nodeType":"YulFunctionCall","src":"467:12:21"},"nodeType":"YulExpressionStatement","src":"467:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"453:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"461:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"450:2:21"},"nodeType":"YulFunctionCall","src":"450:14:21"},"nodeType":"YulIf","src":"447:34:21"},{"nodeType":"YulVariableDeclaration","src":"490:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"504:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"515:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"500:3:21"},"nodeType":"YulFunctionCall","src":"500:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"494:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"570:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"579:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"582:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"572:6:21"},"nodeType":"YulFunctionCall","src":"572:12:21"},"nodeType":"YulExpressionStatement","src":"572:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"549:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"553:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"545:3:21"},"nodeType":"YulFunctionCall","src":"545:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"560:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"541:3:21"},"nodeType":"YulFunctionCall","src":"541:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"534:6:21"},"nodeType":"YulFunctionCall","src":"534:35:21"},"nodeType":"YulIf","src":"531:55:21"},{"nodeType":"YulVariableDeclaration","src":"595:26:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"618:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"605:12:21"},"nodeType":"YulFunctionCall","src":"605:16:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"599:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"644:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"646:16:21"},"nodeType":"YulFunctionCall","src":"646:18:21"},"nodeType":"YulExpressionStatement","src":"646:18:21"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"636:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"640:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"633:2:21"},"nodeType":"YulFunctionCall","src":"633:10:21"},"nodeType":"YulIf","src":"630:36:21"},{"nodeType":"YulVariableDeclaration","src":"675:17:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"689:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"685:3:21"},"nodeType":"YulFunctionCall","src":"685:7:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"701:23:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"721:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"715:5:21"},"nodeType":"YulFunctionCall","src":"715:9:21"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"705:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"733:71:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"755:6:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"779:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"783:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"775:3:21"},"nodeType":"YulFunctionCall","src":"775:13:21"},{"name":"_4","nodeType":"YulIdentifier","src":"790:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"771:3:21"},"nodeType":"YulFunctionCall","src":"771:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"795:2:21","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"767:3:21"},"nodeType":"YulFunctionCall","src":"767:31:21"},{"name":"_4","nodeType":"YulIdentifier","src":"800:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"763:3:21"},"nodeType":"YulFunctionCall","src":"763:40:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"751:3:21"},"nodeType":"YulFunctionCall","src":"751:53:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"737:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"863:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"865:16:21"},"nodeType":"YulFunctionCall","src":"865:18:21"},"nodeType":"YulExpressionStatement","src":"865:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"822:10:21"},{"name":"_1","nodeType":"YulIdentifier","src":"834:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"819:2:21"},"nodeType":"YulFunctionCall","src":"819:18:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"842:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"839:2:21"},"nodeType":"YulFunctionCall","src":"839:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"816:2:21"},"nodeType":"YulFunctionCall","src":"816:46:21"},"nodeType":"YulIf","src":"813:72:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"901:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"905:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"894:6:21"},"nodeType":"YulFunctionCall","src":"894:22:21"},"nodeType":"YulExpressionStatement","src":"894:22:21"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"932:6:21"},{"name":"_3","nodeType":"YulIdentifier","src":"940:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"925:6:21"},"nodeType":"YulFunctionCall","src":"925:18:21"},"nodeType":"YulExpressionStatement","src":"925:18:21"},{"body":{"nodeType":"YulBlock","src":"989:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"998:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1001:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"991:6:21"},"nodeType":"YulFunctionCall","src":"991:12:21"},"nodeType":"YulExpressionStatement","src":"991:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"966:2:21"},{"name":"_3","nodeType":"YulIdentifier","src":"970:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:21"},"nodeType":"YulFunctionCall","src":"962:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"975:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"958:3:21"},"nodeType":"YulFunctionCall","src":"958:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"980:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"955:2:21"},"nodeType":"YulFunctionCall","src":"955:33:21"},"nodeType":"YulIf","src":"952:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1031:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1039:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1027:3:21"},"nodeType":"YulFunctionCall","src":"1027:15:21"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1048:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1052:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1044:3:21"},"nodeType":"YulFunctionCall","src":"1044:11:21"},{"name":"_3","nodeType":"YulIdentifier","src":"1057:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1014:12:21"},"nodeType":"YulFunctionCall","src":"1014:46:21"},"nodeType":"YulExpressionStatement","src":"1014:46:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1084:6:21"},{"name":"_3","nodeType":"YulIdentifier","src":"1092:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1080:3:21"},"nodeType":"YulFunctionCall","src":"1080:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"1097:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1076:3:21"},"nodeType":"YulFunctionCall","src":"1076:24:21"},{"kind":"number","nodeType":"YulLiteral","src":"1102:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1069:6:21"},"nodeType":"YulFunctionCall","src":"1069:35:21"},"nodeType":"YulExpressionStatement","src":"1069:35:21"},{"nodeType":"YulAssignment","src":"1113:16:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1123:6:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1113:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"200:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"211:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"223:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"231:6:21","type":""}],"src":"146:989:21"},{"body":{"nodeType":"YulBlock","src":"1189:373:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1199:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1219:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1213:5:21"},"nodeType":"YulFunctionCall","src":"1213:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1203:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1241:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1246:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1234:6:21"},"nodeType":"YulFunctionCall","src":"1234:19:21"},"nodeType":"YulExpressionStatement","src":"1234:19:21"},{"nodeType":"YulVariableDeclaration","src":"1262:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1271:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1266:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1333:110:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1347:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1357:4:21","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1351:2:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1389:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1394:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:11:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1398:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1381:3:21"},"nodeType":"YulFunctionCall","src":"1381:20:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1417:5:21"},{"name":"i","nodeType":"YulIdentifier","src":"1424:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1413:3:21"},"nodeType":"YulFunctionCall","src":"1413:13:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1428:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1409:3:21"},"nodeType":"YulFunctionCall","src":"1409:22:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1403:5:21"},"nodeType":"YulFunctionCall","src":"1403:29:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1374:6:21"},"nodeType":"YulFunctionCall","src":"1374:59:21"},"nodeType":"YulExpressionStatement","src":"1374:59:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1292:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1295:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1289:2:21"},"nodeType":"YulFunctionCall","src":"1289:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1303:21:21","statements":[{"nodeType":"YulAssignment","src":"1305:17:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1314:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"1317:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1310:3:21"},"nodeType":"YulFunctionCall","src":"1310:12:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1305:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1285:3:21","statements":[]},"src":"1281:162:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1467:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1472:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1463:3:21"},"nodeType":"YulFunctionCall","src":"1463:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1481:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1459:3:21"},"nodeType":"YulFunctionCall","src":"1459:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"1488:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1452:6:21"},"nodeType":"YulFunctionCall","src":"1452:38:21"},"nodeType":"YulExpressionStatement","src":"1452:38:21"},{"nodeType":"YulAssignment","src":"1499:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1514:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1527:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1535:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:21"},"nodeType":"YulFunctionCall","src":"1523:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1544:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1540:3:21"},"nodeType":"YulFunctionCall","src":"1540:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1519:3:21"},"nodeType":"YulFunctionCall","src":"1519:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1510:3:21"},"nodeType":"YulFunctionCall","src":"1510:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"1551:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1506:3:21"},"nodeType":"YulFunctionCall","src":"1506:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1499:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1166:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1173:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1181:3:21","type":""}],"src":"1140:422:21"},{"body":{"nodeType":"YulBlock","src":"1714:141:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1731:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"1742:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1724:6:21"},"nodeType":"YulFunctionCall","src":"1724:25:21"},"nodeType":"YulExpressionStatement","src":"1724:25:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1769:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1780:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1765:3:21"},"nodeType":"YulFunctionCall","src":"1765:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"1785:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1758:6:21"},"nodeType":"YulFunctionCall","src":"1758:30:21"},"nodeType":"YulExpressionStatement","src":"1758:30:21"},{"nodeType":"YulAssignment","src":"1797:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1822:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1845:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:21"},"nodeType":"YulFunctionCall","src":"1830:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"1805:16:21"},"nodeType":"YulFunctionCall","src":"1805:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1797:4:21"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1675:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1686:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1694:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1705:4:21","type":""}],"src":"1567:288:21"},{"body":{"nodeType":"YulBlock","src":"1938:199:21","statements":[{"body":{"nodeType":"YulBlock","src":"1984:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1993:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1996:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1986:6:21"},"nodeType":"YulFunctionCall","src":"1986:12:21"},"nodeType":"YulExpressionStatement","src":"1986:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1959:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1968:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1955:3:21"},"nodeType":"YulFunctionCall","src":"1955:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1951:3:21"},"nodeType":"YulFunctionCall","src":"1951:32:21"},"nodeType":"YulIf","src":"1948:52:21"},{"nodeType":"YulVariableDeclaration","src":"2009:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2028:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2022:5:21"},"nodeType":"YulFunctionCall","src":"2022:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2013:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2091:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2100:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2103:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2093:6:21"},"nodeType":"YulFunctionCall","src":"2093:12:21"},"nodeType":"YulExpressionStatement","src":"2093:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2060:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2081:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2074:6:21"},"nodeType":"YulFunctionCall","src":"2074:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2067:6:21"},"nodeType":"YulFunctionCall","src":"2067:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2057:2:21"},"nodeType":"YulFunctionCall","src":"2057:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2050:6:21"},"nodeType":"YulFunctionCall","src":"2050:40:21"},"nodeType":"YulIf","src":"2047:60:21"},{"nodeType":"YulAssignment","src":"2116:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2126:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2116:6:21"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1904:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1915:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1927:6:21","type":""}],"src":"1860:277:21"},{"body":{"nodeType":"YulBlock","src":"2316:165:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2333:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2344:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2326:6:21"},"nodeType":"YulFunctionCall","src":"2326:21:21"},"nodeType":"YulExpressionStatement","src":"2326:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2367:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2378:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2363:3:21"},"nodeType":"YulFunctionCall","src":"2363:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"2383:2:21","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2356:6:21"},"nodeType":"YulFunctionCall","src":"2356:30:21"},"nodeType":"YulExpressionStatement","src":"2356:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2417:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:21"},"nodeType":"YulFunctionCall","src":"2402:18:21"},{"hexValue":"57726f6e672076616c696461746f72","kind":"string","nodeType":"YulLiteral","src":"2422:17:21","type":"","value":"Wrong validator"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2395:6:21"},"nodeType":"YulFunctionCall","src":"2395:45:21"},"nodeType":"YulExpressionStatement","src":"2395:45:21"},{"nodeType":"YulAssignment","src":"2449:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2461:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2472:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2457:3:21"},"nodeType":"YulFunctionCall","src":"2457:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2449:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2293:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2307:4:21","type":""}],"src":"2142:339:21"},{"body":{"nodeType":"YulBlock","src":"2605:98:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2622:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2633:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2615:6:21"},"nodeType":"YulFunctionCall","src":"2615:21:21"},"nodeType":"YulExpressionStatement","src":"2615:21:21"},{"nodeType":"YulAssignment","src":"2645:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2670:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2682:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2693:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2678:3:21"},"nodeType":"YulFunctionCall","src":"2678:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2653:16:21"},"nodeType":"YulFunctionCall","src":"2653:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2645:4:21"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2574:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2585:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2596:4:21","type":""}],"src":"2486:217:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Wrong validator\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x274B9F10 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x14C JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x199ED7C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x333DAF92 SWAP1 PUSH2 0x77 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x24D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x26E JUMP JUMPDEST PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x2BB937B733903B30B634B230BA37B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH32 0x84259FBF8A54ADFE7CE845EEE74785AACEDCF222BDEB9F31672EB2A429D453E0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1A4 JUMPI PUSH2 0x1A4 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1CC JUMPI PUSH2 0x1CC PUSH2 0x136 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x22D JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x211 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x266 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x207 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x290 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x207 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0xE 0xD7 PUSH12 0x9B397A7DDDFB203452FB71D9 0xF DUP12 PUSH16 0xCAD5E57C5D3589686E12FD75E164736F PUSH13 0x63430008140033000000000000 ","sourceMap":"106:466:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;343:227;;;;;;:::i;:::-;;:::i;:::-;;;433:16;;:51;;-1:-1:-1;;;433:51:15;;-1:-1:-1;;;;;433:16:15;;;;:34;;:51;;468:4;;474:9;;433:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;412:113;;;;-1:-1:-1;;;412:113:15;;2344:2:21;412:113:15;;;2326:21:21;2383:2;2363:18;;;2356:30;-1:-1:-1;;;2402:18:21;;;2395:45;2457:18;;412:113:15;;;;;;;;547:4;540:23;553:9;540:23;;;;;;:::i;:::-;;;;;;;;343:227;;:::o;14:127:21:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:989;223:6;231;284:2;272:9;263:7;259:23;255:32;252:52;;;300:1;297;290:12;252:52;336:9;323:23;313:33;;397:2;386:9;382:18;369:32;420:18;461:2;453:6;450:14;447:34;;;477:1;474;467:12;447:34;515:6;504:9;500:22;490:32;;560:7;553:4;549:2;545:13;541:27;531:55;;582:1;579;572:12;531:55;618:2;605:16;640:2;636;633:10;630:36;;;646:18;;:::i;:::-;721:2;715:9;689:2;775:13;;-1:-1:-1;;771:22:21;;;795:2;767:31;763:40;751:53;;;819:18;;;839:22;;;816:46;813:72;;;865:18;;:::i;:::-;905:10;901:2;894:22;940:2;932:6;925:18;980:7;975:2;970;966;962:11;958:20;955:33;952:53;;;1001:1;998;991:12;952:53;1057:2;1052;1048;1044:11;1039:2;1031:6;1027:15;1014:46;1102:1;1097:2;1092;1084:6;1080:15;1076:24;1069:35;1123:6;1113:16;;;;;;;146:989;;;;;:::o;1140:422::-;1181:3;1219:5;1213:12;1246:6;1241:3;1234:19;1271:1;1281:162;1295:6;1292:1;1289:13;1281:162;;;1357:4;1413:13;;;1409:22;;1403:29;1385:11;;;1381:20;;1374:59;1310:12;1281:162;;;1285:3;1488:1;1481:4;1472:6;1467:3;1463:16;1459:27;1452:38;1551:4;1544:2;1540:7;1535:2;1527:6;1523:15;1519:29;1514:3;1510:39;1506:50;1499:57;;;1140:422;;;;:::o;1567:288::-;1742:6;1731:9;1724:25;1785:2;1780;1769:9;1765:18;1758:30;1705:4;1805:44;1845:2;1834:9;1830:18;1822:6;1805:44;:::i;:::-;1797:52;1567:288;-1:-1:-1;;;;1567:288:21:o;1860:277::-;1927:6;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2028:9;2022:16;2081:5;2074:13;2067:21;2060:5;2057:32;2047:60;;2103:1;2100;2093:12;2047:60;2126:5;1860:277;-1:-1:-1;;;1860:277:21:o;2486:217::-;2633:2;2622:9;2615:21;2596:4;2653:44;2693:2;2682:9;2678:18;2670:6;2653:44;:::i"},"methodIdentifiers":{"echo(bytes32,bytes)":"274b9f10"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ValidatorManager\",\"name\":\"_validatorManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Echoed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"echo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Collector.sol\":\"Collector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Collector.sol\":{\"keccak256\":\"0x48ae8bb97847a24a165e63f4c1396db758af521db9eb6d4e37d99a122f61cd34\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://366393dbd6536e91cb52ff3c86cf5e398d5e10f6eb5cff0d086b0e4b8bb50f25\",\"dweb:/ipfs/QmV7gkEvvNK81jHaF2FheT1d6x16UbqVrELgUfVQAohbEC\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]}},\"version\":1}"}},"contracts/ERC20Bridge.sol":{"BridgedERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"bridge_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3837":{"entryPoint":null,"id":3837,"parameterSlots":3,"returnSlots":0},"@_442":{"entryPoint":null,"id":442,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":136,"id":745,"parameterSlots":2,"returnSlots":0},"@_update_712":{"entryPoint":202,"id":712,"parameterSlots":3,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_fromMemory":{"entryPoint":706,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1194,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":907,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":990,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":847,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":509,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5278:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"210:776:21","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:21"},"nodeType":"YulFunctionCall","src":"261:12:21"},"nodeType":"YulExpressionStatement","src":"261:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:21"},"nodeType":"YulFunctionCall","src":"234:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:21"},"nodeType":"YulFunctionCall","src":"230:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:21"},"nodeType":"YulFunctionCall","src":"223:35:21"},"nodeType":"YulIf","src":"220:55:21"},{"nodeType":"YulVariableDeclaration","src":"284:23:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:21"},"nodeType":"YulFunctionCall","src":"294:13:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:21"},"nodeType":"YulFunctionCall","src":"330:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:21"},"nodeType":"YulFunctionCall","src":"326:18:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:21"},"nodeType":"YulFunctionCall","src":"369:18:21"},"nodeType":"YulExpressionStatement","src":"369:18:21"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:21"},"nodeType":"YulFunctionCall","src":"356:10:21"},"nodeType":"YulIf","src":"353:36:21"},{"nodeType":"YulVariableDeclaration","src":"398:17:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:21"},"nodeType":"YulFunctionCall","src":"408:7:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:21"},"nodeType":"YulFunctionCall","src":"438:9:21"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:21"},"nodeType":"YulFunctionCall","src":"498:13:21"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:21"},"nodeType":"YulFunctionCall","src":"494:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:21","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:21"},"nodeType":"YulFunctionCall","src":"490:31:21"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:21"},"nodeType":"YulFunctionCall","src":"486:40:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:21"},"nodeType":"YulFunctionCall","src":"474:53:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:21"},"nodeType":"YulFunctionCall","src":"588:18:21"},"nodeType":"YulExpressionStatement","src":"588:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:21"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:21"},"nodeType":"YulFunctionCall","src":"542:18:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:21"},"nodeType":"YulFunctionCall","src":"562:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:21"},"nodeType":"YulFunctionCall","src":"539:46:21"},"nodeType":"YulIf","src":"536:72:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:21"},"nodeType":"YulFunctionCall","src":"617:22:21"},"nodeType":"YulExpressionStatement","src":"617:22:21"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:21"},"nodeType":"YulFunctionCall","src":"648:18:21"},"nodeType":"YulExpressionStatement","src":"648:18:21"},{"nodeType":"YulVariableDeclaration","src":"675:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:21","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:21"},"nodeType":"YulFunctionCall","src":"737:12:21"},"nodeType":"YulExpressionStatement","src":"737:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:21"},"nodeType":"YulFunctionCall","src":"708:15:21"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:21"},"nodeType":"YulFunctionCall","src":"704:24:21"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:21"},"nodeType":"YulFunctionCall","src":"701:33:21"},"nodeType":"YulIf","src":"698:53:21"},{"nodeType":"YulVariableDeclaration","src":"760:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:21"},"nodeType":"YulFunctionCall","src":"850:14:21"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:21"},"nodeType":"YulFunctionCall","src":"846:23:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:21"},"nodeType":"YulFunctionCall","src":"881:14:21"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:21"},"nodeType":"YulFunctionCall","src":"877:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:21"},"nodeType":"YulFunctionCall","src":"871:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:21"},"nodeType":"YulFunctionCall","src":"839:63:21"},"nodeType":"YulExpressionStatement","src":"839:63:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:21"},"nodeType":"YulFunctionCall","src":"787:9:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:21","statements":[{"nodeType":"YulAssignment","src":"799:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:21"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:21"},"nodeType":"YulFunctionCall","src":"804:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:21","statements":[]},"src":"779:133:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"944:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"932:3:21"},"nodeType":"YulFunctionCall","src":"932:15:21"},{"name":"_4","nodeType":"YulIdentifier","src":"949:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"928:3:21"},"nodeType":"YulFunctionCall","src":"928:24:21"},{"kind":"number","nodeType":"YulLiteral","src":"954:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"921:6:21"},"nodeType":"YulFunctionCall","src":"921:35:21"},"nodeType":"YulExpressionStatement","src":"921:35:21"},{"nodeType":"YulAssignment","src":"965:15:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"974:6:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"965:5:21"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:21","type":""}],"src":"146:840:21"},{"body":{"nodeType":"YulBlock","src":"1126:594:21","statements":[{"body":{"nodeType":"YulBlock","src":"1172:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1181:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1184:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1174:6:21"},"nodeType":"YulFunctionCall","src":"1174:12:21"},"nodeType":"YulExpressionStatement","src":"1174:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1147:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1156:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1143:3:21"},"nodeType":"YulFunctionCall","src":"1143:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1139:3:21"},"nodeType":"YulFunctionCall","src":"1139:32:21"},"nodeType":"YulIf","src":"1136:52:21"},{"nodeType":"YulVariableDeclaration","src":"1197:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1217:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1211:5:21"},"nodeType":"YulFunctionCall","src":"1211:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1201:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1236:28:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1254:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1258:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1250:3:21"},"nodeType":"YulFunctionCall","src":"1250:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1262:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1246:3:21"},"nodeType":"YulFunctionCall","src":"1246:18:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1240:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1291:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1300:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1303:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1293:6:21"},"nodeType":"YulFunctionCall","src":"1293:12:21"},"nodeType":"YulExpressionStatement","src":"1293:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1279:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1287:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1276:2:21"},"nodeType":"YulFunctionCall","src":"1276:14:21"},"nodeType":"YulIf","src":"1273:34:21"},{"nodeType":"YulAssignment","src":"1316:71:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1355:3:21"},"nodeType":"YulFunctionCall","src":"1355:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1379:7:21"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1326:28:21"},"nodeType":"YulFunctionCall","src":"1326:61:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1316:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1396:41:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1433:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1418:3:21"},"nodeType":"YulFunctionCall","src":"1418:18:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1412:5:21"},"nodeType":"YulFunctionCall","src":"1412:25:21"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1400:8:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1466:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1475:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1478:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1468:6:21"},"nodeType":"YulFunctionCall","src":"1468:12:21"},"nodeType":"YulExpressionStatement","src":"1468:12:21"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1452:8:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1462:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1449:2:21"},"nodeType":"YulFunctionCall","src":"1449:16:21"},"nodeType":"YulIf","src":"1446:36:21"},{"nodeType":"YulAssignment","src":"1491:73:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1534:9:21"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1545:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1530:3:21"},"nodeType":"YulFunctionCall","src":"1530:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1556:7:21"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1501:28:21"},"nodeType":"YulFunctionCall","src":"1501:63:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1491:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1573:38:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1596:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:21"},"nodeType":"YulFunctionCall","src":"1592:18:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1586:5:21"},"nodeType":"YulFunctionCall","src":"1586:25:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1577:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1674:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1683:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1686:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1676:6:21"},"nodeType":"YulFunctionCall","src":"1676:12:21"},"nodeType":"YulExpressionStatement","src":"1676:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1633:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1644:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1659:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1664:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1655:3:21"},"nodeType":"YulFunctionCall","src":"1655:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1668:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1651:3:21"},"nodeType":"YulFunctionCall","src":"1651:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1640:3:21"},"nodeType":"YulFunctionCall","src":"1640:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1630:2:21"},"nodeType":"YulFunctionCall","src":"1630:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1623:6:21"},"nodeType":"YulFunctionCall","src":"1623:50:21"},"nodeType":"YulIf","src":"1620:70:21"},{"nodeType":"YulAssignment","src":"1699:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"1709:5:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1699:6:21"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1087:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1099:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1107:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1115:6:21","type":""}],"src":"991:729:21"},{"body":{"nodeType":"YulBlock","src":"1780:325:21","statements":[{"nodeType":"YulAssignment","src":"1790:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1804:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1807:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1800:3:21"},"nodeType":"YulFunctionCall","src":"1800:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1790:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1821:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1851:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"1857:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1847:3:21"},"nodeType":"YulFunctionCall","src":"1847:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1825:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1898:31:21","statements":[{"nodeType":"YulAssignment","src":"1900:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1914:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1922:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1910:3:21"},"nodeType":"YulFunctionCall","src":"1910:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1900:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1878:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1871:6:21"},"nodeType":"YulFunctionCall","src":"1871:26:21"},"nodeType":"YulIf","src":"1868:61:21"},{"body":{"nodeType":"YulBlock","src":"1988:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2009:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2016:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2021:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2012:3:21"},"nodeType":"YulFunctionCall","src":"2012:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2002:6:21"},"nodeType":"YulFunctionCall","src":"2002:31:21"},"nodeType":"YulExpressionStatement","src":"2002:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2053:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2056:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2046:6:21"},"nodeType":"YulFunctionCall","src":"2046:15:21"},"nodeType":"YulExpressionStatement","src":"2046:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2081:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2084:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2074:6:21"},"nodeType":"YulFunctionCall","src":"2074:15:21"},"nodeType":"YulExpressionStatement","src":"2074:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1944:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1967:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1975:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1964:2:21"},"nodeType":"YulFunctionCall","src":"1964:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1941:2:21"},"nodeType":"YulFunctionCall","src":"1941:38:21"},"nodeType":"YulIf","src":"1938:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1760:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1769:6:21","type":""}],"src":"1725:380:21"},{"body":{"nodeType":"YulBlock","src":"2166:65:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2183:1:21","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2186:3:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2176:6:21"},"nodeType":"YulFunctionCall","src":"2176:14:21"},"nodeType":"YulExpressionStatement","src":"2176:14:21"},{"nodeType":"YulAssignment","src":"2199:26:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2217:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2220:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2207:9:21"},"nodeType":"YulFunctionCall","src":"2207:18:21"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2199:4:21"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2149:3:21","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2157:4:21","type":""}],"src":"2110:121:21"},{"body":{"nodeType":"YulBlock","src":"2317:464:21","statements":[{"body":{"nodeType":"YulBlock","src":"2350:425:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2364:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2374:1:21","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2368:2:21","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2395:2:21"},{"name":"array","nodeType":"YulIdentifier","src":"2399:5:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2388:6:21"},"nodeType":"YulFunctionCall","src":"2388:17:21"},"nodeType":"YulExpressionStatement","src":"2388:17:21"},{"nodeType":"YulVariableDeclaration","src":"2418:31:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2440:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"2444:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2430:9:21"},"nodeType":"YulFunctionCall","src":"2430:19:21"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2422:4:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2462:57:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2485:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2495:1:21","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2502:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"2514:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2498:3:21"},"nodeType":"YulFunctionCall","src":"2498:19:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2491:3:21"},"nodeType":"YulFunctionCall","src":"2491:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:21"},"nodeType":"YulFunctionCall","src":"2481:38:21"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2466:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2556:23:21","statements":[{"nodeType":"YulAssignment","src":"2558:19:21","value":{"name":"data","nodeType":"YulIdentifier","src":"2573:4:21"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2558:11:21"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2538:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"2550:4:21","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2535:2:21"},"nodeType":"YulFunctionCall","src":"2535:20:21"},"nodeType":"YulIf","src":"2532:47:21"},{"nodeType":"YulVariableDeclaration","src":"2592:41:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2606:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2616:1:21","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2623:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2628:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2619:3:21"},"nodeType":"YulFunctionCall","src":"2619:12:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2612:3:21"},"nodeType":"YulFunctionCall","src":"2612:20:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2602:3:21"},"nodeType":"YulFunctionCall","src":"2602:31:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2596:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2646:24:21","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2659:11:21"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2650:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2744:21:21","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2753:5:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2760:2:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2746:6:21"},"nodeType":"YulFunctionCall","src":"2746:17:21"},"nodeType":"YulExpressionStatement","src":"2746:17:21"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2694:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2701:2:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2691:2:21"},"nodeType":"YulFunctionCall","src":"2691:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2705:26:21","statements":[{"nodeType":"YulAssignment","src":"2707:22:21","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2720:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"2727:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2716:3:21"},"nodeType":"YulFunctionCall","src":"2716:13:21"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2707:5:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2687:3:21","statements":[]},"src":"2683:82:21"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2333:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2338:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2330:2:21"},"nodeType":"YulFunctionCall","src":"2330:11:21"},"nodeType":"YulIf","src":"2327:448:21"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2289:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"2296:3:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2301:10:21","type":""}],"src":"2236:545:21"},{"body":{"nodeType":"YulBlock","src":"2871:81:21","statements":[{"nodeType":"YulAssignment","src":"2881:65:21","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2896:4:21"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2914:1:21","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2917:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2910:3:21"},"nodeType":"YulFunctionCall","src":"2910:11:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2927:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2923:3:21"},"nodeType":"YulFunctionCall","src":"2923:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2906:3:21"},"nodeType":"YulFunctionCall","src":"2906:24:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2902:3:21"},"nodeType":"YulFunctionCall","src":"2902:29:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2892:3:21"},"nodeType":"YulFunctionCall","src":"2892:40:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:21","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2941:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2934:3:21"},"nodeType":"YulFunctionCall","src":"2934:11:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2889:2:21"},"nodeType":"YulFunctionCall","src":"2889:57:21"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2881:4:21"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2848:4:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"2854:3:21","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2862:4:21","type":""}],"src":"2786:166:21"},{"body":{"nodeType":"YulBlock","src":"3053:1256:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3063:24:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3083:3:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3077:5:21"},"nodeType":"YulFunctionCall","src":"3077:10:21"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"3067:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3130:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3132:16:21"},"nodeType":"YulFunctionCall","src":"3132:18:21"},"nodeType":"YulExpressionStatement","src":"3132:18:21"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3102:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3118:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3122:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3114:3:21"},"nodeType":"YulFunctionCall","src":"3114:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"3126:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3110:3:21"},"nodeType":"YulFunctionCall","src":"3110:18:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3099:2:21"},"nodeType":"YulFunctionCall","src":"3099:30:21"},"nodeType":"YulIf","src":"3096:56:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3205:4:21"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3243:4:21"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3237:5:21"},"nodeType":"YulFunctionCall","src":"3237:11:21"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3211:25:21"},"nodeType":"YulFunctionCall","src":"3211:38:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"3251:6:21"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3161:43:21"},"nodeType":"YulFunctionCall","src":"3161:97:21"},"nodeType":"YulExpressionStatement","src":"3161:97:21"},{"nodeType":"YulVariableDeclaration","src":"3267:18:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3284:1:21","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3271:9:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3294:23:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3313:4:21","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3298:11:21","type":""}]},{"nodeType":"YulAssignment","src":"3326:24:21","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3339:11:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3326:9:21"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3396:656:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3410:35:21","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3429:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3441:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3437:3:21"},"nodeType":"YulFunctionCall","src":"3437:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3425:3:21"},"nodeType":"YulFunctionCall","src":"3425:20:21"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3414:7:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3458:49:21","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3502:4:21"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3472:29:21"},"nodeType":"YulFunctionCall","src":"3472:35:21"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3462:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3520:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3529:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3524:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3607:172:21","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3632:6:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3650:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3655:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3646:3:21"},"nodeType":"YulFunctionCall","src":"3646:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3640:5:21"},"nodeType":"YulFunctionCall","src":"3640:26:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3625:6:21"},"nodeType":"YulFunctionCall","src":"3625:42:21"},"nodeType":"YulExpressionStatement","src":"3625:42:21"},{"nodeType":"YulAssignment","src":"3684:24:21","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3698:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"3706:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3694:3:21"},"nodeType":"YulFunctionCall","src":"3694:14:21"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3684:6:21"}]},{"nodeType":"YulAssignment","src":"3725:40:21","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3742:9:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3753:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:21"},"nodeType":"YulFunctionCall","src":"3738:27:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3725:9:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3554:1:21"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3557:7:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3551:2:21"},"nodeType":"YulFunctionCall","src":"3551:14:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3566:28:21","statements":[{"nodeType":"YulAssignment","src":"3568:24:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3577:1:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3580:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3573:3:21"},"nodeType":"YulFunctionCall","src":"3573:19:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3568:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"3547:3:21","statements":[]},"src":"3543:236:21"},{"body":{"nodeType":"YulBlock","src":"3827:166:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3845:43:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3872:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3877:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3868:3:21"},"nodeType":"YulFunctionCall","src":"3868:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3862:5:21"},"nodeType":"YulFunctionCall","src":"3862:26:21"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3849:9:21","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3912:6:21"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3924:9:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3951:1:21","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3954:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3947:3:21"},"nodeType":"YulFunctionCall","src":"3947:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"3963:3:21","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3943:3:21"},"nodeType":"YulFunctionCall","src":"3943:24:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3973:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3969:3:21"},"nodeType":"YulFunctionCall","src":"3969:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3939:3:21"},"nodeType":"YulFunctionCall","src":"3939:37:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3935:3:21"},"nodeType":"YulFunctionCall","src":"3935:42:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3920:3:21"},"nodeType":"YulFunctionCall","src":"3920:58:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3905:6:21"},"nodeType":"YulFunctionCall","src":"3905:74:21"},"nodeType":"YulExpressionStatement","src":"3905:74:21"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3798:7:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"3807:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3795:2:21"},"nodeType":"YulFunctionCall","src":"3795:19:21"},"nodeType":"YulIf","src":"3792:201:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4013:4:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4027:1:21","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"4030:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4023:3:21"},"nodeType":"YulFunctionCall","src":"4023:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"4039:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4019:3:21"},"nodeType":"YulFunctionCall","src":"4019:22:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4006:6:21"},"nodeType":"YulFunctionCall","src":"4006:36:21"},"nodeType":"YulExpressionStatement","src":"4006:36:21"}]},"nodeType":"YulCase","src":"3389:663:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3394:1:21","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4069:234:21","statements":[{"nodeType":"YulVariableDeclaration","src":"4083:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"4096:1:21","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4087:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4132:67:21","statements":[{"nodeType":"YulAssignment","src":"4150:35:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4169:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4174:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4165:3:21"},"nodeType":"YulFunctionCall","src":"4165:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4159:5:21"},"nodeType":"YulFunctionCall","src":"4159:26:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4150:5:21"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"4113:6:21"},"nodeType":"YulIf","src":"4110:89:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4219:4:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4278:5:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"4285:6:21"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4225:52:21"},"nodeType":"YulFunctionCall","src":"4225:67:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4212:6:21"},"nodeType":"YulFunctionCall","src":"4212:81:21"},"nodeType":"YulExpressionStatement","src":"4212:81:21"}]},"nodeType":"YulCase","src":"4061:242:21","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3369:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"3377:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3366:2:21"},"nodeType":"YulFunctionCall","src":"3366:14:21"},"nodeType":"YulSwitch","src":"3359:944:21"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"3038:4:21","type":""},{"name":"src","nodeType":"YulTypedName","src":"3044:3:21","type":""}],"src":"2957:1352:21"},{"body":{"nodeType":"YulBlock","src":"4415:102:21","statements":[{"nodeType":"YulAssignment","src":"4425:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4448:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:21"},"nodeType":"YulFunctionCall","src":"4433:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4467:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4482:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4498:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4503:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4494:3:21"},"nodeType":"YulFunctionCall","src":"4494:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"4507:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4490:3:21"},"nodeType":"YulFunctionCall","src":"4490:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4478:3:21"},"nodeType":"YulFunctionCall","src":"4478:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4460:6:21"},"nodeType":"YulFunctionCall","src":"4460:51:21"},"nodeType":"YulExpressionStatement","src":"4460:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4384:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4395:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4406:4:21","type":""}],"src":"4314:203:21"},{"body":{"nodeType":"YulBlock","src":"4570:174:21","statements":[{"nodeType":"YulAssignment","src":"4580:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4591:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"4594:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4587:3:21"},"nodeType":"YulFunctionCall","src":"4587:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4580:3:21"}]},{"body":{"nodeType":"YulBlock","src":"4627:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4648:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4655:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4660:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4651:3:21"},"nodeType":"YulFunctionCall","src":"4651:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4641:6:21"},"nodeType":"YulFunctionCall","src":"4641:31:21"},"nodeType":"YulExpressionStatement","src":"4641:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4692:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4695:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4685:6:21"},"nodeType":"YulFunctionCall","src":"4685:15:21"},"nodeType":"YulExpressionStatement","src":"4685:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4720:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4723:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4713:6:21"},"nodeType":"YulFunctionCall","src":"4713:15:21"},"nodeType":"YulExpressionStatement","src":"4713:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4611:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"4614:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4608:2:21"},"nodeType":"YulFunctionCall","src":"4608:10:21"},"nodeType":"YulIf","src":"4605:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4553:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"4556:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"4562:3:21","type":""}],"src":"4522:222:21"},{"body":{"nodeType":"YulBlock","src":"4906:188:21","statements":[{"nodeType":"YulAssignment","src":"4916:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4928:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4939:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4924:3:21"},"nodeType":"YulFunctionCall","src":"4924:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4916:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4958:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4973:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4989:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4994:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4985:3:21"},"nodeType":"YulFunctionCall","src":"4985:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"4998:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4981:3:21"},"nodeType":"YulFunctionCall","src":"4981:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4969:3:21"},"nodeType":"YulFunctionCall","src":"4969:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4951:6:21"},"nodeType":"YulFunctionCall","src":"4951:51:21"},"nodeType":"YulExpressionStatement","src":"4951:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5033:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5018:3:21"},"nodeType":"YulFunctionCall","src":"5018:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"5038:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5011:6:21"},"nodeType":"YulFunctionCall","src":"5011:34:21"},"nodeType":"YulExpressionStatement","src":"5011:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5065:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5076:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5061:3:21"},"nodeType":"YulFunctionCall","src":"5061:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"5081:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5054:6:21"},"nodeType":"YulFunctionCall","src":"5054:34:21"},"nodeType":"YulExpressionStatement","src":"5054:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4859:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4870:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4878:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4886:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4897:4:21","type":""}],"src":"4749:345:21"},{"body":{"nodeType":"YulBlock","src":"5200:76:21","statements":[{"nodeType":"YulAssignment","src":"5210:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5222:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5233:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5218:3:21"},"nodeType":"YulFunctionCall","src":"5218:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5210:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5252:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"5263:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5245:6:21"},"nodeType":"YulFunctionCall","src":"5245:25:21"},"nodeType":"YulExpressionStatement","src":"5245:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5169:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5180:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5191:4:21","type":""}],"src":"5099:177:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n mstore(add(add(memPtr, _1), _4), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n let value := mload(add(headStart, 64))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value2 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000de138038062000de18339810160408190526200003491620002c2565b82826003620000448382620003de565b506004620000538282620003de565b5050600580546001600160a01b0319166001600160a01b038416179055506200007f336103e862000088565b505050620004d2565b6001600160a01b038216620000b85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000c660008383620000ca565b5050565b6001600160a01b038316620000f9578060026000828254620000ed9190620004aa565b909155506200016d9050565b6001600160a01b038316600090815260208190526040902054818110156200014e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000af565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200018b57600280548290039055620001aa565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001f091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022557600080fd5b81516001600160401b0380821115620002425762000242620001fd565b604051601f8301601f19908116603f011681019082821181831017156200026d576200026d620001fd565b816040528381526020925086838588010111156200028a57600080fd5b600091505b83821015620002ae57858201830151818301840152908201906200028f565b600093810190920192909252949350505050565b600080600060608486031215620002d857600080fd5b83516001600160401b0380821115620002f057600080fd5b620002fe8783880162000213565b945060208601519150808211156200031557600080fd5b50620003248682870162000213565b604086015190935090506001600160a01b03811681146200034457600080fd5b809150509250925092565b600181811c908216806200036457607f821691505b6020821081036200038557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d957600081815260208120601f850160051c81016020861015620003b45750805b601f850160051c820191505b81811015620003d557828155600101620003c0565b5050505b505050565b81516001600160401b03811115620003fa57620003fa620001fd565b62000412816200040b84546200034f565b846200038b565b602080601f8311600181146200044a5760008415620004315750858301515b600019600386901b1c1916600185901b178555620003d5565b600085815260208120601f198616915b828110156200047b578886015182559484019460019091019084016200045a565b50858210156200049a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004cc57634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004e26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xDE1 CODESIZE SUB DUP1 PUSH3 0xDE1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x2C2 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH3 0x44 DUP4 DUP3 PUSH3 0x3DE JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x53 DUP3 DUP3 PUSH3 0x3DE JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE POP PUSH3 0x7F CALLER PUSH2 0x3E8 PUSH3 0x88 JUMP JUMPDEST POP POP POP PUSH3 0x4D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xB8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0xC6 PUSH1 0x0 DUP4 DUP4 PUSH3 0xCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0xF9 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0xED SWAP2 SWAP1 PUSH3 0x4AA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH3 0x16D SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH3 0x14E JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH3 0xAF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x18B JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH3 0x1AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x1F0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x242 JUMPI PUSH3 0x242 PUSH3 0x1FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x26D JUMPI PUSH3 0x26D PUSH3 0x1FD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x2AE JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x28F JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x2D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2FE DUP8 DUP4 DUP9 ADD PUSH3 0x213 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x324 DUP7 DUP3 DUP8 ADD PUSH3 0x213 JUMP JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x364 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x385 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x3D9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x3B4 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3D5 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3C0 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x3FA JUMPI PUSH3 0x3FA PUSH3 0x1FD JUMP JUMPDEST PUSH3 0x412 DUP2 PUSH3 0x40B DUP5 SLOAD PUSH3 0x34F JUMP JUMPDEST DUP5 PUSH3 0x38B JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x44A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x431 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x3D5 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x47B JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x45A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x49A JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH3 0x4CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8FF DUP1 PUSH3 0x4E2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB SMOD 0xB5 LOG3 SWAP8 0xBA DUP8 EXP PUSH32 0xB9851B8B1563C851AF8457C239E4AA8B7011B5CF1F376264736F6C6343000814 STOP CALLER ","sourceMap":"222:579:16:-:0;;;296:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;405:5;412:7;1962:5:2;:13;405:5:16;1962::2;:13;:::i;:::-;-1:-1:-1;1985:7:2;:17;1995:7;1985;:17;:::i;:::-;-1:-1:-1;;431:7:16::1;:17:::0;;-1:-1:-1;;;;;;431:17:16::1;-1:-1:-1::0;;;;;431:17:16;::::1;;::::0;;-1:-1:-1;458:23:16::1;464:10;476:4;458:5;:23::i;:::-;296:192:::0;;;222:579;;7721:208:2;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;4460:51:21;4433:18;;7835:32:2;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;4969:32:21;;6649:50:2;;;4951:51:21;5018:18;;;5011:34;;;5061:18;;;5054:34;;;4924:18;;6649:50:2;4749:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;5245::21;;5233:2;5218:18;;5099:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:127:21:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:21;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:21;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:21:o;991:729::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:21;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1607:2;1592:18;;1586:25;1491:73;;-1:-1:-1;1586:25:21;-1:-1:-1;;;;;;1640:31:21;;1630:42;;1620:70;;1686:1;1683;1676:12;1620:70;1709:5;1699:15;;;991:729;;;;;:::o;1725:380::-;1804:1;1800:12;;;;1847;;;1868:61;;1922:4;1914:6;1910:17;1900:27;;1868:61;1975:2;1967:6;1964:14;1944:18;1941:38;1938:161;;2021:10;2016:3;2012:20;2009:1;2002:31;2056:4;2053:1;2046:15;2084:4;2081:1;2074:15;1938:161;;1725:380;;;:::o;2236:545::-;2338:2;2333:3;2330:11;2327:448;;;2374:1;2399:5;2395:2;2388:17;2444:4;2440:2;2430:19;2514:2;2502:10;2498:19;2495:1;2491:27;2485:4;2481:38;2550:4;2538:10;2535:20;2532:47;;;-1:-1:-1;2573:4:21;2532:47;2628:2;2623:3;2619:12;2616:1;2612:20;2606:4;2602:31;2592:41;;2683:82;2701:2;2694:5;2691:13;2683:82;;;2746:17;;;2727:1;2716:13;2683:82;;;2687:3;;;2327:448;2236:545;;;:::o;2957:1352::-;3077:10;;-1:-1:-1;;;;;3099:30:21;;3096:56;;;3132:18;;:::i;:::-;3161:97;3251:6;3211:38;3243:4;3237:11;3211:38;:::i;:::-;3205:4;3161:97;:::i;:::-;3313:4;;3377:2;3366:14;;3394:1;3389:663;;;;4096:1;4113:6;4110:89;;;-1:-1:-1;4165:19:21;;;4159:26;4110:89;-1:-1:-1;;2914:1:21;2910:11;;;2906:24;2902:29;2892:40;2938:1;2934:11;;;2889:57;4212:81;;3359:944;;3389:663;2183:1;2176:14;;;2220:4;2207:18;;-1:-1:-1;;3425:20:21;;;3543:236;3557:7;3554:1;3551:14;3543:236;;;3646:19;;;3640:26;3625:42;;3738:27;;;;3706:1;3694:14;;;;3573:19;;3543:236;;;3547:3;3807:6;3798:7;3795:19;3792:201;;;3868:19;;;3862:26;-1:-1:-1;;3951:1:21;3947:14;;;3963:3;3943:24;3939:37;3935:42;3920:58;3905:74;;3792:201;-1:-1:-1;;;;;4039:1:21;4023:14;;;4019:22;4006:36;;-1:-1:-1;2957:1352:21:o;4522:222::-;4587:9;;;4608:10;;;4605:133;;;4660:10;4655:3;4651:20;4648:1;4641:31;4695:4;4692:1;4685:15;4723:4;4720:1;4713:15;4605:133;4522:222;;;;:::o;5099:177::-;222:579:16;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_796":{"entryPoint":982,"id":796,"parameterSlots":3,"returnSlots":0},"@_approve_856":{"entryPoint":1329,"id":856,"parameterSlots":4,"returnSlots":0},"@_burn_778":{"entryPoint":1275,"id":778,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":1221,"id":745,"parameterSlots":2,"returnSlots":0},"@_msgSender_1067":{"entryPoint":null,"id":1067,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_904":{"entryPoint":1000,"id":904,"parameterSlots":3,"returnSlots":0},"@_transfer_635":{"entryPoint":1126,"id":635,"parameterSlots":3,"returnSlots":0},"@_update_712":{"entryPoint":1542,"id":712,"parameterSlots":3,"returnSlots":0},"@allowance_532":{"entryPoint":null,"id":532,"parameterSlots":2,"returnSlots":1},"@approve_556":{"entryPoint":678,"id":556,"parameterSlots":2,"returnSlots":1},"@balanceOf_491":{"entryPoint":null,"id":491,"parameterSlots":1,"returnSlots":1},"@burnFrom_1028":{"entryPoint":847,"id":1028,"parameterSlots":2,"returnSlots":0},"@burn_1007":{"entryPoint":834,"id":1007,"parameterSlots":1,"returnSlots":0},"@burn_3879":{"entryPoint":883,"id":3879,"parameterSlots":2,"returnSlots":0},"@decimals_469":{"entryPoint":null,"id":469,"parameterSlots":0,"returnSlots":1},"@mint_3864":{"entryPoint":740,"id":3864,"parameterSlots":2,"returnSlots":0},"@name_451":{"entryPoint":532,"id":451,"parameterSlots":0,"returnSlots":1},"@symbol_460":{"entryPoint":868,"id":460,"parameterSlots":0,"returnSlots":1},"@totalSupply_478":{"entryPoint":null,"id":478,"parameterSlots":0,"returnSlots":1},"@transferFrom_588":{"entryPoint":704,"id":588,"parameterSlots":3,"returnSlots":1},"@transfer_515":{"entryPoint":968,"id":515,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2107,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1988,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1946,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2216,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2158,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4051:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:21","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:21"},"nodeType":"YulFunctionCall","src":"166:21:21"},"nodeType":"YulExpressionStatement","src":"166:21:21"},{"nodeType":"YulVariableDeclaration","src":"196:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:21"},"nodeType":"YulFunctionCall","src":"210:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:21"},"nodeType":"YulFunctionCall","src":"239:18:21"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:34:21"},"nodeType":"YulExpressionStatement","src":"232:34:21"},{"nodeType":"YulVariableDeclaration","src":"275:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:21"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:21"},"nodeType":"YulFunctionCall","src":"369:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:21"},"nodeType":"YulFunctionCall","src":"365:26:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:21"},"nodeType":"YulFunctionCall","src":"403:14:21"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:21"},"nodeType":"YulFunctionCall","src":"393:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:21"},"nodeType":"YulFunctionCall","src":"358:66:21"},"nodeType":"YulExpressionStatement","src":"358:66:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:21"},"nodeType":"YulFunctionCall","src":"302:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:21","statements":[{"nodeType":"YulAssignment","src":"318:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:21"},"nodeType":"YulFunctionCall","src":"323:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:21","statements":[]},"src":"294:140:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:21"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:21"},"nodeType":"YulFunctionCall","src":"454:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:21"},"nodeType":"YulFunctionCall","src":"450:31:21"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:21"},"nodeType":"YulFunctionCall","src":"443:42:21"},"nodeType":"YulExpressionStatement","src":"443:42:21"},{"nodeType":"YulAssignment","src":"494:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:21"},"nodeType":"YulFunctionCall","src":"525:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:21"},"nodeType":"YulFunctionCall","src":"542:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:21"},"nodeType":"YulFunctionCall","src":"521:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:21"},"nodeType":"YulFunctionCall","src":"506:45:21"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:21"},"nodeType":"YulFunctionCall","src":"502:54:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:21","type":""}],"src":"14:548:21"},{"body":{"nodeType":"YulBlock","src":"616:124:21","statements":[{"nodeType":"YulAssignment","src":"626:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:21"},"nodeType":"YulFunctionCall","src":"635:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:21"}]},{"body":{"nodeType":"YulBlock","src":"718:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:21"},"nodeType":"YulFunctionCall","src":"720:12:21"},"nodeType":"YulExpressionStatement","src":"720:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:21"},"nodeType":"YulFunctionCall","src":"699:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:21"},"nodeType":"YulFunctionCall","src":"695:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:21"},"nodeType":"YulFunctionCall","src":"684:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:21"},"nodeType":"YulFunctionCall","src":"674:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:21"},"nodeType":"YulFunctionCall","src":"667:50:21"},"nodeType":"YulIf","src":"664:70:21"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:21","type":""}],"src":"567:173:21"},{"body":{"nodeType":"YulBlock","src":"832:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:21"},"nodeType":"YulFunctionCall","src":"880:12:21"},"nodeType":"YulExpressionStatement","src":"880:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:21"},"nodeType":"YulFunctionCall","src":"849:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:21"},"nodeType":"YulFunctionCall","src":"845:32:21"},"nodeType":"YulIf","src":"842:52:21"},{"nodeType":"YulAssignment","src":"903:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:21"},"nodeType":"YulFunctionCall","src":"913:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:21"}]},{"nodeType":"YulAssignment","src":"951:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:21"},"nodeType":"YulFunctionCall","src":"974:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:21"},"nodeType":"YulFunctionCall","src":"961:32:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:21","type":""}],"src":"745:254:21"},{"body":{"nodeType":"YulBlock","src":"1099:92:21","statements":[{"nodeType":"YulAssignment","src":"1109:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:21"},"nodeType":"YulFunctionCall","src":"1117:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:21"},"nodeType":"YulFunctionCall","src":"1169:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:21"},"nodeType":"YulFunctionCall","src":"1162:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:21"},"nodeType":"YulFunctionCall","src":"1144:41:21"},"nodeType":"YulExpressionStatement","src":"1144:41:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:21","type":""}],"src":"1004:187:21"},{"body":{"nodeType":"YulBlock","src":"1297:76:21","statements":[{"nodeType":"YulAssignment","src":"1307:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:21"},"nodeType":"YulFunctionCall","src":"1315:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:21"},"nodeType":"YulFunctionCall","src":"1342:25:21"},"nodeType":"YulExpressionStatement","src":"1342:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:21","type":""}],"src":"1196:177:21"},{"body":{"nodeType":"YulBlock","src":"1482:224:21","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:21"},"nodeType":"YulFunctionCall","src":"1530:12:21"},"nodeType":"YulExpressionStatement","src":"1530:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:21"},"nodeType":"YulFunctionCall","src":"1499:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:21"},"nodeType":"YulFunctionCall","src":"1495:32:21"},"nodeType":"YulIf","src":"1492:52:21"},{"nodeType":"YulAssignment","src":"1553:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:21"},"nodeType":"YulFunctionCall","src":"1563:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:21"}]},{"nodeType":"YulAssignment","src":"1601:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:21"},"nodeType":"YulFunctionCall","src":"1630:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:21"},"nodeType":"YulFunctionCall","src":"1611:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:21"}]},{"nodeType":"YulAssignment","src":"1658:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:21"},"nodeType":"YulFunctionCall","src":"1681:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:21"},"nodeType":"YulFunctionCall","src":"1668:32:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:21","type":""}],"src":"1378:328:21"},{"body":{"nodeType":"YulBlock","src":"1808:87:21","statements":[{"nodeType":"YulAssignment","src":"1818:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:21"},"nodeType":"YulFunctionCall","src":"1826:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:21","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:21"},"nodeType":"YulFunctionCall","src":"1871:17:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:21"},"nodeType":"YulFunctionCall","src":"1853:36:21"},"nodeType":"YulExpressionStatement","src":"1853:36:21"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:21","type":""}],"src":"1711:184:21"},{"body":{"nodeType":"YulBlock","src":"1970:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:21"},"nodeType":"YulFunctionCall","src":"2018:12:21"},"nodeType":"YulExpressionStatement","src":"2018:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:21"},"nodeType":"YulFunctionCall","src":"1987:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:21"},"nodeType":"YulFunctionCall","src":"1983:32:21"},"nodeType":"YulIf","src":"1980:52:21"},{"nodeType":"YulAssignment","src":"2041:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2064:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2051:12:21"},"nodeType":"YulFunctionCall","src":"2051:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:21","type":""}],"src":"1900:180:21"},{"body":{"nodeType":"YulBlock","src":"2155:116:21","statements":[{"body":{"nodeType":"YulBlock","src":"2201:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2210:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2213:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2203:6:21"},"nodeType":"YulFunctionCall","src":"2203:12:21"},"nodeType":"YulExpressionStatement","src":"2203:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2176:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2185:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2172:3:21"},"nodeType":"YulFunctionCall","src":"2172:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2197:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2168:3:21"},"nodeType":"YulFunctionCall","src":"2168:32:21"},"nodeType":"YulIf","src":"2165:52:21"},{"nodeType":"YulAssignment","src":"2226:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2236:18:21"},"nodeType":"YulFunctionCall","src":"2236:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2226:6:21"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2121:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2132:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2144:6:21","type":""}],"src":"2085:186:21"},{"body":{"nodeType":"YulBlock","src":"2363:173:21","statements":[{"body":{"nodeType":"YulBlock","src":"2409:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2418:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2421:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2411:6:21"},"nodeType":"YulFunctionCall","src":"2411:12:21"},"nodeType":"YulExpressionStatement","src":"2411:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2384:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2380:3:21"},"nodeType":"YulFunctionCall","src":"2380:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2405:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2376:3:21"},"nodeType":"YulFunctionCall","src":"2376:32:21"},"nodeType":"YulIf","src":"2373:52:21"},{"nodeType":"YulAssignment","src":"2434:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2463:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2444:18:21"},"nodeType":"YulFunctionCall","src":"2444:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2434:6:21"}]},{"nodeType":"YulAssignment","src":"2482:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2515:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2526:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2511:3:21"},"nodeType":"YulFunctionCall","src":"2511:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2492:18:21"},"nodeType":"YulFunctionCall","src":"2492:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2482:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2321:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2332:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2344:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2352:6:21","type":""}],"src":"2276:260:21"},{"body":{"nodeType":"YulBlock","src":"2596:325:21","statements":[{"nodeType":"YulAssignment","src":"2606:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2620:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2623:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2616:3:21"},"nodeType":"YulFunctionCall","src":"2616:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2606:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2637:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2667:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2663:3:21"},"nodeType":"YulFunctionCall","src":"2663:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2641:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2714:31:21","statements":[{"nodeType":"YulAssignment","src":"2716:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2730:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2738:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2726:3:21"},"nodeType":"YulFunctionCall","src":"2726:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2716:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2694:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2687:6:21"},"nodeType":"YulFunctionCall","src":"2687:26:21"},"nodeType":"YulIf","src":"2684:61:21"},{"body":{"nodeType":"YulBlock","src":"2804:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2825:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2832:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2837:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2828:3:21"},"nodeType":"YulFunctionCall","src":"2828:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2818:6:21"},"nodeType":"YulFunctionCall","src":"2818:31:21"},"nodeType":"YulExpressionStatement","src":"2818:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2869:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2872:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2862:6:21"},"nodeType":"YulFunctionCall","src":"2862:15:21"},"nodeType":"YulExpressionStatement","src":"2862:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2897:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2900:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2890:6:21"},"nodeType":"YulFunctionCall","src":"2890:15:21"},"nodeType":"YulExpressionStatement","src":"2890:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2760:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2783:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2791:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2780:2:21"},"nodeType":"YulFunctionCall","src":"2780:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2757:2:21"},"nodeType":"YulFunctionCall","src":"2757:38:21"},"nodeType":"YulIf","src":"2754:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2576:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2585:6:21","type":""}],"src":"2541:380:21"},{"body":{"nodeType":"YulBlock","src":"3100:164:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3110:6:21"},"nodeType":"YulFunctionCall","src":"3110:21:21"},"nodeType":"YulExpressionStatement","src":"3110:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:21"},"nodeType":"YulFunctionCall","src":"3147:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:21","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:21"},"nodeType":"YulFunctionCall","src":"3140:30:21"},"nodeType":"YulExpressionStatement","src":"3140:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3190:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3201:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3186:3:21"},"nodeType":"YulFunctionCall","src":"3186:18:21"},{"hexValue":"4e6f742074686520627269646765","kind":"string","nodeType":"YulLiteral","src":"3206:16:21","type":"","value":"Not the bridge"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3179:6:21"},"nodeType":"YulFunctionCall","src":"3179:44:21"},"nodeType":"YulExpressionStatement","src":"3179:44:21"},{"nodeType":"YulAssignment","src":"3232:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3244:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3255:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3240:3:21"},"nodeType":"YulFunctionCall","src":"3240:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3232:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3077:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3091:4:21","type":""}],"src":"2926:338:21"},{"body":{"nodeType":"YulBlock","src":"3426:188:21","statements":[{"nodeType":"YulAssignment","src":"3436:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3459:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3444:3:21"},"nodeType":"YulFunctionCall","src":"3444:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3436:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3493:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3509:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3514:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3505:3:21"},"nodeType":"YulFunctionCall","src":"3505:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3518:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3501:3:21"},"nodeType":"YulFunctionCall","src":"3501:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3489:3:21"},"nodeType":"YulFunctionCall","src":"3489:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3471:6:21"},"nodeType":"YulFunctionCall","src":"3471:51:21"},"nodeType":"YulExpressionStatement","src":"3471:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3538:3:21"},"nodeType":"YulFunctionCall","src":"3538:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"3558:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3531:6:21"},"nodeType":"YulFunctionCall","src":"3531:34:21"},"nodeType":"YulExpressionStatement","src":"3531:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3585:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3596:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3581:3:21"},"nodeType":"YulFunctionCall","src":"3581:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"3601:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3574:6:21"},"nodeType":"YulFunctionCall","src":"3574:34:21"},"nodeType":"YulExpressionStatement","src":"3574:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3379:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3390:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3398:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3406:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3417:4:21","type":""}],"src":"3269:345:21"},{"body":{"nodeType":"YulBlock","src":"3720:102:21","statements":[{"nodeType":"YulAssignment","src":"3730:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3742:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3753:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:21"},"nodeType":"YulFunctionCall","src":"3738:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3730:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3772:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3787:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3808:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3799:3:21"},"nodeType":"YulFunctionCall","src":"3799:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3812:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3795:3:21"},"nodeType":"YulFunctionCall","src":"3795:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3783:3:21"},"nodeType":"YulFunctionCall","src":"3783:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3765:6:21"},"nodeType":"YulFunctionCall","src":"3765:51:21"},"nodeType":"YulExpressionStatement","src":"3765:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3689:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3700:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3711:4:21","type":""}],"src":"3619:203:21"},{"body":{"nodeType":"YulBlock","src":"3875:174:21","statements":[{"nodeType":"YulAssignment","src":"3885:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3896:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"3899:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3892:3:21"},"nodeType":"YulFunctionCall","src":"3892:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3885:3:21"}]},{"body":{"nodeType":"YulBlock","src":"3932:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3953:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3960:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3965:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3956:3:21"},"nodeType":"YulFunctionCall","src":"3956:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3946:6:21"},"nodeType":"YulFunctionCall","src":"3946:31:21"},"nodeType":"YulExpressionStatement","src":"3946:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3997:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4000:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3990:6:21"},"nodeType":"YulFunctionCall","src":"3990:15:21"},"nodeType":"YulExpressionStatement","src":"3990:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4028:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4018:6:21"},"nodeType":"YulFunctionCall","src":"4018:15:21"},"nodeType":"YulExpressionStatement","src":"4018:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3916:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"3919:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3913:2:21"},"nodeType":"YulFunctionCall","src":"3913:10:21"},"nodeType":"YulIf","src":"3910:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3858:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"3861:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3867:3:21","type":""}],"src":"3827:222:21"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not the bridge\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB SMOD 0xB5 LOG3 SWAP8 0xBA DUP8 EXP PUSH32 0xB9851B8B1563C851AF8457C239E4AA8B7011B5CF1F376264736F6C6343000814 STOP CALLER ","sourceMap":"222:579:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:21;;1162:22;1144:41;;1132:2;1117:18;4293:186:2;1004:187:21;3144:97:2;3222:12;;3144:97;;;1342:25:21;;;1330:2;1315:18;3144:97:2;1196:177:21;5039:244:2;;;;;;:::i;:::-;;:::i;3002:82::-;;;3075:2;1853:36:21;;1841:2;1826:18;3002:82:2;1711:184:21;598:94:16;;;;;;:::i;:::-;;:::i;:::-;;618:87:4;;;;;;:::i;:::-;;:::i;3299:116:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3390:18:2;3364:7;3390:18;;;;;;;;;;;;3299:116;1021:158:4;;;;;;:::i;:::-;;:::i;2276:93:2:-;;;:::i;698:101:16:-;;;;;;:::i;:::-;;:::i;3610:178:2:-;;;;;;:::i;:::-;;:::i;3846:140::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3952:18:2;;;3926:7;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3846:140;2074:89;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;735:10:6;4420:31:2;735:10:6;4436:7:2;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;;:::o;5039:244::-;5126:4;735:10:6;5182:37:2;5198:4;735:10:6;5213:5:2;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;-1:-1:-1;5272:4:2;;5039:244;-1:-1:-1;;;;5039:244:2:o;598:94:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;;;;;;;;;668:17:::1;674:2;678:6;668:5;:17::i;:::-;598:94:::0;;:::o;618:87:4:-;672:26;735:10:6;692:5:4;672;:26::i;:::-;618:87;:::o;1021:158::-;1096:45;1112:7;735:10:6;1135:5:4;1096:15;:45::i;:::-;1151:21;1157:7;1166:5;1151;:21::i;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;698:101:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;2926:338:21;526:48:16;770:22:::1;779:4;785:6;770:8;:22::i;3610:178:2:-:0;3679:4;735:10:6;3733:27:2;735:10:6;3750:2:2;3754:5;3733:9;:27::i;8989:128::-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;-1:-1:-1;;;;;3952:18:2;;;10762:24;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10828:37:2;;10824:310;;10904:5;10885:16;:24;10881:130;;;10936:60;;-1:-1:-1;;;10936:60:2;;-1:-1:-1;;;;;3489:32:21;;10936:60:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;10936:60:2;3269:345:21;10881:130:2;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10752:388;10663:477;;;:::o;5656:300::-;-1:-1:-1;;;;;5739:18:2;;5735:86;;5780:30;;-1:-1:-1;;;5780:30:2;;5807:1;5780:30;;;3765:51:21;3738:18;;5780:30:2;3619:203:21;5735:86:2;-1:-1:-1;;;;;5834:16:2;;5830:86;;5873:32;;-1:-1:-1;;;5873:32:2;;5902:1;5873:32;;;3765:51:21;3738:18;;5873:32:2;3619:203:21;5830:86:2;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;7721:208::-;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;3765:51:21;3738:18;;7835:32:2;3619:203:21;7787:91:2;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;8247:206::-;-1:-1:-1;;;;;8317:21:2;;8313:89;;8361:30;;-1:-1:-1;;;8361:30:2;;8388:1;8361:30;;;3765:51:21;3738:18;;8361:30:2;3619:203:21;8313:89:2;8411:35;8419:7;8436:1;8440:5;8411:7;:35::i;9949:432::-;-1:-1:-1;;;;;10061:19:2;;10057:89;;10103:32;;-1:-1:-1;;;10103:32:2;;10132:1;10103:32;;;3765:51:21;3738:18;;10103:32:2;3619:203:21;10057:89:2;-1:-1:-1;;;;;10159:21:2;;10155:90;;10203:31;;-1:-1:-1;;;10203:31:2;;10231:1;10203:31;;;3765:51:21;3738:18;;10203:31:2;3619:203:21;10155:90:2;-1:-1:-1;;;;;10254:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10299:76;;;;10349:7;-1:-1:-1;;;;;10333:31:2;10342:5;-1:-1:-1;;;;;10333:31:2;;10358:5;10333:31;;;;1342:25:21;;1330:2;1315:18;;1196:177;10333:31:2;;;;;;;;9949:432;;;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;3489:32:21;;6649:50:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;6649:50:2;3269:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;1342::21;;1330:2;1315:18;;1196:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:548:21:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:21;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:21:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:21;;1900:180;-1:-1:-1;1900:180:21:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:21:o;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:380::-;2620:1;2616:12;;;;2663;;;2684:61;;2738:4;2730:6;2726:17;2716:27;;2684:61;2791:2;2783:6;2780:14;2760:18;2757:38;2754:161;;2837:10;2832:3;2828:20;2825:1;2818:31;2872:4;2869:1;2862:15;2900:4;2897:1;2890:15;2754:161;;2541:380;;;:::o;3827:222::-;3892:9;;;3913:10;;;3910:133;;;3965:10;3960:3;3956:20;3953:1;3946:31;4000:4;3997:1;3990:15;4028:4;4025:1;4018:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"bridge_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Bridge.sol\":\"BridgedERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/ERC20Bridge.sol\":{\"keccak256\":\"0xba3f8b86233053bf90a6df93e573b7c887839a7983f03a50fc3ac083b712c97a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8927b354595525561dca5682973c44a98a43b0e51eb12a8db265f5b7e848b392\",\"dweb:/ipfs/QmYU24nSAXbnxn4Tj98dxyg9BnfQUv3n1Dh24gf7P4aaQ6\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"ERC20Bridge":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"}],"name":"Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Started","type":"event"},{"anonymous":false,"inputs":[],"name":"Succeeded","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"bridge","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"dispatched","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"exit","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"res","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"finish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Relayer","name":"relayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"queried","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610c2b806100206000396000f3fe6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x71006C09 EQ PUSH2 0x84 JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x87121759 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6D PUSH2 0x68 CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP3 SWAP2 SWAP1 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0x9F CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x31B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0xED CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0x99C JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0xA27 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x16B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x198 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x267 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH2 0x2C6 SWAP3 POP DUP7 SWAP2 POP PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF9FC8619F47185576C57BCB55A726E87AEDD0C97599424AF8325993DA5408320 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH2 0x373 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x38F SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x424 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x448 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x2C6 SWAP1 DUP6 SWAP1 PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x40C10F19 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST DUP4 ISZERO PUSH2 0x502 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318BA0C588A4BDE325B55EBF926BFA606B77D9971AC5FC7250A615885DAF9D5C SWAP1 PUSH1 0x0 SWAP1 LOG1 PUSH2 0x5B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x511 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x51A SWAP2 PUSH2 0xAE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x52B DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0xABB JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x599 SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A6 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x5FD JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x61A JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x628 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x670 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x6CD JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x5A6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x6E9 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x79E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x752 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x771 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x795 SWAP2 SWAP1 PUSH2 0xBDC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x817 JUMPI PUSH2 0x817 PUSH2 0x7D8 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x839 JUMPI PUSH2 0x839 PUSH2 0x7D8 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x85A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x865 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8A5 PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST PUSH2 0x7EE JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x8DD JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x916 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x945 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x96D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x97D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x9BD DUP2 PUSH2 0x98E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA44 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xA94 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x8DA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xA44 DUP2 PUSH2 0x98E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0xB0D JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xB4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xB5D PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xB72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x795 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA44 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xBBA SWAP1 DUP4 ADD DUP7 PUSH2 0x8FE JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xD9 DUP12 PUSH28 0xB6DC5C7058D0FCEFE332656B18C25F186A937B55E96204ABF67FC85D PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"917:1290:16:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_castToPure_4808":{"entryPoint":null,"id":4808,"parameterSlots":1,"returnSlots":1},"@_getInitializableStorage_389":{"entryPoint":null,"id":389,"parameterSlots":0,"returnSlots":1},"@_sendLogPayloadImplementation_4791":{"entryPoint":null,"id":4791,"parameterSlots":1,"returnSlots":0},"@_sendLogPayload_4820":{"entryPoint":1950,"id":4820,"parameterSlots":1,"returnSlots":0},"@bridge_3950":{"entryPoint":971,"id":3950,"parameterSlots":3,"returnSlots":1},"@dispatched_3700":{"entryPoint":308,"id":3700,"parameterSlots":2,"returnSlots":2},"@exit_3992":{"entryPoint":517,"id":3992,"parameterSlots":3,"returnSlots":1},"@finish_4045":{"entryPoint":1188,"id":4045,"parameterSlots":4,"returnSlots":0},"@initialize_3652":{"entryPoint":1463,"id":3652,"parameterSlots":1,"returnSlots":0},"@log_5391":{"entryPoint":1749,"id":5391,"parameterSlots":1,"returnSlots":0},"@queried_3731":{"entryPoint":795,"id":3731,"parameterSlots":2,"returnSlots":2},"@relay_3755":{"entryPoint":1819,"id":3755,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2381,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":2119,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":2718,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256":{"entryPoint":2460,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_Relayer_$4434":{"entryPoint":2599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":2837,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3036,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":2302,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed":{"entryPoint":2966,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2346,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2635,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":2030,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":2079,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":2747,"id":null,"parameterSlots":4,"returnSlots":2},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4":{"entryPoint":2789,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2266,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":2008,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x51":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":1987,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":2446,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8350:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:21","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:21"},"nodeType":"YulFunctionCall","src":"125:12:21"},"nodeType":"YulExpressionStatement","src":"125:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:21"},"nodeType":"YulFunctionCall","src":"104:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:21"},"nodeType":"YulFunctionCall","src":"100:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:21"},"nodeType":"YulFunctionCall","src":"89:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:21"},"nodeType":"YulFunctionCall","src":"79:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:21"},"nodeType":"YulFunctionCall","src":"72:50:21"},"nodeType":"YulIf","src":"69:70:21"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:21","type":""}],"src":"14:131:21"},{"body":{"nodeType":"YulBlock","src":"182:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"199:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"206:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"211:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"202:3:21"},"nodeType":"YulFunctionCall","src":"202:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"192:6:21"},"nodeType":"YulFunctionCall","src":"192:31:21"},"nodeType":"YulExpressionStatement","src":"192:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"242:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:15:21"},"nodeType":"YulExpressionStatement","src":"232:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:21"},"nodeType":"YulFunctionCall","src":"256:15:21"},"nodeType":"YulExpressionStatement","src":"256:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"150:127:21"},{"body":{"nodeType":"YulBlock","src":"327:230:21","statements":[{"nodeType":"YulAssignment","src":"337:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"353:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"347:5:21"},"nodeType":"YulFunctionCall","src":"347:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"337:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"365:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"387:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"403:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"409:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"414:3:21"},"nodeType":"YulFunctionCall","src":"414:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"395:3:21"},"nodeType":"YulFunctionCall","src":"395:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"383:3:21"},"nodeType":"YulFunctionCall","src":"383:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"369:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"498:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"500:16:21"},"nodeType":"YulFunctionCall","src":"500:18:21"},"nodeType":"YulExpressionStatement","src":"500:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"453:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"438:2:21"},"nodeType":"YulFunctionCall","src":"438:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"477:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"489:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"474:2:21"},"nodeType":"YulFunctionCall","src":"474:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"435:2:21"},"nodeType":"YulFunctionCall","src":"435:62:21"},"nodeType":"YulIf","src":"432:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"540:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:21"},"nodeType":"YulFunctionCall","src":"529:22:21"},"nodeType":"YulExpressionStatement","src":"529:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"307:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"316:6:21","type":""}],"src":"282:275:21"},{"body":{"nodeType":"YulBlock","src":"619:129:21","statements":[{"body":{"nodeType":"YulBlock","src":"663:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"665:16:21"},"nodeType":"YulFunctionCall","src":"665:18:21"},"nodeType":"YulExpressionStatement","src":"665:18:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"635:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"643:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"632:2:21"},"nodeType":"YulFunctionCall","src":"632:30:21"},"nodeType":"YulIf","src":"629:56:21"},{"nodeType":"YulAssignment","src":"694:48:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"714:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"722:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"710:3:21"},"nodeType":"YulFunctionCall","src":"710:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"727:3:21"},"nodeType":"YulFunctionCall","src":"727:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"706:3:21"},"nodeType":"YulFunctionCall","src":"706:29:21"},{"kind":"number","nodeType":"YulLiteral","src":"737:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"702:3:21"},"nodeType":"YulFunctionCall","src":"702:40:21"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"694:4:21"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"599:6:21","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"610:4:21","type":""}],"src":"562:186:21"},{"body":{"nodeType":"YulBlock","src":"849:710:21","statements":[{"body":{"nodeType":"YulBlock","src":"895:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"907:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"897:6:21"},"nodeType":"YulFunctionCall","src":"897:12:21"},"nodeType":"YulExpressionStatement","src":"897:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"870:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"879:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"866:3:21"},"nodeType":"YulFunctionCall","src":"866:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"891:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"862:3:21"},"nodeType":"YulFunctionCall","src":"862:32:21"},"nodeType":"YulIf","src":"859:52:21"},{"nodeType":"YulVariableDeclaration","src":"920:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"933:12:21"},"nodeType":"YulFunctionCall","src":"933:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"924:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"965:24:21"},"nodeType":"YulFunctionCall","src":"965:31:21"},"nodeType":"YulExpressionStatement","src":"965:31:21"},{"nodeType":"YulAssignment","src":"1005:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"1015:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1029:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1060:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1071:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1056:3:21"},"nodeType":"YulFunctionCall","src":"1056:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1043:12:21"},"nodeType":"YulFunctionCall","src":"1043:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1033:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1118:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1130:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1120:6:21"},"nodeType":"YulFunctionCall","src":"1120:12:21"},"nodeType":"YulExpressionStatement","src":"1120:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1090:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1098:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1087:2:21"},"nodeType":"YulFunctionCall","src":"1087:30:21"},"nodeType":"YulIf","src":"1084:50:21"},{"nodeType":"YulVariableDeclaration","src":"1143:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1168:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:21"},"nodeType":"YulFunctionCall","src":"1153:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1147:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1223:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1232:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1235:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1225:6:21"},"nodeType":"YulFunctionCall","src":"1225:12:21"},"nodeType":"YulExpressionStatement","src":"1225:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1202:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1206:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1198:3:21"},"nodeType":"YulFunctionCall","src":"1198:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1213:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1194:3:21"},"nodeType":"YulFunctionCall","src":"1194:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1187:6:21"},"nodeType":"YulFunctionCall","src":"1187:35:21"},"nodeType":"YulIf","src":"1184:55:21"},{"nodeType":"YulVariableDeclaration","src":"1248:26:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1271:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1258:12:21"},"nodeType":"YulFunctionCall","src":"1258:16:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1252:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1283:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1340:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1312:27:21"},"nodeType":"YulFunctionCall","src":"1312:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1296:15:21"},"nodeType":"YulFunctionCall","src":"1296:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"1287:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1360:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1367:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1353:6:21"},"nodeType":"YulFunctionCall","src":"1353:17:21"},"nodeType":"YulExpressionStatement","src":"1353:17:21"},{"body":{"nodeType":"YulBlock","src":"1416:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:21"},"nodeType":"YulFunctionCall","src":"1418:12:21"},"nodeType":"YulExpressionStatement","src":"1418:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1397:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1389:3:21"},"nodeType":"YulFunctionCall","src":"1389:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1402:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1382:2:21"},"nodeType":"YulFunctionCall","src":"1382:33:21"},"nodeType":"YulIf","src":"1379:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1458:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1465:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1454:3:21"},"nodeType":"YulFunctionCall","src":"1454:14:21"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1474:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1478:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1470:3:21"},"nodeType":"YulFunctionCall","src":"1470:11:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1483:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1441:12:21"},"nodeType":"YulFunctionCall","src":"1441:45:21"},"nodeType":"YulExpressionStatement","src":"1441:45:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1510:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1517:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1506:3:21"},"nodeType":"YulFunctionCall","src":"1506:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"1522:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:21"},"nodeType":"YulFunctionCall","src":"1502:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1527:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1495:6:21"},"nodeType":"YulFunctionCall","src":"1495:34:21"},"nodeType":"YulExpressionStatement","src":"1495:34:21"},{"nodeType":"YulAssignment","src":"1538:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"1548:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1538:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"807:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"818:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"830:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"838:6:21","type":""}],"src":"753:806:21"},{"body":{"nodeType":"YulBlock","src":"1630:184:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1640:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1649:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1644:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1709:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1734:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1739:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:21"},"nodeType":"YulFunctionCall","src":"1730:11:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1753:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1758:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1749:3:21"},"nodeType":"YulFunctionCall","src":"1749:11:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1743:5:21"},"nodeType":"YulFunctionCall","src":"1743:18:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1723:6:21"},"nodeType":"YulFunctionCall","src":"1723:39:21"},"nodeType":"YulExpressionStatement","src":"1723:39:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1670:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1673:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1667:2:21"},"nodeType":"YulFunctionCall","src":"1667:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1681:19:21","statements":[{"nodeType":"YulAssignment","src":"1683:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1692:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"1695:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1688:3:21"},"nodeType":"YulFunctionCall","src":"1688:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1683:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1663:3:21","statements":[]},"src":"1659:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1792:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1797:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1788:3:21"},"nodeType":"YulFunctionCall","src":"1788:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1806:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1781:6:21"},"nodeType":"YulFunctionCall","src":"1781:27:21"},"nodeType":"YulExpressionStatement","src":"1781:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1608:3:21","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1613:3:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"1618:6:21","type":""}],"src":"1564:250:21"},{"body":{"nodeType":"YulBlock","src":"1868:221:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1878:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1898:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1892:5:21"},"nodeType":"YulFunctionCall","src":"1892:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1882:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1920:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1925:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1913:6:21"},"nodeType":"YulFunctionCall","src":"1913:19:21"},"nodeType":"YulExpressionStatement","src":"1913:19:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1980:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1987:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:21"},"nodeType":"YulFunctionCall","src":"1976:16:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1998:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2003:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:21"},"nodeType":"YulFunctionCall","src":"1994:14:21"},{"name":"length","nodeType":"YulIdentifier","src":"2010:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1941:34:21"},"nodeType":"YulFunctionCall","src":"1941:76:21"},"nodeType":"YulExpressionStatement","src":"1941:76:21"},{"nodeType":"YulAssignment","src":"2026:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2041:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2054:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2062:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:21"},"nodeType":"YulFunctionCall","src":"2050:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2071:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2067:3:21"},"nodeType":"YulFunctionCall","src":"2067:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2046:3:21"},"nodeType":"YulFunctionCall","src":"2046:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2037:3:21"},"nodeType":"YulFunctionCall","src":"2037:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"2078:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2033:3:21"},"nodeType":"YulFunctionCall","src":"2033:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2026:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1845:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1852:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1860:3:21","type":""}],"src":"1819:270:21"},{"body":{"nodeType":"YulBlock","src":"2235:157:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2277:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2270:6:21"},"nodeType":"YulFunctionCall","src":"2270:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2263:6:21"},"nodeType":"YulFunctionCall","src":"2263:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2245:6:21"},"nodeType":"YulFunctionCall","src":"2245:41:21"},"nodeType":"YulExpressionStatement","src":"2245:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2306:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2317:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2302:3:21"},"nodeType":"YulFunctionCall","src":"2302:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"2322:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2295:6:21"},"nodeType":"YulFunctionCall","src":"2295:30:21"},"nodeType":"YulExpressionStatement","src":"2295:30:21"},{"nodeType":"YulAssignment","src":"2334:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2359:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2371:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2382:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2367:3:21"},"nodeType":"YulFunctionCall","src":"2367:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2342:16:21"},"nodeType":"YulFunctionCall","src":"2342:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2334:4:21"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2196:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2207:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2215:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2226:4:21","type":""}],"src":"2094:298:21"},{"body":{"nodeType":"YulBlock","src":"2501:352:21","statements":[{"body":{"nodeType":"YulBlock","src":"2547:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2556:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2559:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2549:6:21"},"nodeType":"YulFunctionCall","src":"2549:12:21"},"nodeType":"YulExpressionStatement","src":"2549:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2522:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2531:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2518:3:21"},"nodeType":"YulFunctionCall","src":"2518:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2543:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2514:3:21"},"nodeType":"YulFunctionCall","src":"2514:32:21"},"nodeType":"YulIf","src":"2511:52:21"},{"nodeType":"YulVariableDeclaration","src":"2572:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2598:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2585:12:21"},"nodeType":"YulFunctionCall","src":"2585:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2576:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2642:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2617:24:21"},"nodeType":"YulFunctionCall","src":"2617:31:21"},"nodeType":"YulExpressionStatement","src":"2617:31:21"},{"nodeType":"YulAssignment","src":"2657:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2667:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2657:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2681:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2713:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2724:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2709:3:21"},"nodeType":"YulFunctionCall","src":"2709:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2696:12:21"},"nodeType":"YulFunctionCall","src":"2696:32:21"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2685:7:21","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2762:7:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2737:24:21"},"nodeType":"YulFunctionCall","src":"2737:33:21"},"nodeType":"YulExpressionStatement","src":"2737:33:21"},{"nodeType":"YulAssignment","src":"2779:17:21","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2789:7:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2779:6:21"}]},{"nodeType":"YulAssignment","src":"2805:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2832:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2843:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2828:3:21"},"nodeType":"YulFunctionCall","src":"2828:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2815:12:21"},"nodeType":"YulFunctionCall","src":"2815:32:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2805:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2451:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2462:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2474:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2482:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2490:6:21","type":""}],"src":"2397:456:21"},{"body":{"nodeType":"YulBlock","src":"2959:76:21","statements":[{"nodeType":"YulAssignment","src":"2969:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2981:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2992:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2977:3:21"},"nodeType":"YulFunctionCall","src":"2977:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2969:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3011:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"3022:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3004:6:21"},"nodeType":"YulFunctionCall","src":"3004:25:21"},"nodeType":"YulExpressionStatement","src":"3004:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2928:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2939:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2950:4:21","type":""}],"src":"2858:177:21"},{"body":{"nodeType":"YulBlock","src":"3082:76:21","statements":[{"body":{"nodeType":"YulBlock","src":"3136:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3145:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3148:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3138:6:21"},"nodeType":"YulFunctionCall","src":"3138:12:21"},"nodeType":"YulExpressionStatement","src":"3138:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3105:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3126:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3119:6:21"},"nodeType":"YulFunctionCall","src":"3119:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3112:6:21"},"nodeType":"YulFunctionCall","src":"3112:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3102:2:21"},"nodeType":"YulFunctionCall","src":"3102:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3095:6:21"},"nodeType":"YulFunctionCall","src":"3095:40:21"},"nodeType":"YulIf","src":"3092:60:21"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3071:5:21","type":""}],"src":"3040:118:21"},{"body":{"nodeType":"YulBlock","src":"3283:668:21","statements":[{"body":{"nodeType":"YulBlock","src":"3329:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3338:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3341:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3331:6:21"},"nodeType":"YulFunctionCall","src":"3331:12:21"},"nodeType":"YulExpressionStatement","src":"3331:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3304:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3313:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3300:3:21"},"nodeType":"YulFunctionCall","src":"3300:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3325:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3296:3:21"},"nodeType":"YulFunctionCall","src":"3296:32:21"},"nodeType":"YulIf","src":"3293:52:21"},{"nodeType":"YulVariableDeclaration","src":"3354:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3380:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3367:12:21"},"nodeType":"YulFunctionCall","src":"3367:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3358:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3421:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3399:21:21"},"nodeType":"YulFunctionCall","src":"3399:28:21"},"nodeType":"YulExpressionStatement","src":"3399:28:21"},{"nodeType":"YulAssignment","src":"3436:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3446:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3436:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3460:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3491:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3502:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3487:3:21"},"nodeType":"YulFunctionCall","src":"3487:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3474:12:21"},"nodeType":"YulFunctionCall","src":"3474:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3464:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3515:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3525:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3519:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3570:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3579:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3582:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3572:6:21"},"nodeType":"YulFunctionCall","src":"3572:12:21"},"nodeType":"YulExpressionStatement","src":"3572:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3558:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3566:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3555:2:21"},"nodeType":"YulFunctionCall","src":"3555:14:21"},"nodeType":"YulIf","src":"3552:34:21"},{"nodeType":"YulVariableDeclaration","src":"3595:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3609:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"3620:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3605:3:21"},"nodeType":"YulFunctionCall","src":"3605:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3599:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3675:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3684:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3687:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3677:6:21"},"nodeType":"YulFunctionCall","src":"3677:12:21"},"nodeType":"YulExpressionStatement","src":"3677:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3654:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"3658:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3650:3:21"},"nodeType":"YulFunctionCall","src":"3650:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3665:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3646:3:21"},"nodeType":"YulFunctionCall","src":"3646:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3639:6:21"},"nodeType":"YulFunctionCall","src":"3639:35:21"},"nodeType":"YulIf","src":"3636:55:21"},{"nodeType":"YulVariableDeclaration","src":"3700:30:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3727:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3714:12:21"},"nodeType":"YulFunctionCall","src":"3714:16:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3704:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3757:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3766:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3769:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3759:6:21"},"nodeType":"YulFunctionCall","src":"3759:12:21"},"nodeType":"YulExpressionStatement","src":"3759:12:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3745:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3753:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3742:2:21"},"nodeType":"YulFunctionCall","src":"3742:14:21"},"nodeType":"YulIf","src":"3739:34:21"},{"body":{"nodeType":"YulBlock","src":"3823:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3832:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3835:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3825:6:21"},"nodeType":"YulFunctionCall","src":"3825:12:21"},"nodeType":"YulExpressionStatement","src":"3825:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3796:2:21"},{"name":"length","nodeType":"YulIdentifier","src":"3800:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:21"},"nodeType":"YulFunctionCall","src":"3792:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"3809:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3788:3:21"},"nodeType":"YulFunctionCall","src":"3788:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3814:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3785:2:21"},"nodeType":"YulFunctionCall","src":"3785:37:21"},"nodeType":"YulIf","src":"3782:57:21"},{"nodeType":"YulAssignment","src":"3848:21:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3862:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"3866:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3858:3:21"},"nodeType":"YulFunctionCall","src":"3858:11:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3848:6:21"}]},{"nodeType":"YulAssignment","src":"3878:16:21","value":{"name":"length","nodeType":"YulIdentifier","src":"3888:6:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3878:6:21"}]},{"nodeType":"YulAssignment","src":"3903:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3930:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3941:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3926:3:21"},"nodeType":"YulFunctionCall","src":"3926:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3913:12:21"},"nodeType":"YulFunctionCall","src":"3913:32:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3903:6:21"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3225:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3236:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3248:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3256:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3264:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3272:6:21","type":""}],"src":"3163:788:21"},{"body":{"nodeType":"YulBlock","src":"4042:177:21","statements":[{"body":{"nodeType":"YulBlock","src":"4088:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4097:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4100:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4090:6:21"},"nodeType":"YulFunctionCall","src":"4090:12:21"},"nodeType":"YulExpressionStatement","src":"4090:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4063:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"4072:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4059:3:21"},"nodeType":"YulFunctionCall","src":"4059:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"4084:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4055:3:21"},"nodeType":"YulFunctionCall","src":"4055:32:21"},"nodeType":"YulIf","src":"4052:52:21"},{"nodeType":"YulVariableDeclaration","src":"4113:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4139:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4126:12:21"},"nodeType":"YulFunctionCall","src":"4126:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4117:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4183:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4158:24:21"},"nodeType":"YulFunctionCall","src":"4158:31:21"},"nodeType":"YulExpressionStatement","src":"4158:31:21"},{"nodeType":"YulAssignment","src":"4198:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"4208:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4198:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_Relayer_$4434","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4008:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4019:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4031:6:21","type":""}],"src":"3956:263:21"},{"body":{"nodeType":"YulBlock","src":"4398:175:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4415:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4426:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4408:6:21"},"nodeType":"YulFunctionCall","src":"4408:21:21"},"nodeType":"YulExpressionStatement","src":"4408:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4449:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4460:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4445:3:21"},"nodeType":"YulFunctionCall","src":"4445:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"4465:2:21","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4438:6:21"},"nodeType":"YulFunctionCall","src":"4438:30:21"},"nodeType":"YulExpressionStatement","src":"4438:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4488:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4499:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4484:3:21"},"nodeType":"YulFunctionCall","src":"4484:18:21"},{"hexValue":"4d7573742062652063616c6c65642062792072656c61796572","kind":"string","nodeType":"YulLiteral","src":"4504:27:21","type":"","value":"Must be called by relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4477:6:21"},"nodeType":"YulFunctionCall","src":"4477:55:21"},"nodeType":"YulExpressionStatement","src":"4477:55:21"},{"nodeType":"YulAssignment","src":"4541:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4553:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4564:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4549:3:21"},"nodeType":"YulFunctionCall","src":"4549:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4541:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4375:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4389:4:21","type":""}],"src":"4224:349:21"},{"body":{"nodeType":"YulBlock","src":"4715:150:21","statements":[{"nodeType":"YulVariableDeclaration","src":"4725:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4745:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4739:5:21"},"nodeType":"YulFunctionCall","src":"4739:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4729:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4800:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"4808:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4796:3:21"},"nodeType":"YulFunctionCall","src":"4796:17:21"},{"name":"pos","nodeType":"YulIdentifier","src":"4815:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4820:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4761:34:21"},"nodeType":"YulFunctionCall","src":"4761:66:21"},"nodeType":"YulExpressionStatement","src":"4761:66:21"},{"nodeType":"YulAssignment","src":"4836:23:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4847:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4852:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4843:3:21"},"nodeType":"YulFunctionCall","src":"4843:16:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4836:3:21"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4691:3:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4696:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4707:3:21","type":""}],"src":"4578:287:21"},{"body":{"nodeType":"YulBlock","src":"4999:145:21","statements":[{"nodeType":"YulAssignment","src":"5009:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5021:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5032:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5017:3:21"},"nodeType":"YulFunctionCall","src":"5017:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5009:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5051:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5066:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5082:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5087:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5078:3:21"},"nodeType":"YulFunctionCall","src":"5078:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"5091:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5074:3:21"},"nodeType":"YulFunctionCall","src":"5074:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5062:3:21"},"nodeType":"YulFunctionCall","src":"5062:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5044:6:21"},"nodeType":"YulFunctionCall","src":"5044:51:21"},"nodeType":"YulExpressionStatement","src":"5044:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5115:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5126:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5111:3:21"},"nodeType":"YulFunctionCall","src":"5111:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"5131:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5104:6:21"},"nodeType":"YulFunctionCall","src":"5104:34:21"},"nodeType":"YulExpressionStatement","src":"5104:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4960:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4971:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4979:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4990:4:21","type":""}],"src":"4870:274:21"},{"body":{"nodeType":"YulBlock","src":"5306:218:21","statements":[{"nodeType":"YulAssignment","src":"5316:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5328:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5339:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5324:3:21"},"nodeType":"YulFunctionCall","src":"5324:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5316:4:21"}]},{"nodeType":"YulVariableDeclaration","src":"5351:29:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5369:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5374:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5365:3:21"},"nodeType":"YulFunctionCall","src":"5365:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"5378:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5361:3:21"},"nodeType":"YulFunctionCall","src":"5361:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5355:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5396:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5411:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"5419:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5407:3:21"},"nodeType":"YulFunctionCall","src":"5407:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5389:6:21"},"nodeType":"YulFunctionCall","src":"5389:34:21"},"nodeType":"YulExpressionStatement","src":"5389:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5443:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5454:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5439:3:21"},"nodeType":"YulFunctionCall","src":"5439:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5463:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"5471:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5459:3:21"},"nodeType":"YulFunctionCall","src":"5459:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5432:6:21"},"nodeType":"YulFunctionCall","src":"5432:43:21"},"nodeType":"YulExpressionStatement","src":"5432:43:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5495:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5506:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5491:3:21"},"nodeType":"YulFunctionCall","src":"5491:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"5511:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5484:6:21"},"nodeType":"YulFunctionCall","src":"5484:34:21"},"nodeType":"YulExpressionStatement","src":"5484:34:21"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5259:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5270:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5278:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5286:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5297:4:21","type":""}],"src":"5149:375:21"},{"body":{"nodeType":"YulBlock","src":"5607:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"5653:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5662:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5665:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5655:6:21"},"nodeType":"YulFunctionCall","src":"5655:12:21"},"nodeType":"YulExpressionStatement","src":"5655:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5628:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"5637:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5624:3:21"},"nodeType":"YulFunctionCall","src":"5624:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5620:3:21"},"nodeType":"YulFunctionCall","src":"5620:32:21"},"nodeType":"YulIf","src":"5617:52:21"},{"nodeType":"YulVariableDeclaration","src":"5678:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5697:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5691:5:21"},"nodeType":"YulFunctionCall","src":"5691:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5682:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5738:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"5716:21:21"},"nodeType":"YulFunctionCall","src":"5716:28:21"},"nodeType":"YulExpressionStatement","src":"5716:28:21"},{"nodeType":"YulAssignment","src":"5753:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"5763:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5753:6:21"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5573:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5584:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5596:6:21","type":""}],"src":"5529:245:21"},{"body":{"nodeType":"YulBlock","src":"5909:201:21","statements":[{"body":{"nodeType":"YulBlock","src":"5947:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5956:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5959:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5949:6:21"},"nodeType":"YulFunctionCall","src":"5949:12:21"},"nodeType":"YulExpressionStatement","src":"5949:12:21"}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"5925:10:21"},{"name":"endIndex","nodeType":"YulIdentifier","src":"5937:8:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5922:2:21"},"nodeType":"YulFunctionCall","src":"5922:24:21"},"nodeType":"YulIf","src":"5919:44:21"},{"body":{"nodeType":"YulBlock","src":"5996:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6005:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6008:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5998:6:21"},"nodeType":"YulFunctionCall","src":"5998:12:21"},"nodeType":"YulExpressionStatement","src":"5998:12:21"}]},"condition":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"5978:8:21"},{"name":"length","nodeType":"YulIdentifier","src":"5988:6:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5975:2:21"},"nodeType":"YulFunctionCall","src":"5975:20:21"},"nodeType":"YulIf","src":"5972:40:21"},{"nodeType":"YulAssignment","src":"6021:36:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6038:6:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"6046:10:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6034:3:21"},"nodeType":"YulFunctionCall","src":"6034:23:21"},"variableNames":[{"name":"offsetOut","nodeType":"YulIdentifier","src":"6021:9:21"}]},{"nodeType":"YulAssignment","src":"6066:38:21","value":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"6083:8:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"6093:10:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6079:3:21"},"nodeType":"YulFunctionCall","src":"6079:25:21"},"variableNames":[{"name":"lengthOut","nodeType":"YulIdentifier","src":"6066:9:21"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5843:6:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"5851:6:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"5859:10:21","type":""},{"name":"endIndex","nodeType":"YulTypedName","src":"5871:8:21","type":""}],"returnVariables":[{"name":"offsetOut","nodeType":"YulTypedName","src":"5884:9:21","type":""},{"name":"lengthOut","nodeType":"YulTypedName","src":"5895:9:21","type":""}],"src":"5779:331:21"},{"body":{"nodeType":"YulBlock","src":"6215:223:21","statements":[{"nodeType":"YulVariableDeclaration","src":"6225:29:21","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6248:5:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6235:12:21"},"nodeType":"YulFunctionCall","src":"6235:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6229:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6263:30:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6282:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6273:3:21"},"nodeType":"YulFunctionCall","src":"6273:20:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6267:2:21","type":""}]},{"nodeType":"YulAssignment","src":"6302:20:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6315:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6319:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6311:3:21"},"nodeType":"YulFunctionCall","src":"6311:11:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6302:5:21"}]},{"body":{"nodeType":"YulBlock","src":"6353:79:21","statements":[{"nodeType":"YulAssignment","src":"6367:55:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6384:2:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6396:1:21","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6403:1:21","type":"","value":"4"},{"name":"len","nodeType":"YulIdentifier","src":"6406:3:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6399:3:21"},"nodeType":"YulFunctionCall","src":"6399:11:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6392:3:21"},"nodeType":"YulFunctionCall","src":"6392:19:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6413:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6388:3:21"},"nodeType":"YulFunctionCall","src":"6388:28:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6380:3:21"},"nodeType":"YulFunctionCall","src":"6380:37:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6419:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6376:3:21"},"nodeType":"YulFunctionCall","src":"6376:46:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6367:5:21"}]}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"6337:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"6342:1:21","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6334:2:21"},"nodeType":"YulFunctionCall","src":"6334:10:21"},"nodeType":"YulIf","src":"6331:101:21"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"6190:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"6197:3:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6205:5:21","type":""}],"src":"6115:323:21"},{"body":{"nodeType":"YulBlock","src":"6534:557:21","statements":[{"body":{"nodeType":"YulBlock","src":"6580:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6589:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6592:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6582:6:21"},"nodeType":"YulFunctionCall","src":"6582:12:21"},"nodeType":"YulExpressionStatement","src":"6582:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6555:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"6564:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6551:3:21"},"nodeType":"YulFunctionCall","src":"6551:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"6576:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6547:3:21"},"nodeType":"YulFunctionCall","src":"6547:32:21"},"nodeType":"YulIf","src":"6544:52:21"},{"nodeType":"YulVariableDeclaration","src":"6605:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6625:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6619:5:21"},"nodeType":"YulFunctionCall","src":"6619:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6609:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"6678:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6687:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6690:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6680:6:21"},"nodeType":"YulFunctionCall","src":"6680:12:21"},"nodeType":"YulExpressionStatement","src":"6680:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6650:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"6658:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6647:2:21"},"nodeType":"YulFunctionCall","src":"6647:30:21"},"nodeType":"YulIf","src":"6644:50:21"},{"nodeType":"YulVariableDeclaration","src":"6703:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6717:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"6728:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6713:3:21"},"nodeType":"YulFunctionCall","src":"6713:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6707:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"6783:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6792:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6795:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6785:6:21"},"nodeType":"YulFunctionCall","src":"6785:12:21"},"nodeType":"YulExpressionStatement","src":"6785:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6762:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"6766:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6758:3:21"},"nodeType":"YulFunctionCall","src":"6758:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6773:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6754:3:21"},"nodeType":"YulFunctionCall","src":"6754:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6747:6:21"},"nodeType":"YulFunctionCall","src":"6747:35:21"},"nodeType":"YulIf","src":"6744:55:21"},{"nodeType":"YulVariableDeclaration","src":"6808:19:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6824:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6818:5:21"},"nodeType":"YulFunctionCall","src":"6818:9:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6812:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6836:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6893:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"6865:27:21"},"nodeType":"YulFunctionCall","src":"6865:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6849:15:21"},"nodeType":"YulFunctionCall","src":"6849:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"6840:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6913:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6920:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6906:6:21"},"nodeType":"YulFunctionCall","src":"6906:17:21"},"nodeType":"YulExpressionStatement","src":"6906:17:21"},{"body":{"nodeType":"YulBlock","src":"6969:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6978:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6981:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6971:6:21"},"nodeType":"YulFunctionCall","src":"6971:12:21"},"nodeType":"YulExpressionStatement","src":"6971:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6946:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6950:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6942:3:21"},"nodeType":"YulFunctionCall","src":"6942:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"6955:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6938:3:21"},"nodeType":"YulFunctionCall","src":"6938:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6960:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6935:2:21"},"nodeType":"YulFunctionCall","src":"6935:33:21"},"nodeType":"YulIf","src":"6932:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"7033:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"7037:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7029:3:21"},"nodeType":"YulFunctionCall","src":"7029:11:21"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7046:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"7053:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7042:3:21"},"nodeType":"YulFunctionCall","src":"7042:14:21"},{"name":"_2","nodeType":"YulIdentifier","src":"7058:2:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6994:34:21"},"nodeType":"YulFunctionCall","src":"6994:67:21"},"nodeType":"YulExpressionStatement","src":"6994:67:21"},{"nodeType":"YulAssignment","src":"7070:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"7080:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7070:6:21"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6500:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6511:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6523:6:21","type":""}],"src":"6443:648:21"},{"body":{"nodeType":"YulBlock","src":"7217:98:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7234:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7245:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7227:6:21"},"nodeType":"YulFunctionCall","src":"7227:21:21"},"nodeType":"YulExpressionStatement","src":"7227:21:21"},{"nodeType":"YulAssignment","src":"7257:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7282:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7294:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7305:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7290:3:21"},"nodeType":"YulFunctionCall","src":"7290:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7265:16:21"},"nodeType":"YulFunctionCall","src":"7265:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7257:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7186:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7197:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7208:4:21","type":""}],"src":"7096:219:21"},{"body":{"nodeType":"YulBlock","src":"7428:101:21","statements":[{"nodeType":"YulAssignment","src":"7438:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7450:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7461:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7446:3:21"},"nodeType":"YulFunctionCall","src":"7446:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7438:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7480:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7495:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"7503:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7491:3:21"},"nodeType":"YulFunctionCall","src":"7491:31:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7473:6:21"},"nodeType":"YulFunctionCall","src":"7473:50:21"},"nodeType":"YulExpressionStatement","src":"7473:50:21"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7397:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7408:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7419:4:21","type":""}],"src":"7320:209:21"},{"body":{"nodeType":"YulBlock","src":"7729:298:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7746:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7761:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7777:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7782:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7773:3:21"},"nodeType":"YulFunctionCall","src":"7773:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"7786:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7769:3:21"},"nodeType":"YulFunctionCall","src":"7769:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7757:3:21"},"nodeType":"YulFunctionCall","src":"7757:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7739:6:21"},"nodeType":"YulFunctionCall","src":"7739:51:21"},"nodeType":"YulExpressionStatement","src":"7739:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7810:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7821:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7806:3:21"},"nodeType":"YulFunctionCall","src":"7806:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"7826:3:21","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7799:6:21"},"nodeType":"YulFunctionCall","src":"7799:31:21"},"nodeType":"YulExpressionStatement","src":"7799:31:21"},{"nodeType":"YulAssignment","src":"7839:53:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7864:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7876:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7887:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7872:3:21"},"nodeType":"YulFunctionCall","src":"7872:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7847:16:21"},"nodeType":"YulFunctionCall","src":"7847:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7839:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7912:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7923:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7908:3:21"},"nodeType":"YulFunctionCall","src":"7908:18:21"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7942:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7935:6:21"},"nodeType":"YulFunctionCall","src":"7935:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7928:6:21"},"nodeType":"YulFunctionCall","src":"7928:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7901:6:21"},"nodeType":"YulFunctionCall","src":"7901:50:21"},"nodeType":"YulExpressionStatement","src":"7901:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7971:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7982:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7967:3:21"},"nodeType":"YulFunctionCall","src":"7967:18:21"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7991:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8003:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8008:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7999:3:21"},"nodeType":"YulFunctionCall","src":"7999:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7987:3:21"},"nodeType":"YulFunctionCall","src":"7987:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7960:6:21"},"nodeType":"YulFunctionCall","src":"7960:61:21"},"nodeType":"YulExpressionStatement","src":"7960:61:21"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7674:9:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7685:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7693:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7701:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7709:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7720:4:21","type":""}],"src":"7534:493:21"},{"body":{"nodeType":"YulBlock","src":"8113:103:21","statements":[{"body":{"nodeType":"YulBlock","src":"8159:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8168:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8171:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8161:6:21"},"nodeType":"YulFunctionCall","src":"8161:12:21"},"nodeType":"YulExpressionStatement","src":"8161:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8134:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"8143:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8130:3:21"},"nodeType":"YulFunctionCall","src":"8130:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"8155:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8126:3:21"},"nodeType":"YulFunctionCall","src":"8126:32:21"},"nodeType":"YulIf","src":"8123:52:21"},{"nodeType":"YulAssignment","src":"8184:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8200:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8194:5:21"},"nodeType":"YulFunctionCall","src":"8194:16:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8184:6:21"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8079:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8090:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8102:6:21","type":""}],"src":"8032:184:21"},{"body":{"nodeType":"YulBlock","src":"8253:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8270:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8277:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8282:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8273:3:21"},"nodeType":"YulFunctionCall","src":"8273:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8263:6:21"},"nodeType":"YulFunctionCall","src":"8263:31:21"},"nodeType":"YulExpressionStatement","src":"8263:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8310:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8313:4:21","type":"","value":"0x51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8303:6:21"},"nodeType":"YulFunctionCall","src":"8303:15:21"},"nodeType":"YulExpressionStatement","src":"8303:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8334:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8337:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8327:6:21"},"nodeType":"YulFunctionCall","src":"8327:15:21"},"nodeType":"YulExpressionStatement","src":"8327:15:21"}]},"name":"panic_error_0x51","nodeType":"YulFunctionDefinition","src":"8221:127:21"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\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 mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value1 := add(_2, 32)\n value2 := length\n value3 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_contract$_Relayer_$4434(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Must be called by relayer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4(array, len) -> value\n {\n let _1 := calldataload(array)\n let _2 := shl(224, 0xffffffff)\n value := and(_1, _2)\n if lt(len, 4)\n {\n value := and(and(_1, shl(shl(3, sub(4, len)), _2)), _2)\n }\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), and(value3, shl(224, 0xffffffff)))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function panic_error_0x51()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x71006C09 EQ PUSH2 0x84 JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x87121759 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6D PUSH2 0x68 CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP3 SWAP2 SWAP1 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0x9F CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x31B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0xED CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0x99C JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0xA27 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x16B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x198 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x267 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH2 0x2C6 SWAP3 POP DUP7 SWAP2 POP PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF9FC8619F47185576C57BCB55A726E87AEDD0C97599424AF8325993DA5408320 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH2 0x373 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x38F SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x424 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x448 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x2C6 SWAP1 DUP6 SWAP1 PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x40C10F19 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST DUP4 ISZERO PUSH2 0x502 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318BA0C588A4BDE325B55EBF926BFA606B77D9971AC5FC7250A615885DAF9D5C SWAP1 PUSH1 0x0 SWAP1 LOG1 PUSH2 0x5B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x511 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x51A SWAP2 PUSH2 0xAE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x52B DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0xABB JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x599 SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A6 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x5FD JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x61A JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x628 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x670 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x6CD JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x5A6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x6E9 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x79E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x752 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x771 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x795 SWAP2 SWAP1 PUSH2 0xBDC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x817 JUMPI PUSH2 0x817 PUSH2 0x7D8 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x839 JUMPI PUSH2 0x839 PUSH2 0x7D8 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x85A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x865 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8A5 PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST PUSH2 0x7EE JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x8DD JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x916 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x945 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x96D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x97D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x9BD DUP2 PUSH2 0x98E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA44 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xA94 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x8DA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xA44 DUP2 PUSH2 0x98E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0xB0D JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xB4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xB5D PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xB72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x795 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA44 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xBBA SWAP1 DUP4 ADD DUP7 PUSH2 0x8FE JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xD9 DUP12 PUSH28 0xB6DC5C7058D0FCEFE332656B18C25F186A937B55E96204ABF67FC85D PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"917:1290:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:274:14;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1418:392:16;;;;;;;;;;-1:-1:-1;1418:392:16;;;;;:::i;:::-;;:::i;:::-;;;3004:25:21;;;2992:2;2977:18;1418:392:16;2858:177:21;775:253:14;;;;;;;;;;-1:-1:-1;775:253:14;;;;;:::i;:::-;;:::i;999:413:16:-;;;;;;;;;;-1:-1:-1;999:413:16;;;;;:::i;:::-;;:::i;1866:339::-;;;;;;;;;;-1:-1:-1;1866:339:16;;;;;:::i;:::-;;:::i;:::-;;272:91:14;;;;;;;;;;-1:-1:-1;272:91:14;;;;;:::i;:::-;;:::i;495:274::-;608:12;432:8;;622:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;;;;;;;;;655:27:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;655:27:14::1;;::::0;:11:::1;:27::i;:::-;714:6;-1:-1:-1::0;;;;;714:11:14::1;733:9;749:6;714:48;757:4;714:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;692:70:14;;;;-1:-1:-1;495:274:14;-1:-1:-1;;;495:274:14:o;1418:392:16:-;1542:33;;-1:-1:-1;;;1542:33:16;;-1:-1:-1;;;;;5062:32:21;;;1542:33:16;;;5044:51:21;5111:18;;;5104:34;;;1520:10:16;;1542:19;;;;;;5017:18:21;;1542:33:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1631:66:16;;-1:-1:-1;;;;;5062:32:21;;1631:66:16;;;5044:51:21;5111:18;;;5104:34;;;1593:167:16;;-1:-1:-1;1612:5:16;;-1:-1:-1;5017:18:21;;1631:66:16;;;-1:-1:-1;;1631:66:16;;;;;;;;;;;;;;-1:-1:-1;;;;;1631:66:16;-1:-1:-1;;;1631:66:16;;;-1:-1:-1;;;;1593:5:16;:167::i;:::-;1775:28;;;-1:-1:-1;;;;;5407:15:21;;;5389:34;;5459:15;;5454:2;5439:18;;5432:43;5491:18;;;5484:34;;;1585:175:16;;-1:-1:-1;1775:28:16;;5339:2:21;5324:18;1775:28:16;;;;;;;1418:392;;;;;:::o;775:253:14:-;882:12;432:8;;896:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;929:24:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;929:24:14::1;;::::0;:11:::1;:24::i;:::-;985:6;-1:-1:-1::0;;;;;985:17:14::1;1008:6;1016:4;985:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;999:413:16::0;1125:56;;-1:-1:-1;;;1125:56:16;;-1:-1:-1;;;;;5407:15:21;;;1125:56:16;;;5389:34:21;1168:4:16;5439:18:21;;;5432:43;5491:18;;;5484:34;;;1103:10:16;;1125:27;;;;;;5324:18:21;;1125:56:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1237:62:16;;-1:-1:-1;;;;;5062:32:21;;1237:62:16;;;5044:51:21;5111:18;;;5104:34;;;1199:163:16;;1218:5;;5017:18:21;;1237:62:16;;;-1:-1:-1;;1237:62:16;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:62:16;-1:-1:-1;;;1237:62:16;;;-1:-1:-1;;;;1199:5:16;:163::i;1866:339::-;432:8:14;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;1991:7:16::1;1987:212;;;2019:11;::::0;::::1;::::0;;;::::1;1987:212;;;2061:10;2081:7;2086:1;2061:10:::0;2081:3;;:7:::1;:::i;:::-;2074:15;::::0;::::1;:::i;:::-;2061:28:::0;-1:-1:-1;2103:16:16::1;2128:7;:3:::0;2132:1:::1;2128:3:::0;;:7:::1;:::i;:::-;2103:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;2162:25:16;;2103:33;;-1:-1:-1;2155:33:16::1;::::0;2162:25:::1;::::0;-1:-1:-1;2162:25:16;;::::1;::::0;;;;-1:-1:-1;2162:25:16;::::1;;:::i;:::-;2155:33;;;;;;:::i;:::-;;;;;;;;2047:152;;1987:212;1866:339:::0;;;;:::o;272:91:14:-;8870:21:1;4302:15;;-1:-1:-1;;;4302:15:1;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:1;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:1;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:1;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:1;-1:-1:-1;;;5013:22:1;;;4979:67;338:8:14::1;:18:::0;;-1:-1:-1;;;;;;338:18:14::1;-1:-1:-1::0;;;;;338:18:14;::::1;;::::0;;5066:101:1;;;;5100:23;;-1:-1:-1;;;;5100:23:1;;;5142:14;;-1:-1:-1;7473:50:21;;5142:14:1;;7461:2:21;7446:18;5142:14:1;7320:209:21;5066:101:1;4092:1081;;;;;272:91:14;:::o;6070:121:20:-;6125:59;6180:2;6141:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6141:42:20;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:42:20;-1:-1:-1;;;6141:42:20;;;6125:15;:59::i;:::-;6070:121;:::o;1034:223:14:-;1172:10;1202:8;;:48;;-1:-1:-1;;;1202:48:14;;-1:-1:-1;;;;;1202:8:14;;;;:14;;:48;;1217:6;;1225:4;;1231:8;;1241;;1202:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1194:56;1034:223;-1:-1:-1;;;;;1034:223:14:o;851:129:20:-;922:51;965:7;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;14:131:21:-;-1:-1:-1;;;;;89:31:21;;79:42;;69:70;;135:1;132;125:12;150:127;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:275;353:2;347:9;418:2;399:13;;-1:-1:-1;;395:27:21;383:40;;453:18;438:34;;474:22;;;435:62;432:88;;;500:18;;:::i;:::-;536:2;529:22;282:275;;-1:-1:-1;282:275:21:o;562:186::-;610:4;643:18;635:6;632:30;629:56;;;665:18;;:::i;:::-;-1:-1:-1;731:2:21;710:15;-1:-1:-1;;706:29:21;737:4;702:40;;562:186::o;753:806::-;830:6;838;891:2;879:9;870:7;866:23;862:32;859:52;;;907:1;904;897:12;859:52;946:9;933:23;965:31;990:5;965:31;:::i;:::-;1015:5;-1:-1:-1;1071:2:21;1056:18;;1043:32;1098:18;1087:30;;1084:50;;;1130:1;1127;1120:12;1084:50;1153:22;;1206:4;1198:13;;1194:27;-1:-1:-1;1184:55:21;;1235:1;1232;1225:12;1184:55;1271:2;1258:16;1296:48;1312:31;1340:2;1312:31;:::i;:::-;1296:48;:::i;:::-;1367:2;1360:5;1353:17;1407:7;1402:2;1397;1393;1389:11;1385:20;1382:33;1379:53;;;1428:1;1425;1418:12;1379:53;1483:2;1478;1474;1470:11;1465:2;1458:5;1454:14;1441:45;1527:1;1522:2;1517;1510:5;1506:14;1502:23;1495:34;1548:5;1538:15;;;;;753:806;;;;;:::o;1564:250::-;1649:1;1659:113;1673:6;1670:1;1667:13;1659:113;;;1749:11;;;1743:18;1730:11;;;1723:39;1695:2;1688:10;1659:113;;;-1:-1:-1;;1806:1:21;1788:16;;1781:27;1564:250::o;1819:270::-;1860:3;1898:5;1892:12;1925:6;1920:3;1913:19;1941:76;2010:6;2003:4;1998:3;1994:14;1987:4;1980:5;1976:16;1941:76;:::i;:::-;2071:2;2050:15;-1:-1:-1;;2046:29:21;2037:39;;;;2078:4;2033:50;;1819:270;-1:-1:-1;;1819:270:21:o;2094:298::-;2277:6;2270:14;2263:22;2252:9;2245:41;2322:2;2317;2306:9;2302:18;2295:30;2226:4;2342:44;2382:2;2371:9;2367:18;2359:6;2342:44;:::i;:::-;2334:52;2094:298;-1:-1:-1;;;;2094:298:21:o;2397:456::-;2474:6;2482;2490;2543:2;2531:9;2522:7;2518:23;2514:32;2511:52;;;2559:1;2556;2549:12;2511:52;2598:9;2585:23;2617:31;2642:5;2617:31;:::i;:::-;2667:5;-1:-1:-1;2724:2:21;2709:18;;2696:32;2737:33;2696:32;2737:33;:::i;:::-;2397:456;;2789:7;;-1:-1:-1;;;2843:2:21;2828:18;;;;2815:32;;2397:456::o;3040:118::-;3126:5;3119:13;3112:21;3105:5;3102:32;3092:60;;3148:1;3145;3138:12;3163:788;3248:6;3256;3264;3272;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;3380:9;3367:23;3399:28;3421:5;3399:28;:::i;:::-;3446:5;-1:-1:-1;3502:2:21;3487:18;;3474:32;3525:18;3555:14;;;3552:34;;;3582:1;3579;3572:12;3552:34;3620:6;3609:9;3605:22;3595:32;;3665:7;3658:4;3654:2;3650:13;3646:27;3636:55;;3687:1;3684;3677:12;3636:55;3727:2;3714:16;3753:2;3745:6;3742:14;3739:34;;;3769:1;3766;3759:12;3739:34;3814:7;3809:2;3800:6;3796:2;3792:15;3788:24;3785:37;3782:57;;;3835:1;3832;3825:12;3782:57;3163:788;;3866:2;3858:11;;;;;-1:-1:-1;3888:6:21;;3941:2;3926:18;3913:32;;-1:-1:-1;3163:788:21;-1:-1:-1;;;3163:788:21:o;3956:263::-;4031:6;4084:2;4072:9;4063:7;4059:23;4055:32;4052:52;;;4100:1;4097;4090:12;4052:52;4139:9;4126:23;4158:31;4183:5;4158:31;:::i;:::-;4208:5;3956:263;-1:-1:-1;;;3956:263:21:o;4224:349::-;4426:2;4408:21;;;4465:2;4445:18;;;4438:30;4504:27;4499:2;4484:18;;4477:55;4564:2;4549:18;;4224:349::o;4578:287::-;4707:3;4745:6;4739:13;4761:66;4820:6;4815:3;4808:4;4800:6;4796:17;4761:66;:::i;:::-;4843:16;;;;;4578:287;-1:-1:-1;;4578:287:21:o;5529:245::-;5596:6;5649:2;5637:9;5628:7;5624:23;5620:32;5617:52;;;5665:1;5662;5655:12;5617:52;5697:9;5691:16;5716:28;5738:5;5716:28;:::i;5779:331::-;5884:9;5895;5937:8;5925:10;5922:24;5919:44;;;5959:1;5956;5949:12;5919:44;5988:6;5978:8;5975:20;5972:40;;;6008:1;6005;5998:12;5972:40;-1:-1:-1;;6034:23:21;;;6079:25;;;;;-1:-1:-1;5779:331:21:o;6115:323::-;-1:-1:-1;;;;;;6235:19:21;;6311:11;;;;6342:1;6334:10;;6331:101;;;6419:2;6413;6406:3;6403:1;6399:11;6396:1;6392:19;6388:28;6384:2;6380:37;6376:46;6367:55;;6331:101;;;6115:323;;;;:::o;6443:648::-;6523:6;6576:2;6564:9;6555:7;6551:23;6547:32;6544:52;;;6592:1;6589;6582:12;6544:52;6625:9;6619:16;6658:18;6650:6;6647:30;6644:50;;;6690:1;6687;6680:12;6644:50;6713:22;;6766:4;6758:13;;6754:27;-1:-1:-1;6744:55:21;;6795:1;6792;6785:12;6744:55;6824:2;6818:9;6849:48;6865:31;6893:2;6865:31;:::i;6849:48::-;6920:2;6913:5;6906:17;6960:7;6955:2;6950;6946;6942:11;6938:20;6935:33;6932:53;;;6981:1;6978;6971:12;6932:53;6994:67;7058:2;7053;7046:5;7042:14;7037:2;7033;7029:11;6994:67;:::i;7096:219::-;7245:2;7234:9;7227:21;7208:4;7265:44;7305:2;7294:9;7290:18;7282:6;7265:44;:::i;7534:493::-;-1:-1:-1;;;;;7757:32:21;;7739:51;;7826:3;7821:2;7806:18;;7799:31;;;-1:-1:-1;;7847:45:21;;7872:19;;7864:6;7847:45;:::i;:::-;7935:14;;7928:22;7923:2;7908:18;;7901:50;-1:-1:-1;;;;;;;7987:33:21;;;;7982:2;7967:18;;;7960:61;7839:53;7534:493;-1:-1:-1;;7534:493:21:o;8032:184::-;8102:6;8155:2;8143:9;8134:7;8130:23;8126:32;8123:52;;;8171:1;8168;8161:12;8123:52;-1:-1:-1;8194:16:21;;8032:184;-1:-1:-1;8032:184:21:o"},"methodIdentifiers":{"bridge(address,address,uint256)":"87121759","dispatched(address,bytes)":"5d903f03","exit(address,address,uint256)":"71006c09","finish(bool,bytes,uint256)":"b2c642d1","initialize(address)":"c4d66de8","queried(address,bytes)":"82dcc731"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Started\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Succeeded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"dispatched\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"exit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"res\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"finish\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Relayer\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"queried\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Bridge.sol\":\"ERC20Bridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/ERC20Bridge.sol\":{\"keccak256\":\"0xba3f8b86233053bf90a6df93e573b7c887839a7983f03a50fc3ac083b712c97a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8927b354595525561dca5682973c44a98a43b0e51eb12a8db265f5b7e848b392\",\"dweb:/ipfs/QmYU24nSAXbnxn4Tj98dxyg9BnfQUv3n1Dh24gf7P4aaQ6\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"MyToken":{"abi":[{"inputs":[{"internalType":"address","name":"bridge_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3837":{"entryPoint":null,"id":3837,"parameterSlots":3,"returnSlots":0},"@_3893":{"entryPoint":null,"id":3893,"parameterSlots":1,"returnSlots":0},"@_442":{"entryPoint":null,"id":442,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":201,"id":745,"parameterSlots":2,"returnSlots":0},"@_update_712":{"entryPoint":267,"id":712,"parameterSlots":3,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":574,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":993,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":706,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":789,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":646,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":624,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3994:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:21","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:21"},"nodeType":"YulFunctionCall","src":"143:12:21"},"nodeType":"YulExpressionStatement","src":"143:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:21"},"nodeType":"YulFunctionCall","src":"112:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:21"},"nodeType":"YulFunctionCall","src":"108:32:21"},"nodeType":"YulIf","src":"105:52:21"},{"nodeType":"YulVariableDeclaration","src":"166:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:21"},"nodeType":"YulFunctionCall","src":"179:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:21"},"nodeType":"YulFunctionCall","src":"260:12:21"},"nodeType":"YulExpressionStatement","src":"260:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:21"},"nodeType":"YulFunctionCall","src":"239:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:21"},"nodeType":"YulFunctionCall","src":"235:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:21"},"nodeType":"YulFunctionCall","src":"224:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:21"},"nodeType":"YulFunctionCall","src":"214:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:21"},"nodeType":"YulFunctionCall","src":"207:50:21"},"nodeType":"YulIf","src":"204:70:21"},{"nodeType":"YulAssignment","src":"283:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:21"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:21","type":""}],"src":"14:290:21"},{"body":{"nodeType":"YulBlock","src":"341:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"358:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"365:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"370:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"361:3:21"},"nodeType":"YulFunctionCall","src":"361:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"351:6:21"},"nodeType":"YulFunctionCall","src":"351:31:21"},"nodeType":"YulExpressionStatement","src":"351:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"398:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"401:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"391:6:21"},"nodeType":"YulFunctionCall","src":"391:15:21"},"nodeType":"YulExpressionStatement","src":"391:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"422:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"425:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"415:6:21"},"nodeType":"YulFunctionCall","src":"415:15:21"},"nodeType":"YulExpressionStatement","src":"415:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"309:127:21"},{"body":{"nodeType":"YulBlock","src":"496:325:21","statements":[{"nodeType":"YulAssignment","src":"506:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"520:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"523:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"516:3:21"},"nodeType":"YulFunctionCall","src":"516:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"506:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"537:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"567:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"573:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"563:3:21"},"nodeType":"YulFunctionCall","src":"563:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"541:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"614:31:21","statements":[{"nodeType":"YulAssignment","src":"616:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"630:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"638:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"626:3:21"},"nodeType":"YulFunctionCall","src":"626:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"616:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"594:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"587:6:21"},"nodeType":"YulFunctionCall","src":"587:26:21"},"nodeType":"YulIf","src":"584:61:21"},{"body":{"nodeType":"YulBlock","src":"704:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"732:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"737:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"728:3:21"},"nodeType":"YulFunctionCall","src":"728:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"718:6:21"},"nodeType":"YulFunctionCall","src":"718:31:21"},"nodeType":"YulExpressionStatement","src":"718:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"769:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"772:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"762:6:21"},"nodeType":"YulFunctionCall","src":"762:15:21"},"nodeType":"YulExpressionStatement","src":"762:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"797:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"800:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"790:6:21"},"nodeType":"YulFunctionCall","src":"790:15:21"},"nodeType":"YulExpressionStatement","src":"790:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"660:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"683:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"691:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"680:2:21"},"nodeType":"YulFunctionCall","src":"680:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"657:2:21"},"nodeType":"YulFunctionCall","src":"657:38:21"},"nodeType":"YulIf","src":"654:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"476:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"485:6:21","type":""}],"src":"441:380:21"},{"body":{"nodeType":"YulBlock","src":"882:65:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"899:1:21","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"902:3:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"892:6:21"},"nodeType":"YulFunctionCall","src":"892:14:21"},"nodeType":"YulExpressionStatement","src":"892:14:21"},{"nodeType":"YulAssignment","src":"915:26:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"933:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"936:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"923:9:21"},"nodeType":"YulFunctionCall","src":"923:18:21"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"915:4:21"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"865:3:21","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"873:4:21","type":""}],"src":"826:121:21"},{"body":{"nodeType":"YulBlock","src":"1033:464:21","statements":[{"body":{"nodeType":"YulBlock","src":"1066:425:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1080:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1090:1:21","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1084:2:21","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1111:2:21"},{"name":"array","nodeType":"YulIdentifier","src":"1115:5:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1104:6:21"},"nodeType":"YulFunctionCall","src":"1104:17:21"},"nodeType":"YulExpressionStatement","src":"1104:17:21"},{"nodeType":"YulVariableDeclaration","src":"1134:31:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1156:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1160:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1146:9:21"},"nodeType":"YulFunctionCall","src":"1146:19:21"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"1138:4:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1178:57:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1201:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1211:1:21","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1218:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1230:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1214:3:21"},"nodeType":"YulFunctionCall","src":"1214:19:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1207:3:21"},"nodeType":"YulFunctionCall","src":"1207:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1197:3:21"},"nodeType":"YulFunctionCall","src":"1197:38:21"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"1182:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1272:23:21","statements":[{"nodeType":"YulAssignment","src":"1274:19:21","value":{"name":"data","nodeType":"YulIdentifier","src":"1289:4:21"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"1274:11:21"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1254:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1266:4:21","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1251:2:21"},"nodeType":"YulFunctionCall","src":"1251:20:21"},"nodeType":"YulIf","src":"1248:47:21"},{"nodeType":"YulVariableDeclaration","src":"1308:41:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1322:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1332:1:21","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1339:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"1344:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1335:3:21"},"nodeType":"YulFunctionCall","src":"1335:12:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1328:3:21"},"nodeType":"YulFunctionCall","src":"1328:20:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:21"},"nodeType":"YulFunctionCall","src":"1318:31:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1312:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1362:24:21","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1375:11:21"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1366:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1460:21:21","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1469:5:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1476:2:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1462:6:21"},"nodeType":"YulFunctionCall","src":"1462:17:21"},"nodeType":"YulExpressionStatement","src":"1462:17:21"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1410:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1417:2:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1407:2:21"},"nodeType":"YulFunctionCall","src":"1407:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1421:26:21","statements":[{"nodeType":"YulAssignment","src":"1423:22:21","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1436:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1443:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1432:3:21"},"nodeType":"YulFunctionCall","src":"1432:13:21"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1423:5:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1403:3:21","statements":[]},"src":"1399:82:21"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1049:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"1054:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1046:2:21"},"nodeType":"YulFunctionCall","src":"1046:11:21"},"nodeType":"YulIf","src":"1043:448:21"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1005:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"1012:3:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1017:10:21","type":""}],"src":"952:545:21"},{"body":{"nodeType":"YulBlock","src":"1587:81:21","statements":[{"nodeType":"YulAssignment","src":"1597:65:21","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1612:4:21"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1630:1:21","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1633:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1626:3:21"},"nodeType":"YulFunctionCall","src":"1626:11:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1643:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1639:3:21"},"nodeType":"YulFunctionCall","src":"1639:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1622:3:21"},"nodeType":"YulFunctionCall","src":"1622:24:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1618:3:21"},"nodeType":"YulFunctionCall","src":"1618:29:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1608:3:21"},"nodeType":"YulFunctionCall","src":"1608:40:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1654:1:21","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1657:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1650:3:21"},"nodeType":"YulFunctionCall","src":"1650:11:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1605:2:21"},"nodeType":"YulFunctionCall","src":"1605:57:21"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1597:4:21"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1564:4:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"1570:3:21","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1578:4:21","type":""}],"src":"1502:166:21"},{"body":{"nodeType":"YulBlock","src":"1769:1256:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1779:24:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1799:3:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1793:5:21"},"nodeType":"YulFunctionCall","src":"1793:10:21"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1783:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1846:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1848:16:21"},"nodeType":"YulFunctionCall","src":"1848:18:21"},"nodeType":"YulExpressionStatement","src":"1848:18:21"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1818:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1838:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1830:3:21"},"nodeType":"YulFunctionCall","src":"1830:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1842:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1826:3:21"},"nodeType":"YulFunctionCall","src":"1826:18:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1815:2:21"},"nodeType":"YulFunctionCall","src":"1815:30:21"},"nodeType":"YulIf","src":"1812:56:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1921:4:21"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1959:4:21"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1953:5:21"},"nodeType":"YulFunctionCall","src":"1953:11:21"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1927:25:21"},"nodeType":"YulFunctionCall","src":"1927:38:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"1967:6:21"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1877:43:21"},"nodeType":"YulFunctionCall","src":"1877:97:21"},"nodeType":"YulExpressionStatement","src":"1877:97:21"},{"nodeType":"YulVariableDeclaration","src":"1983:18:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2000:1:21","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1987:9:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2010:23:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2029:4:21","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2014:11:21","type":""}]},{"nodeType":"YulAssignment","src":"2042:24:21","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2055:11:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2042:9:21"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"2112:656:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2126:35:21","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2145:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2157:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2153:3:21"},"nodeType":"YulFunctionCall","src":"2153:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2141:3:21"},"nodeType":"YulFunctionCall","src":"2141:20:21"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"2130:7:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2174:49:21","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2218:4:21"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"2188:29:21"},"nodeType":"YulFunctionCall","src":"2188:35:21"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"2178:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2236:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2245:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2240:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2323:172:21","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2348:6:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2366:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2371:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2362:3:21"},"nodeType":"YulFunctionCall","src":"2362:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2356:5:21"},"nodeType":"YulFunctionCall","src":"2356:26:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2341:6:21"},"nodeType":"YulFunctionCall","src":"2341:42:21"},"nodeType":"YulExpressionStatement","src":"2341:42:21"},{"nodeType":"YulAssignment","src":"2400:24:21","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2414:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2422:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2410:3:21"},"nodeType":"YulFunctionCall","src":"2410:14:21"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2400:6:21"}]},{"nodeType":"YulAssignment","src":"2441:40:21","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2458:9:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2469:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:21"},"nodeType":"YulFunctionCall","src":"2454:27:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2441:9:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2270:1:21"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"2273:7:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2267:2:21"},"nodeType":"YulFunctionCall","src":"2267:14:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2282:28:21","statements":[{"nodeType":"YulAssignment","src":"2284:24:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2293:1:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2296:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:21"},"nodeType":"YulFunctionCall","src":"2289:19:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2284:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2263:3:21","statements":[]},"src":"2259:236:21"},{"body":{"nodeType":"YulBlock","src":"2543:166:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2561:43:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2588:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2593:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:21"},"nodeType":"YulFunctionCall","src":"2584:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2578:5:21"},"nodeType":"YulFunctionCall","src":"2578:26:21"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2565:9:21","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2628:6:21"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2640:9:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2667:1:21","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2670:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2663:3:21"},"nodeType":"YulFunctionCall","src":"2663:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"2679:3:21","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2659:3:21"},"nodeType":"YulFunctionCall","src":"2659:24:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2685:3:21"},"nodeType":"YulFunctionCall","src":"2685:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2655:3:21"},"nodeType":"YulFunctionCall","src":"2655:37:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2651:3:21"},"nodeType":"YulFunctionCall","src":"2651:42:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2636:3:21"},"nodeType":"YulFunctionCall","src":"2636:58:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2621:6:21"},"nodeType":"YulFunctionCall","src":"2621:74:21"},"nodeType":"YulExpressionStatement","src":"2621:74:21"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2514:7:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"2523:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2511:2:21"},"nodeType":"YulFunctionCall","src":"2511:19:21"},"nodeType":"YulIf","src":"2508:201:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2729:4:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2743:1:21","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2746:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2739:3:21"},"nodeType":"YulFunctionCall","src":"2739:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"2755:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2735:3:21"},"nodeType":"YulFunctionCall","src":"2735:22:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2722:6:21"},"nodeType":"YulFunctionCall","src":"2722:36:21"},"nodeType":"YulExpressionStatement","src":"2722:36:21"}]},"nodeType":"YulCase","src":"2105:663:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2110:1:21","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2785:234:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2799:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2812:1:21","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2803:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2848:67:21","statements":[{"nodeType":"YulAssignment","src":"2866:35:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2885:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2890:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2881:3:21"},"nodeType":"YulFunctionCall","src":"2881:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2875:5:21"},"nodeType":"YulFunctionCall","src":"2875:26:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2866:5:21"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2829:6:21"},"nodeType":"YulIf","src":"2826:89:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2935:4:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2994:5:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"3001:6:21"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2941:52:21"},"nodeType":"YulFunctionCall","src":"2941:67:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2928:6:21"},"nodeType":"YulFunctionCall","src":"2928:81:21"},"nodeType":"YulExpressionStatement","src":"2928:81:21"}]},"nodeType":"YulCase","src":"2777:242:21","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2085:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2082:2:21"},"nodeType":"YulFunctionCall","src":"2082:14:21"},"nodeType":"YulSwitch","src":"2075:944:21"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1754:4:21","type":""},{"name":"src","nodeType":"YulTypedName","src":"1760:3:21","type":""}],"src":"1673:1352:21"},{"body":{"nodeType":"YulBlock","src":"3131:102:21","statements":[{"nodeType":"YulAssignment","src":"3141:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3153:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3164:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3149:3:21"},"nodeType":"YulFunctionCall","src":"3149:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3141:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3183:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3198:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3214:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3219:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3210:3:21"},"nodeType":"YulFunctionCall","src":"3210:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3223:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3206:3:21"},"nodeType":"YulFunctionCall","src":"3206:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3194:3:21"},"nodeType":"YulFunctionCall","src":"3194:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3176:6:21"},"nodeType":"YulFunctionCall","src":"3176:51:21"},"nodeType":"YulExpressionStatement","src":"3176:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3100:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3111:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3122:4:21","type":""}],"src":"3030:203:21"},{"body":{"nodeType":"YulBlock","src":"3286:174:21","statements":[{"nodeType":"YulAssignment","src":"3296:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3307:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"3310:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:21"},"nodeType":"YulFunctionCall","src":"3303:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3296:3:21"}]},{"body":{"nodeType":"YulBlock","src":"3343:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3364:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3371:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3376:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3367:3:21"},"nodeType":"YulFunctionCall","src":"3367:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3357:6:21"},"nodeType":"YulFunctionCall","src":"3357:31:21"},"nodeType":"YulExpressionStatement","src":"3357:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3408:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3411:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3401:6:21"},"nodeType":"YulFunctionCall","src":"3401:15:21"},"nodeType":"YulExpressionStatement","src":"3401:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3436:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3439:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3429:6:21"},"nodeType":"YulFunctionCall","src":"3429:15:21"},"nodeType":"YulExpressionStatement","src":"3429:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3327:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"3330:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3324:2:21"},"nodeType":"YulFunctionCall","src":"3324:10:21"},"nodeType":"YulIf","src":"3321:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3269:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"3272:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3278:3:21","type":""}],"src":"3238:222:21"},{"body":{"nodeType":"YulBlock","src":"3622:188:21","statements":[{"nodeType":"YulAssignment","src":"3632:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3644:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3655:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3640:3:21"},"nodeType":"YulFunctionCall","src":"3640:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3632:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3674:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3689:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3705:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3710:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3701:3:21"},"nodeType":"YulFunctionCall","src":"3701:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3714:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3697:3:21"},"nodeType":"YulFunctionCall","src":"3697:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3685:3:21"},"nodeType":"YulFunctionCall","src":"3685:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3667:6:21"},"nodeType":"YulFunctionCall","src":"3667:51:21"},"nodeType":"YulExpressionStatement","src":"3667:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3738:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3749:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3734:3:21"},"nodeType":"YulFunctionCall","src":"3734:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"3754:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3727:6:21"},"nodeType":"YulFunctionCall","src":"3727:34:21"},"nodeType":"YulExpressionStatement","src":"3727:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3781:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3792:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3777:3:21"},"nodeType":"YulFunctionCall","src":"3777:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"3797:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3770:6:21"},"nodeType":"YulFunctionCall","src":"3770:34:21"},"nodeType":"YulExpressionStatement","src":"3770:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3575:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3586:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3594:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3602:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3613:4:21","type":""}],"src":"3465:345:21"},{"body":{"nodeType":"YulBlock","src":"3916:76:21","statements":[{"nodeType":"YulAssignment","src":"3926:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3938:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3949:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3934:3:21"},"nodeType":"YulFunctionCall","src":"3934:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3926:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3968:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"3979:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3961:6:21"},"nodeType":"YulFunctionCall","src":"3961:25:21"},"nodeType":"YulExpressionStatement","src":"3961:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3885:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3896:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3907:4:21","type":""}],"src":"3815:177:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000d1838038062000d1883398101604081905262000034916200023e565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b815250828282816003908162000084919062000315565b50600462000093828262000315565b5050600580546001600160a01b0319166001600160a01b03841617905550620000bf336103e8620000c9565b5050505062000409565b6001600160a01b038216620000f95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b62000107600083836200010b565b5050565b6001600160a01b0383166200013a5780600260008282546200012e9190620003e1565b90915550620001ae9050565b6001600160a01b038316600090815260208190526040902054818110156200018f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001cc57600280548290039055620001eb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023191815260200190565b60405180910390a3505050565b6000602082840312156200025157600080fd5b81516001600160a01b03811681146200026957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029b57607f821691505b602082108103620002bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031057600081815260208120601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b0381111562000331576200033162000270565b620003498162000342845462000286565b84620002c2565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200040357634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD18 CODESIZE SUB DUP1 PUSH3 0xD18 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x26BCAA37B5B2B7 PUSH1 0xC9 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x4D544B PUSH1 0xE8 SHL DUP2 MSTORE POP DUP3 DUP3 DUP3 DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x84 SWAP2 SWAP1 PUSH3 0x315 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x93 DUP3 DUP3 PUSH3 0x315 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE POP PUSH3 0xBF CALLER PUSH2 0x3E8 PUSH3 0xC9 JUMP JUMPDEST POP POP POP POP PUSH3 0x409 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xF9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x107 PUSH1 0x0 DUP4 DUP4 PUSH3 0x10B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x13A JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x12E SWAP2 SWAP1 PUSH3 0x3E1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH3 0x1AE SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH3 0x18F JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH3 0xF0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x1CC JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH3 0x1EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x231 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x29B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x310 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x2EB JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x30C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x2F7 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x331 JUMPI PUSH3 0x331 PUSH3 0x270 JUMP JUMPDEST PUSH3 0x349 DUP2 PUSH3 0x342 DUP5 SLOAD PUSH3 0x286 JUMP JUMPDEST DUP5 PUSH3 0x2C2 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x381 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x368 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x30C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3B2 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x391 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x3D1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH3 0x403 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8FF DUP1 PUSH3 0x419 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xB7 ADD 0xAE 0xB3 DUP6 0xEE 0xA7 0xEB RETURN STATICCALL COINBASE DUP2 0xCF JUMPI RETURNDATASIZE 0xB5 SWAP11 EXTCODEHASH SWAP11 0x27 PUSH31 0x37AEB67C2FCB148545B64736F6C6343000814003300000000000000000000 ","sourceMap":"803:112:16:-:0;;;842:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;296:192;;;;;;;;;;;;;-1:-1:-1;;;296:192:16;;;;;;;;;;;;;;;;-1:-1:-1;;;296:192:16;;;902:7;405:5;412:7;1970:5:2;1962;:13;;;;;;:::i;:::-;-1:-1:-1;1985:7:2;:17;1995:7;1985;:17;:::i;:::-;-1:-1:-1;;431:7:16::1;:17:::0;;-1:-1:-1;;;;;;431:17:16::1;-1:-1:-1::0;;;;;431:17:16;::::1;;::::0;;-1:-1:-1;458:23:16::1;464:10;476:4;458:5;:23::i;:::-;296:192:::0;;;842:71;803:112;;7721:208:2;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;3176:51:21;3149:18;;7835:32:2;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;3685:32:21;;6649:50:2;;;3667:51:21;3734:18;;;3727:34;;;3777:18;;;3770:34;;;3640:18;;6649:50:2;3465:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;3961::21;;3949:2;3934:18;;3815:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:290:21:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:21;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:21:o;309:127::-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15;441:380;520:1;516:12;;;;563;;;584:61;;638:4;630:6;626:17;616:27;;584:61;691:2;683:6;680:14;660:18;657:38;654:161;;737:10;732:3;728:20;725:1;718:31;772:4;769:1;762:15;800:4;797:1;790:15;654:161;;441:380;;;:::o;952:545::-;1054:2;1049:3;1046:11;1043:448;;;1090:1;1115:5;1111:2;1104:17;1160:4;1156:2;1146:19;1230:2;1218:10;1214:19;1211:1;1207:27;1201:4;1197:38;1266:4;1254:10;1251:20;1248:47;;;-1:-1:-1;1289:4:21;1248:47;1344:2;1339:3;1335:12;1332:1;1328:20;1322:4;1318:31;1308:41;;1399:82;1417:2;1410:5;1407:13;1399:82;;;1462:17;;;1443:1;1432:13;1399:82;;;1403:3;;;1043:448;952:545;;;:::o;1673:1352::-;1793:10;;-1:-1:-1;;;;;1815:30:21;;1812:56;;;1848:18;;:::i;:::-;1877:97;1967:6;1927:38;1959:4;1953:11;1927:38;:::i;:::-;1921:4;1877:97;:::i;:::-;2029:4;;2093:2;2082:14;;2110:1;2105:663;;;;2812:1;2829:6;2826:89;;;-1:-1:-1;2881:19:21;;;2875:26;2826:89;-1:-1:-1;;1630:1:21;1626:11;;;1622:24;1618:29;1608:40;1654:1;1650:11;;;1605:57;2928:81;;2075:944;;2105:663;899:1;892:14;;;936:4;923:18;;-1:-1:-1;;2141:20:21;;;2259:236;2273:7;2270:1;2267:14;2259:236;;;2362:19;;;2356:26;2341:42;;2454:27;;;;2422:1;2410:14;;;;2289:19;;2259:236;;;2263:3;2523:6;2514:7;2511:19;2508:201;;;2584:19;;;2578:26;-1:-1:-1;;2667:1:21;2663:14;;;2679:3;2659:24;2655:37;2651:42;2636:58;2621:74;;2508:201;-1:-1:-1;;;;;2755:1:21;2739:14;;;2735:22;2722:36;;-1:-1:-1;1673:1352:21:o;3238:222::-;3303:9;;;3324:10;;;3321:133;;;3376:10;3371:3;3367:20;3364:1;3357:31;3411:4;3408:1;3401:15;3439:4;3436:1;3429:15;3321:133;3238:222;;;;:::o;3815:177::-;803:112:16;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_796":{"entryPoint":982,"id":796,"parameterSlots":3,"returnSlots":0},"@_approve_856":{"entryPoint":1329,"id":856,"parameterSlots":4,"returnSlots":0},"@_burn_778":{"entryPoint":1275,"id":778,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":1221,"id":745,"parameterSlots":2,"returnSlots":0},"@_msgSender_1067":{"entryPoint":null,"id":1067,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_904":{"entryPoint":1000,"id":904,"parameterSlots":3,"returnSlots":0},"@_transfer_635":{"entryPoint":1126,"id":635,"parameterSlots":3,"returnSlots":0},"@_update_712":{"entryPoint":1542,"id":712,"parameterSlots":3,"returnSlots":0},"@allowance_532":{"entryPoint":null,"id":532,"parameterSlots":2,"returnSlots":1},"@approve_556":{"entryPoint":678,"id":556,"parameterSlots":2,"returnSlots":1},"@balanceOf_491":{"entryPoint":null,"id":491,"parameterSlots":1,"returnSlots":1},"@burnFrom_1028":{"entryPoint":847,"id":1028,"parameterSlots":2,"returnSlots":0},"@burn_1007":{"entryPoint":834,"id":1007,"parameterSlots":1,"returnSlots":0},"@burn_3879":{"entryPoint":883,"id":3879,"parameterSlots":2,"returnSlots":0},"@decimals_469":{"entryPoint":null,"id":469,"parameterSlots":0,"returnSlots":1},"@mint_3864":{"entryPoint":740,"id":3864,"parameterSlots":2,"returnSlots":0},"@name_451":{"entryPoint":532,"id":451,"parameterSlots":0,"returnSlots":1},"@symbol_460":{"entryPoint":868,"id":460,"parameterSlots":0,"returnSlots":1},"@totalSupply_478":{"entryPoint":null,"id":478,"parameterSlots":0,"returnSlots":1},"@transferFrom_588":{"entryPoint":704,"id":588,"parameterSlots":3,"returnSlots":1},"@transfer_515":{"entryPoint":968,"id":515,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2107,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1988,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1946,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2216,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2158,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4051:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:21","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:21"},"nodeType":"YulFunctionCall","src":"166:21:21"},"nodeType":"YulExpressionStatement","src":"166:21:21"},{"nodeType":"YulVariableDeclaration","src":"196:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:21"},"nodeType":"YulFunctionCall","src":"210:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:21"},"nodeType":"YulFunctionCall","src":"239:18:21"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:34:21"},"nodeType":"YulExpressionStatement","src":"232:34:21"},{"nodeType":"YulVariableDeclaration","src":"275:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:21"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:21"},"nodeType":"YulFunctionCall","src":"369:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:21"},"nodeType":"YulFunctionCall","src":"365:26:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:21"},"nodeType":"YulFunctionCall","src":"403:14:21"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:21"},"nodeType":"YulFunctionCall","src":"393:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:21"},"nodeType":"YulFunctionCall","src":"358:66:21"},"nodeType":"YulExpressionStatement","src":"358:66:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:21"},"nodeType":"YulFunctionCall","src":"302:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:21","statements":[{"nodeType":"YulAssignment","src":"318:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:21"},"nodeType":"YulFunctionCall","src":"323:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:21","statements":[]},"src":"294:140:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:21"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:21"},"nodeType":"YulFunctionCall","src":"454:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:21"},"nodeType":"YulFunctionCall","src":"450:31:21"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:21"},"nodeType":"YulFunctionCall","src":"443:42:21"},"nodeType":"YulExpressionStatement","src":"443:42:21"},{"nodeType":"YulAssignment","src":"494:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:21"},"nodeType":"YulFunctionCall","src":"525:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:21"},"nodeType":"YulFunctionCall","src":"542:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:21"},"nodeType":"YulFunctionCall","src":"521:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:21"},"nodeType":"YulFunctionCall","src":"506:45:21"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:21"},"nodeType":"YulFunctionCall","src":"502:54:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:21","type":""}],"src":"14:548:21"},{"body":{"nodeType":"YulBlock","src":"616:124:21","statements":[{"nodeType":"YulAssignment","src":"626:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:21"},"nodeType":"YulFunctionCall","src":"635:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:21"}]},{"body":{"nodeType":"YulBlock","src":"718:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:21"},"nodeType":"YulFunctionCall","src":"720:12:21"},"nodeType":"YulExpressionStatement","src":"720:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:21"},"nodeType":"YulFunctionCall","src":"699:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:21"},"nodeType":"YulFunctionCall","src":"695:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:21"},"nodeType":"YulFunctionCall","src":"684:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:21"},"nodeType":"YulFunctionCall","src":"674:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:21"},"nodeType":"YulFunctionCall","src":"667:50:21"},"nodeType":"YulIf","src":"664:70:21"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:21","type":""}],"src":"567:173:21"},{"body":{"nodeType":"YulBlock","src":"832:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:21"},"nodeType":"YulFunctionCall","src":"880:12:21"},"nodeType":"YulExpressionStatement","src":"880:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:21"},"nodeType":"YulFunctionCall","src":"849:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:21"},"nodeType":"YulFunctionCall","src":"845:32:21"},"nodeType":"YulIf","src":"842:52:21"},{"nodeType":"YulAssignment","src":"903:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:21"},"nodeType":"YulFunctionCall","src":"913:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:21"}]},{"nodeType":"YulAssignment","src":"951:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:21"},"nodeType":"YulFunctionCall","src":"974:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:21"},"nodeType":"YulFunctionCall","src":"961:32:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:21","type":""}],"src":"745:254:21"},{"body":{"nodeType":"YulBlock","src":"1099:92:21","statements":[{"nodeType":"YulAssignment","src":"1109:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:21"},"nodeType":"YulFunctionCall","src":"1117:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:21"},"nodeType":"YulFunctionCall","src":"1169:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:21"},"nodeType":"YulFunctionCall","src":"1162:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:21"},"nodeType":"YulFunctionCall","src":"1144:41:21"},"nodeType":"YulExpressionStatement","src":"1144:41:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:21","type":""}],"src":"1004:187:21"},{"body":{"nodeType":"YulBlock","src":"1297:76:21","statements":[{"nodeType":"YulAssignment","src":"1307:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:21"},"nodeType":"YulFunctionCall","src":"1315:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:21"},"nodeType":"YulFunctionCall","src":"1342:25:21"},"nodeType":"YulExpressionStatement","src":"1342:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:21","type":""}],"src":"1196:177:21"},{"body":{"nodeType":"YulBlock","src":"1482:224:21","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:21"},"nodeType":"YulFunctionCall","src":"1530:12:21"},"nodeType":"YulExpressionStatement","src":"1530:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:21"},"nodeType":"YulFunctionCall","src":"1499:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:21"},"nodeType":"YulFunctionCall","src":"1495:32:21"},"nodeType":"YulIf","src":"1492:52:21"},{"nodeType":"YulAssignment","src":"1553:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:21"},"nodeType":"YulFunctionCall","src":"1563:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:21"}]},{"nodeType":"YulAssignment","src":"1601:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:21"},"nodeType":"YulFunctionCall","src":"1630:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:21"},"nodeType":"YulFunctionCall","src":"1611:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:21"}]},{"nodeType":"YulAssignment","src":"1658:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:21"},"nodeType":"YulFunctionCall","src":"1681:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:21"},"nodeType":"YulFunctionCall","src":"1668:32:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:21","type":""}],"src":"1378:328:21"},{"body":{"nodeType":"YulBlock","src":"1808:87:21","statements":[{"nodeType":"YulAssignment","src":"1818:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:21"},"nodeType":"YulFunctionCall","src":"1826:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:21","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:21"},"nodeType":"YulFunctionCall","src":"1871:17:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:21"},"nodeType":"YulFunctionCall","src":"1853:36:21"},"nodeType":"YulExpressionStatement","src":"1853:36:21"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:21","type":""}],"src":"1711:184:21"},{"body":{"nodeType":"YulBlock","src":"1970:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:21"},"nodeType":"YulFunctionCall","src":"2018:12:21"},"nodeType":"YulExpressionStatement","src":"2018:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:21"},"nodeType":"YulFunctionCall","src":"1987:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:21"},"nodeType":"YulFunctionCall","src":"1983:32:21"},"nodeType":"YulIf","src":"1980:52:21"},{"nodeType":"YulAssignment","src":"2041:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2064:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2051:12:21"},"nodeType":"YulFunctionCall","src":"2051:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:21","type":""}],"src":"1900:180:21"},{"body":{"nodeType":"YulBlock","src":"2155:116:21","statements":[{"body":{"nodeType":"YulBlock","src":"2201:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2210:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2213:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2203:6:21"},"nodeType":"YulFunctionCall","src":"2203:12:21"},"nodeType":"YulExpressionStatement","src":"2203:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2176:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2185:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2172:3:21"},"nodeType":"YulFunctionCall","src":"2172:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2197:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2168:3:21"},"nodeType":"YulFunctionCall","src":"2168:32:21"},"nodeType":"YulIf","src":"2165:52:21"},{"nodeType":"YulAssignment","src":"2226:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2236:18:21"},"nodeType":"YulFunctionCall","src":"2236:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2226:6:21"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2121:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2132:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2144:6:21","type":""}],"src":"2085:186:21"},{"body":{"nodeType":"YulBlock","src":"2363:173:21","statements":[{"body":{"nodeType":"YulBlock","src":"2409:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2418:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2421:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2411:6:21"},"nodeType":"YulFunctionCall","src":"2411:12:21"},"nodeType":"YulExpressionStatement","src":"2411:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2384:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2380:3:21"},"nodeType":"YulFunctionCall","src":"2380:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2405:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2376:3:21"},"nodeType":"YulFunctionCall","src":"2376:32:21"},"nodeType":"YulIf","src":"2373:52:21"},{"nodeType":"YulAssignment","src":"2434:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2463:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2444:18:21"},"nodeType":"YulFunctionCall","src":"2444:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2434:6:21"}]},{"nodeType":"YulAssignment","src":"2482:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2515:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2526:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2511:3:21"},"nodeType":"YulFunctionCall","src":"2511:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2492:18:21"},"nodeType":"YulFunctionCall","src":"2492:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2482:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2321:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2332:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2344:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2352:6:21","type":""}],"src":"2276:260:21"},{"body":{"nodeType":"YulBlock","src":"2596:325:21","statements":[{"nodeType":"YulAssignment","src":"2606:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2620:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2623:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2616:3:21"},"nodeType":"YulFunctionCall","src":"2616:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2606:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2637:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2667:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2663:3:21"},"nodeType":"YulFunctionCall","src":"2663:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2641:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2714:31:21","statements":[{"nodeType":"YulAssignment","src":"2716:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2730:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2738:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2726:3:21"},"nodeType":"YulFunctionCall","src":"2726:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2716:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2694:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2687:6:21"},"nodeType":"YulFunctionCall","src":"2687:26:21"},"nodeType":"YulIf","src":"2684:61:21"},{"body":{"nodeType":"YulBlock","src":"2804:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2825:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2832:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2837:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2828:3:21"},"nodeType":"YulFunctionCall","src":"2828:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2818:6:21"},"nodeType":"YulFunctionCall","src":"2818:31:21"},"nodeType":"YulExpressionStatement","src":"2818:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2869:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2872:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2862:6:21"},"nodeType":"YulFunctionCall","src":"2862:15:21"},"nodeType":"YulExpressionStatement","src":"2862:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2897:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2900:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2890:6:21"},"nodeType":"YulFunctionCall","src":"2890:15:21"},"nodeType":"YulExpressionStatement","src":"2890:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2760:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2783:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2791:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2780:2:21"},"nodeType":"YulFunctionCall","src":"2780:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2757:2:21"},"nodeType":"YulFunctionCall","src":"2757:38:21"},"nodeType":"YulIf","src":"2754:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2576:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2585:6:21","type":""}],"src":"2541:380:21"},{"body":{"nodeType":"YulBlock","src":"3100:164:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3110:6:21"},"nodeType":"YulFunctionCall","src":"3110:21:21"},"nodeType":"YulExpressionStatement","src":"3110:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:21"},"nodeType":"YulFunctionCall","src":"3147:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:21","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:21"},"nodeType":"YulFunctionCall","src":"3140:30:21"},"nodeType":"YulExpressionStatement","src":"3140:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3190:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3201:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3186:3:21"},"nodeType":"YulFunctionCall","src":"3186:18:21"},{"hexValue":"4e6f742074686520627269646765","kind":"string","nodeType":"YulLiteral","src":"3206:16:21","type":"","value":"Not the bridge"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3179:6:21"},"nodeType":"YulFunctionCall","src":"3179:44:21"},"nodeType":"YulExpressionStatement","src":"3179:44:21"},{"nodeType":"YulAssignment","src":"3232:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3244:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3255:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3240:3:21"},"nodeType":"YulFunctionCall","src":"3240:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3232:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3077:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3091:4:21","type":""}],"src":"2926:338:21"},{"body":{"nodeType":"YulBlock","src":"3426:188:21","statements":[{"nodeType":"YulAssignment","src":"3436:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3459:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3444:3:21"},"nodeType":"YulFunctionCall","src":"3444:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3436:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3493:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3509:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3514:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3505:3:21"},"nodeType":"YulFunctionCall","src":"3505:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3518:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3501:3:21"},"nodeType":"YulFunctionCall","src":"3501:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3489:3:21"},"nodeType":"YulFunctionCall","src":"3489:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3471:6:21"},"nodeType":"YulFunctionCall","src":"3471:51:21"},"nodeType":"YulExpressionStatement","src":"3471:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3538:3:21"},"nodeType":"YulFunctionCall","src":"3538:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"3558:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3531:6:21"},"nodeType":"YulFunctionCall","src":"3531:34:21"},"nodeType":"YulExpressionStatement","src":"3531:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3585:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3596:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3581:3:21"},"nodeType":"YulFunctionCall","src":"3581:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"3601:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3574:6:21"},"nodeType":"YulFunctionCall","src":"3574:34:21"},"nodeType":"YulExpressionStatement","src":"3574:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3379:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3390:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3398:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3406:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3417:4:21","type":""}],"src":"3269:345:21"},{"body":{"nodeType":"YulBlock","src":"3720:102:21","statements":[{"nodeType":"YulAssignment","src":"3730:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3742:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3753:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:21"},"nodeType":"YulFunctionCall","src":"3738:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3730:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3772:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3787:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3808:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3799:3:21"},"nodeType":"YulFunctionCall","src":"3799:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3812:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3795:3:21"},"nodeType":"YulFunctionCall","src":"3795:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3783:3:21"},"nodeType":"YulFunctionCall","src":"3783:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3765:6:21"},"nodeType":"YulFunctionCall","src":"3765:51:21"},"nodeType":"YulExpressionStatement","src":"3765:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3689:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3700:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3711:4:21","type":""}],"src":"3619:203:21"},{"body":{"nodeType":"YulBlock","src":"3875:174:21","statements":[{"nodeType":"YulAssignment","src":"3885:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3896:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"3899:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3892:3:21"},"nodeType":"YulFunctionCall","src":"3892:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3885:3:21"}]},{"body":{"nodeType":"YulBlock","src":"3932:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3953:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3960:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3965:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3956:3:21"},"nodeType":"YulFunctionCall","src":"3956:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3946:6:21"},"nodeType":"YulFunctionCall","src":"3946:31:21"},"nodeType":"YulExpressionStatement","src":"3946:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3997:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4000:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3990:6:21"},"nodeType":"YulFunctionCall","src":"3990:15:21"},"nodeType":"YulExpressionStatement","src":"3990:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4028:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4018:6:21"},"nodeType":"YulFunctionCall","src":"4018:15:21"},"nodeType":"YulExpressionStatement","src":"4018:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3916:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"3919:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3913:2:21"},"nodeType":"YulFunctionCall","src":"3913:10:21"},"nodeType":"YulIf","src":"3910:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3858:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"3861:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3867:3:21","type":""}],"src":"3827:222:21"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not the bridge\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xB7 ADD 0xAE 0xB3 DUP6 0xEE 0xA7 0xEB RETURN STATICCALL COINBASE DUP2 0xCF JUMPI RETURNDATASIZE 0xB5 SWAP11 EXTCODEHASH SWAP11 0x27 PUSH31 0x37AEB67C2FCB148545B64736F6C6343000814003300000000000000000000 ","sourceMap":"803:112:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:21;;1162:22;1144:41;;1132:2;1117:18;4293:186:2;1004:187:21;3144:97:2;3222:12;;3144:97;;;1342:25:21;;;1330:2;1315:18;3144:97:2;1196:177:21;5039:244:2;;;;;;:::i;:::-;;:::i;3002:82::-;;;3075:2;1853:36:21;;1841:2;1826:18;3002:82:2;1711:184:21;598:94:16;;;;;;:::i;:::-;;:::i;:::-;;618:87:4;;;;;;:::i;:::-;;:::i;3299:116:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3390:18:2;3364:7;3390:18;;;;;;;;;;;;3299:116;1021:158:4;;;;;;:::i;:::-;;:::i;2276:93:2:-;;;:::i;698:101:16:-;;;;;;:::i;:::-;;:::i;3610:178:2:-;;;;;;:::i;:::-;;:::i;3846:140::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3952:18:2;;;3926:7;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3846:140;2074:89;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;735:10:6;4420:31:2;735:10:6;4436:7:2;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;;:::o;5039:244::-;5126:4;735:10:6;5182:37:2;5198:4;735:10:6;5213:5:2;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;-1:-1:-1;5272:4:2;;5039:244;-1:-1:-1;;;;5039:244:2:o;598:94:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;;;;;;;;;668:17:::1;674:2;678:6;668:5;:17::i;:::-;598:94:::0;;:::o;618:87:4:-;672:26;735:10:6;692:5:4;672;:26::i;:::-;618:87;:::o;1021:158::-;1096:45;1112:7;735:10:6;1135:5:4;1096:15;:45::i;:::-;1151:21;1157:7;1166:5;1151;:21::i;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;698:101:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;2926:338:21;526:48:16;770:22:::1;779:4;785:6;770:8;:22::i;3610:178:2:-:0;3679:4;735:10:6;3733:27:2;735:10:6;3750:2:2;3754:5;3733:9;:27::i;8989:128::-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;-1:-1:-1;;;;;3952:18:2;;;10762:24;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10828:37:2;;10824:310;;10904:5;10885:16;:24;10881:130;;;10936:60;;-1:-1:-1;;;10936:60:2;;-1:-1:-1;;;;;3489:32:21;;10936:60:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;10936:60:2;3269:345:21;10881:130:2;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10752:388;10663:477;;;:::o;5656:300::-;-1:-1:-1;;;;;5739:18:2;;5735:86;;5780:30;;-1:-1:-1;;;5780:30:2;;5807:1;5780:30;;;3765:51:21;3738:18;;5780:30:2;3619:203:21;5735:86:2;-1:-1:-1;;;;;5834:16:2;;5830:86;;5873:32;;-1:-1:-1;;;5873:32:2;;5902:1;5873:32;;;3765:51:21;3738:18;;5873:32:2;3619:203:21;5830:86:2;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;7721:208::-;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;3765:51:21;3738:18;;7835:32:2;3619:203:21;7787:91:2;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;8247:206::-;-1:-1:-1;;;;;8317:21:2;;8313:89;;8361:30;;-1:-1:-1;;;8361:30:2;;8388:1;8361:30;;;3765:51:21;3738:18;;8361:30:2;3619:203:21;8313:89:2;8411:35;8419:7;8436:1;8440:5;8411:7;:35::i;9949:432::-;-1:-1:-1;;;;;10061:19:2;;10057:89;;10103:32;;-1:-1:-1;;;10103:32:2;;10132:1;10103:32;;;3765:51:21;3738:18;;10103:32:2;3619:203:21;10057:89:2;-1:-1:-1;;;;;10159:21:2;;10155:90;;10203:31;;-1:-1:-1;;;10203:31:2;;10231:1;10203:31;;;3765:51:21;3738:18;;10203:31:2;3619:203:21;10155:90:2;-1:-1:-1;;;;;10254:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10299:76;;;;10349:7;-1:-1:-1;;;;;10333:31:2;10342:5;-1:-1:-1;;;;;10333:31:2;;10358:5;10333:31;;;;1342:25:21;;1330:2;1315:18;;1196:177;10333:31:2;;;;;;;;9949:432;;;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;3489:32:21;;6649:50:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;6649:50:2;3269:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;1342::21;;1330:2;1315:18;;1196:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:548:21:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:21;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:21:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:21;;1900:180;-1:-1:-1;1900:180:21:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:21:o;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:380::-;2620:1;2616:12;;;;2663;;;2684:61;;2738:4;2730:6;2726:17;2716:27;;2684:61;2791:2;2783:6;2780:14;2760:18;2757:38;2754:161;;2837:10;2832:3;2828:20;2825:1;2818:31;2872:4;2869:1;2862:15;2900:4;2897:1;2890:15;2754:161;;2541:380;;;:::o;3827:222::-;3892:9;;;3913:10;;;3910:133;;;3965:10;3960:3;3956:20;3953:1;3946:31;4000:4;3997:1;3990:15;4028:4;4025:1;4018:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bridge_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Bridge.sol\":\"MyToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/ERC20Bridge.sol\":{\"keccak256\":\"0xba3f8b86233053bf90a6df93e573b7c887839a7983f03a50fc3ac083b712c97a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8927b354595525561dca5682973c44a98a43b0e51eb12a8db265f5b7e848b392\",\"dweb:/ipfs/QmYU24nSAXbnxn4Tj98dxyg9BnfQUv3n1Dh24gf7P4aaQ6\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/Relayer.sol":{"Relayer":{"abi":[{"inputs":[{"internalType":"contract ValidatorManager","name":"_validatorManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"Create2FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"Create2InsufficientBalance","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bytes4","name":"callback","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"response","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Dispatched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bytes","name":"call","type":"bytes"},{"indexed":false,"internalType":"bool","name":"readonly","type":"bool"},{"indexed":false,"internalType":"bytes4","name":"callback","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Relayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bytes","name":"call","type":"bytes"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"response","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Resumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"twin","type":"address"}],"name":"TwinDeployment","type":"event"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"bytecode","type":"bytes"}],"name":"deployTwin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"},{"internalType":"bytes4","name":"callback","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"dispatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"query","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"},{"internalType":"bool","name":"readonly","type":"bool"},{"internalType":"bytes4","name":"callback","type":"bytes4"}],"name":"relay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes4","name":"callback","type":"bytes4"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"resume","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4110":{"entryPoint":null,"id":4110,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:331:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"120:209:21","statements":[{"body":{"nodeType":"YulBlock","src":"166:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"175:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"178:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"168:6:21"},"nodeType":"YulFunctionCall","src":"168:12:21"},"nodeType":"YulExpressionStatement","src":"168:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"141:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"150:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"137:3:21"},"nodeType":"YulFunctionCall","src":"137:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"162:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"133:3:21"},"nodeType":"YulFunctionCall","src":"133:32:21"},"nodeType":"YulIf","src":"130:52:21"},{"nodeType":"YulVariableDeclaration","src":"191:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"210:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"204:5:21"},"nodeType":"YulFunctionCall","src":"204:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"195:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"283:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"292:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"285:6:21"},"nodeType":"YulFunctionCall","src":"285:12:21"},"nodeType":"YulExpressionStatement","src":"285:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"242:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"273:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"264:3:21"},"nodeType":"YulFunctionCall","src":"264:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"260:3:21"},"nodeType":"YulFunctionCall","src":"260:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"249:3:21"},"nodeType":"YulFunctionCall","src":"249:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"239:2:21"},"nodeType":"YulFunctionCall","src":"239:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:50:21"},"nodeType":"YulIf","src":"229:70:21"},{"nodeType":"YulAssignment","src":"308:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"318:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"308:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"86:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"97:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"109:6:21","type":""}],"src":"14:315:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040516112f03803806112f083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61125d806100936000396000f3fe60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x12F0 CODESIZE SUB DUP1 PUSH2 0x12F0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x125D DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB0A6BD1 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x139B4A87 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x5390E474 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0xADDE344C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xC1B2F734 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0xC55 JUMP JUMPDEST PUSH2 0x11D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0x7F CALLDATASIZE PUSH1 0x4 PUSH2 0xCF5 JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x37F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH2 0xEA CALLDATASIZE PUSH1 0x4 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8E SWAP3 SWAP2 SWAP1 PUSH2 0xE90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x118 CALLDATASIZE PUSH1 0x4 PUSH2 0xEB3 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x105B1C9958591E481C995CDD5B5959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1BE DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP6 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63B4581C24AA1258B32A3ED8AA708A03DDA9F962411C5C23B78087B68CF13856 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 SWAP3 PUSH32 0x7AB318DA6C14CBF3D1875045814B566FDF036863BCC775BB3A6959EAD4CA8E15 SWAP3 PUSH2 0x33E SWAP3 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x361 DUP4 PUSH2 0x103A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C4 PUSH1 0x0 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x885 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x189ACDBD PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC4D66DE8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH32 0xA5A933C2D9902E11B856EB9AD37FFC16A70221D90F75F5D5219D9DD600F9FC9 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x4AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x82DCC731 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x82DCC731 SWAP1 PUSH2 0x4D8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x51D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x592 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x105B1C9958591E48191A5CDC185D18DA1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5B0 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x5CB DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5D903F03 DUP10 DUP10 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x644 SWAP3 SWAP2 SWAP1 PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x68B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF3DFF5C6A7D612C95DE0AEF2822489AEB43D5DA7C5140DE276F31417F9475D72 DUP9 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x717 DUP4 PUSH2 0x905 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CA3E1FD PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7947C3FA SWAP1 PUSH2 0x74A SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x767 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x78B SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x7CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E76616C6964207369676E617475726573 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 SLOAD DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x3E99D941 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x3E99D941 SWAP2 PUSH2 0x800 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x841 SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x880 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x4E6F2073757065726D616A6F72697479 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x8B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x392EFB2B PUSH1 0xE2 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x17F JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x8D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x457 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3A0BA961 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP3 MLOAD PUSH2 0x940 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x923 SWAP3 SWAP2 SWAP1 PUSH2 0x11CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x94D DUP4 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x96D JUMPI PUSH2 0x96D PUSH2 0xAF1 JUMP 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 0x997 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x9A1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xA12 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xA3E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xA5C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xA74 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xA88 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xA9A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAA6 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xAEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB30 JUMPI PUSH2 0xB30 PUSH2 0xAF1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB52 JUMPI PUSH2 0xB52 PUSH2 0xAF1 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB84 PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0xB07 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xB99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0xBE4 JUMPI PUSH2 0xBE4 PUSH2 0xAF1 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH2 0xBF3 DUP4 DUP3 ADD PUSH2 0xB07 JUMP JUMPDEST SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP1 DUP9 DUP7 GT ISZERO PUSH2 0xC0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 DUP9 ADD SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0xC49 JUMPI DUP3 CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0xC2B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC39 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0xB60 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP5 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0xC13 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC77 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xC85 PUSH1 0x20 DUP9 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0xC95 DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCBE DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP4 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xCDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE8 DUP10 DUP3 DUP11 ADD PUSH2 0xBB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD14 DUP6 PUSH2 0xAAC JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3C DUP8 DUP3 DUP9 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0xD4D DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP2 POP PUSH2 0xD5B PUSH1 0x60 DUP7 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xDAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xDCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE00 DUP5 PUSH2 0xAAC JUMP JUMPDEST SWAP3 POP PUSH2 0xE0E PUSH1 0x20 DUP6 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE36 DUP7 DUP3 DUP8 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE5B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE43 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE7C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xEAB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xECC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xED5 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xEE3 PUSH1 0x20 DUP9 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF0C DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP6 POP PUSH2 0xCBE PUSH1 0x60 DUP11 ADD PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF56 SWAP1 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF83 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xFA5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xE40 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xFC2 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xE64 JUMP JUMPDEST DUP5 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xFDC DUP2 DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1012 SWAP1 DUP4 ADD DUP8 PUSH2 0xE64 JUMP JUMPDEST SWAP5 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x105A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xEAB SWAP1 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1098 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x10A3 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x10D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x10DF PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x10F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1105 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP5 AND DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x113C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD DUP5 DUP4 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0x60 DUP7 ADD SWAP2 POP PUSH1 0x60 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP3 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11A1 JUMPI PUSH1 0x5F NOT DUP9 DUP8 SUB ADD DUP5 MSTORE PUSH2 0x118F DUP7 DUP4 MLOAD PUSH2 0xE64 JUMP JUMPDEST SWAP6 POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1173 JUMP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x457 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1204 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x121B DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xCC GASPRICE PUSH19 0xA930C389A44E03E7195DB7E4B2A21F2EC377B 0xAF 0xEF SSTORE 0xEE 0x27 LOG0 0xB3 MOD 0xA6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"410:4002:17:-:0;;;847:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;905:16;:36;;-1:-1:-1;;;;;;905:36:17;-1:-1:-1;;;;;905:36:17;;;;;;;;;;410:4002;;14:315:21;109:6;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:21;;239:42;;229:70;;295:1;292;285:12;229:70;318:5;14:315;-1:-1:-1;;;14:315:21:o;:::-;410:4002:17;;;;;;"},"deployedBytecode":{"functionDebugData":{"@deployTwin_4099":{"entryPoint":895,"id":4099,"parameterSlots":3,"returnSlots":1},"@deploy_1145":{"entryPoint":2181,"id":1145,"parameterSlots":3,"returnSlots":1},"@dispatch_4304":{"entryPoint":1321,"id":4304,"parameterSlots":6,"returnSlots":0},"@log10_2731":{"entryPoint":2515,"id":2731,"parameterSlots":1,"returnSlots":1},"@query_4339":{"entryPoint":1118,"id":4339,"parameterSlots":3,"returnSlots":2},"@relay_4178":{"entryPoint":757,"id":4178,"parameterSlots":4,"returnSlots":1},"@resume_4433":{"entryPoint":285,"id":4433,"parameterSlots":6,"returnSlots":0},"@toEthSignedMessageHash_1824":{"entryPoint":2309,"id":1824,"parameterSlots":1,"returnSlots":1},"@toString_1248":{"entryPoint":2368,"id":1248,"parameterSlots":1,"returnSlots":1},"@validateRequest_4223":{"entryPoint":1804,"id":4223,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":2732,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_bytes_dyn":{"entryPoint":2998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":2912,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes4":{"entryPoint":2760,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr":{"entryPoint":3554,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptrt_bytes4t_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":3763,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_bytes4t_boolt_bytes_memory_ptrt_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":3157,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_boolt_bytes4":{"entryPoint":3317,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory":{"entryPoint":4229,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes_calldata_ptr":{"entryPoint":3430,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_bytes":{"entryPoint":3684,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3987,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes26_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4556,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__to_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__fromStack_reversed":{"entryPoint":4070,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":3866,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4193,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3728,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr_t_uint256__to_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":3944,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":4421,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_bool_t_bytes_memory_ptr__to_t_bytes4_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4370,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4015,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_Relayer_$4434__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":2823,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":2872,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3648,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":4154,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2801,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":2784,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15514:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:21","statements":[{"nodeType":"YulAssignment","src":"73:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:21"},"nodeType":"YulFunctionCall","src":"82:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:21"}]},{"body":{"nodeType":"YulBlock","src":"165:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:21"},"nodeType":"YulFunctionCall","src":"167:12:21"},"nodeType":"YulExpressionStatement","src":"167:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:21"},"nodeType":"YulFunctionCall","src":"146:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:21"},"nodeType":"YulFunctionCall","src":"142:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:21"},"nodeType":"YulFunctionCall","src":"131:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:21"},"nodeType":"YulFunctionCall","src":"121:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:21"},"nodeType":"YulFunctionCall","src":"114:50:21"},"nodeType":"YulIf","src":"111:70:21"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:21","type":""}],"src":"14:173:21"},{"body":{"nodeType":"YulBlock","src":"240:125:21","statements":[{"nodeType":"YulAssignment","src":"250:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"272:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"259:12:21"},"nodeType":"YulFunctionCall","src":"259:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"250:5:21"}]},{"body":{"nodeType":"YulBlock","src":"343:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"352:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"355:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"345:6:21"},"nodeType":"YulFunctionCall","src":"345:12:21"},"nodeType":"YulExpressionStatement","src":"345:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"301:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"312:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"323:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"328:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"319:3:21"},"nodeType":"YulFunctionCall","src":"319:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"308:3:21"},"nodeType":"YulFunctionCall","src":"308:32:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"298:2:21"},"nodeType":"YulFunctionCall","src":"298:43:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"291:6:21"},"nodeType":"YulFunctionCall","src":"291:51:21"},"nodeType":"YulIf","src":"288:71:21"}]},"name":"abi_decode_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"219:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"230:5:21","type":""}],"src":"192:173:21"},{"body":{"nodeType":"YulBlock","src":"412:76:21","statements":[{"body":{"nodeType":"YulBlock","src":"466:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"475:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"478:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"468:6:21"},"nodeType":"YulFunctionCall","src":"468:12:21"},"nodeType":"YulExpressionStatement","src":"468:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"435:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"456:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"449:6:21"},"nodeType":"YulFunctionCall","src":"449:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"442:6:21"},"nodeType":"YulFunctionCall","src":"442:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"432:2:21"},"nodeType":"YulFunctionCall","src":"432:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"425:6:21"},"nodeType":"YulFunctionCall","src":"425:40:21"},"nodeType":"YulIf","src":"422:60:21"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"401:5:21","type":""}],"src":"370:118:21"},{"body":{"nodeType":"YulBlock","src":"525:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"542:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"554:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"545:3:21"},"nodeType":"YulFunctionCall","src":"545:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"535:6:21"},"nodeType":"YulFunctionCall","src":"535:31:21"},"nodeType":"YulExpressionStatement","src":"535:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"582:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"585:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"575:6:21"},"nodeType":"YulFunctionCall","src":"575:15:21"},"nodeType":"YulExpressionStatement","src":"575:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"606:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"609:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"599:6:21"},"nodeType":"YulFunctionCall","src":"599:15:21"},"nodeType":"YulExpressionStatement","src":"599:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"493:127:21"},{"body":{"nodeType":"YulBlock","src":"670:230:21","statements":[{"nodeType":"YulAssignment","src":"680:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"696:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"690:5:21"},"nodeType":"YulFunctionCall","src":"690:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"680:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"708:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"730:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"746:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"752:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:21"},"nodeType":"YulFunctionCall","src":"742:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"761:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"757:3:21"},"nodeType":"YulFunctionCall","src":"757:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"738:3:21"},"nodeType":"YulFunctionCall","src":"738:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"726:3:21"},"nodeType":"YulFunctionCall","src":"726:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"712:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"841:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"843:16:21"},"nodeType":"YulFunctionCall","src":"843:18:21"},"nodeType":"YulExpressionStatement","src":"843:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"784:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"796:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:21"},"nodeType":"YulFunctionCall","src":"781:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"820:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"832:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"817:2:21"},"nodeType":"YulFunctionCall","src":"817:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"778:2:21"},"nodeType":"YulFunctionCall","src":"778:62:21"},"nodeType":"YulIf","src":"775:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"879:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"883:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"872:6:21"},"nodeType":"YulFunctionCall","src":"872:22:21"},"nodeType":"YulExpressionStatement","src":"872:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"650:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"659:6:21","type":""}],"src":"625:275:21"},{"body":{"nodeType":"YulBlock","src":"962:129:21","statements":[{"body":{"nodeType":"YulBlock","src":"1006:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1008:16:21"},"nodeType":"YulFunctionCall","src":"1008:18:21"},"nodeType":"YulExpressionStatement","src":"1008:18:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"978:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"986:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"975:2:21"},"nodeType":"YulFunctionCall","src":"975:30:21"},"nodeType":"YulIf","src":"972:56:21"},{"nodeType":"YulAssignment","src":"1037:48:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1057:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1065:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1053:3:21"},"nodeType":"YulFunctionCall","src":"1053:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1070:3:21"},"nodeType":"YulFunctionCall","src":"1070:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1049:3:21"},"nodeType":"YulFunctionCall","src":"1049:29:21"},{"kind":"number","nodeType":"YulLiteral","src":"1080:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1045:3:21"},"nodeType":"YulFunctionCall","src":"1045:40:21"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1037:4:21"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"942:6:21","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"953:4:21","type":""}],"src":"905:186:21"},{"body":{"nodeType":"YulBlock","src":"1148:410:21","statements":[{"body":{"nodeType":"YulBlock","src":"1197:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1206:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1209:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1199:6:21"},"nodeType":"YulFunctionCall","src":"1199:12:21"},"nodeType":"YulExpressionStatement","src":"1199:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1176:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1184:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1172:3:21"},"nodeType":"YulFunctionCall","src":"1172:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"1191:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1168:3:21"},"nodeType":"YulFunctionCall","src":"1168:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1161:6:21"},"nodeType":"YulFunctionCall","src":"1161:35:21"},"nodeType":"YulIf","src":"1158:55:21"},{"nodeType":"YulVariableDeclaration","src":"1222:30:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1245:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1232:12:21"},"nodeType":"YulFunctionCall","src":"1232:20:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1226:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1261:63:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1320:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1292:27:21"},"nodeType":"YulFunctionCall","src":"1292:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1276:15:21"},"nodeType":"YulFunctionCall","src":"1276:48:21"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1265:7:21","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1340:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1349:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:21"},"nodeType":"YulFunctionCall","src":"1333:19:21"},"nodeType":"YulExpressionStatement","src":"1333:19:21"},{"body":{"nodeType":"YulBlock","src":"1400:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1409:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1412:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1402:6:21"},"nodeType":"YulFunctionCall","src":"1402:12:21"},"nodeType":"YulExpressionStatement","src":"1402:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1375:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1383:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1371:3:21"},"nodeType":"YulFunctionCall","src":"1371:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"1388:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1367:3:21"},"nodeType":"YulFunctionCall","src":"1367:26:21"},{"name":"end","nodeType":"YulIdentifier","src":"1395:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1364:2:21"},"nodeType":"YulFunctionCall","src":"1364:35:21"},"nodeType":"YulIf","src":"1361:55:21"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1442:7:21"},{"kind":"number","nodeType":"YulLiteral","src":"1451:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1438:3:21"},"nodeType":"YulFunctionCall","src":"1438:18:21"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1462:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1470:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1458:3:21"},"nodeType":"YulFunctionCall","src":"1458:17:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1477:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1425:12:21"},"nodeType":"YulFunctionCall","src":"1425:55:21"},"nodeType":"YulExpressionStatement","src":"1425:55:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1504:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1513:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1500:3:21"},"nodeType":"YulFunctionCall","src":"1500:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1518:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1496:3:21"},"nodeType":"YulFunctionCall","src":"1496:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"1525:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1489:6:21"},"nodeType":"YulFunctionCall","src":"1489:38:21"},"nodeType":"YulExpressionStatement","src":"1489:38:21"},{"nodeType":"YulAssignment","src":"1536:16:21","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1545:7:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1536:5:21"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1122:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"1130:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1138:5:21","type":""}],"src":"1096:462:21"},{"body":{"nodeType":"YulBlock","src":"1625:879:21","statements":[{"body":{"nodeType":"YulBlock","src":"1674:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1683:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1686:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1676:6:21"},"nodeType":"YulFunctionCall","src":"1676:12:21"},"nodeType":"YulExpressionStatement","src":"1676:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1653:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1661:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:21"},"nodeType":"YulFunctionCall","src":"1649:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"1668:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1645:3:21"},"nodeType":"YulFunctionCall","src":"1645:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1638:6:21"},"nodeType":"YulFunctionCall","src":"1638:35:21"},"nodeType":"YulIf","src":"1635:55:21"},{"nodeType":"YulVariableDeclaration","src":"1699:30:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1722:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1709:12:21"},"nodeType":"YulFunctionCall","src":"1709:20:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1703:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1738:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1748:4:21","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1742:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1761:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1771:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1765:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1812:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1814:16:21"},"nodeType":"YulFunctionCall","src":"1814:18:21"},"nodeType":"YulExpressionStatement","src":"1814:18:21"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1804:2:21"},{"name":"_3","nodeType":"YulIdentifier","src":"1808:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1801:2:21"},"nodeType":"YulFunctionCall","src":"1801:10:21"},"nodeType":"YulIf","src":"1798:36:21"},{"nodeType":"YulVariableDeclaration","src":"1843:20:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:1:21","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1860:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1853:3:21"},"nodeType":"YulFunctionCall","src":"1853:10:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1847:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1872:39:21","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1903:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1907:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1899:3:21"},"nodeType":"YulFunctionCall","src":"1899:11:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1883:15:21"},"nodeType":"YulFunctionCall","src":"1883:28:21"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1876:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1920:16:21","value":{"name":"dst","nodeType":"YulIdentifier","src":"1933:3:21"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1924:5:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1952:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1957:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1945:6:21"},"nodeType":"YulFunctionCall","src":"1945:15:21"},"nodeType":"YulExpressionStatement","src":"1945:15:21"},{"nodeType":"YulAssignment","src":"1969:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1980:3:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1985:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:21"},"nodeType":"YulFunctionCall","src":"1976:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1969:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"1997:38:21","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2019:6:21"},{"name":"_4","nodeType":"YulIdentifier","src":"2027:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:21"},"nodeType":"YulFunctionCall","src":"2015:15:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2032:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2011:3:21"},"nodeType":"YulFunctionCall","src":"2011:24:21"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2001:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2063:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2072:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2075:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2065:6:21"},"nodeType":"YulFunctionCall","src":"2065:12:21"},"nodeType":"YulExpressionStatement","src":"2065:12:21"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2050:6:21"},{"name":"end","nodeType":"YulIdentifier","src":"2058:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2047:2:21"},"nodeType":"YulFunctionCall","src":"2047:15:21"},"nodeType":"YulIf","src":"2044:35:21"},{"nodeType":"YulVariableDeclaration","src":"2088:26:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2103:6:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2111:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2099:3:21"},"nodeType":"YulFunctionCall","src":"2099:15:21"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2092:3:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2179:296:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2193:36:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2225:3:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2212:12:21"},"nodeType":"YulFunctionCall","src":"2212:17:21"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"2197:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2277:74:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2295:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2305:1:21","type":"","value":"0"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2299:2:21","type":""}]},{"expression":{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"2330:2:21"},{"name":"_5","nodeType":"YulIdentifier","src":"2334:2:21"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2323:6:21"},"nodeType":"YulFunctionCall","src":"2323:14:21"},"nodeType":"YulExpressionStatement","src":"2323:14:21"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"2248:11:21"},{"name":"_3","nodeType":"YulIdentifier","src":"2261:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2245:2:21"},"nodeType":"YulFunctionCall","src":"2245:19:21"},"nodeType":"YulIf","src":"2242:109:21"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2371:3:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2401:6:21"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"2409:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2397:3:21"},"nodeType":"YulFunctionCall","src":"2397:24:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2423:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2393:3:21"},"nodeType":"YulFunctionCall","src":"2393:33:21"},{"name":"end","nodeType":"YulIdentifier","src":"2428:3:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"2376:16:21"},"nodeType":"YulFunctionCall","src":"2376:56:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2364:6:21"},"nodeType":"YulFunctionCall","src":"2364:69:21"},"nodeType":"YulExpressionStatement","src":"2364:69:21"},{"nodeType":"YulAssignment","src":"2446:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2457:3:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2462:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2453:3:21"},"nodeType":"YulFunctionCall","src":"2453:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2446:3:21"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2134:3:21"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2139:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2131:2:21"},"nodeType":"YulFunctionCall","src":"2131:15:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2147:23:21","statements":[{"nodeType":"YulAssignment","src":"2149:19:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2160:3:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2165:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2156:3:21"},"nodeType":"YulFunctionCall","src":"2156:12:21"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2149:3:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2127:3:21","statements":[]},"src":"2123:352:21"},{"nodeType":"YulAssignment","src":"2484:14:21","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2493:5:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2484:5:21"}]}]},"name":"abi_decode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1599:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"1607:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1615:5:21","type":""}],"src":"1563:941:21"},{"body":{"nodeType":"YulBlock","src":"2703:726:21","statements":[{"body":{"nodeType":"YulBlock","src":"2750:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2759:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2762:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2752:6:21"},"nodeType":"YulFunctionCall","src":"2752:12:21"},"nodeType":"YulExpressionStatement","src":"2752:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2724:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2733:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2720:3:21"},"nodeType":"YulFunctionCall","src":"2720:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2745:3:21","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2716:3:21"},"nodeType":"YulFunctionCall","src":"2716:33:21"},"nodeType":"YulIf","src":"2713:53:21"},{"nodeType":"YulAssignment","src":"2775:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2804:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2785:18:21"},"nodeType":"YulFunctionCall","src":"2785:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2775:6:21"}]},{"nodeType":"YulAssignment","src":"2823:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2855:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2866:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2851:3:21"},"nodeType":"YulFunctionCall","src":"2851:18:21"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"2833:17:21"},"nodeType":"YulFunctionCall","src":"2833:37:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2823:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2879:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2909:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2920:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:21"},"nodeType":"YulFunctionCall","src":"2905:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2892:12:21"},"nodeType":"YulFunctionCall","src":"2892:32:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2883:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2955:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"2933:21:21"},"nodeType":"YulFunctionCall","src":"2933:28:21"},"nodeType":"YulExpressionStatement","src":"2933:28:21"},{"nodeType":"YulAssignment","src":"2970:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2980:5:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2970:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2994:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3025:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3036:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:21"},"nodeType":"YulFunctionCall","src":"3021:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3008:12:21"},"nodeType":"YulFunctionCall","src":"3008:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2998:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3049:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3059:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3053:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3104:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3113:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3116:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3106:6:21"},"nodeType":"YulFunctionCall","src":"3106:12:21"},"nodeType":"YulExpressionStatement","src":"3106:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3092:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3100:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3089:2:21"},"nodeType":"YulFunctionCall","src":"3089:14:21"},"nodeType":"YulIf","src":"3086:34:21"},{"nodeType":"YulAssignment","src":"3129:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3160:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"3171:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3156:3:21"},"nodeType":"YulFunctionCall","src":"3156:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3180:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3139:16:21"},"nodeType":"YulFunctionCall","src":"3139:49:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3129:6:21"}]},{"nodeType":"YulAssignment","src":"3197:43:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3224:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3235:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3220:3:21"},"nodeType":"YulFunctionCall","src":"3220:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3207:12:21"},"nodeType":"YulFunctionCall","src":"3207:33:21"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3197:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3249:49:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3282:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3293:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3278:3:21"},"nodeType":"YulFunctionCall","src":"3278:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3265:12:21"},"nodeType":"YulFunctionCall","src":"3265:33:21"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3253:8:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3327:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3336:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3339:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3329:6:21"},"nodeType":"YulFunctionCall","src":"3329:12:21"},"nodeType":"YulExpressionStatement","src":"3329:12:21"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3313:8:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3323:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3310:2:21"},"nodeType":"YulFunctionCall","src":"3310:16:21"},"nodeType":"YulIf","src":"3307:36:21"},{"nodeType":"YulAssignment","src":"3352:71:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3393:9:21"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3404:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:21"},"nodeType":"YulFunctionCall","src":"3389:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3415:7:21"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"3362:26:21"},"nodeType":"YulFunctionCall","src":"3362:61:21"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"3352:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes4t_boolt_bytes_memory_ptrt_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2629:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2640:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2652:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2660:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2668:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2676:6:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2684:6:21","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2692:6:21","type":""}],"src":"2509:920:21"},{"body":{"nodeType":"YulBlock","src":"3560:470:21","statements":[{"body":{"nodeType":"YulBlock","src":"3607:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3616:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3619:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3609:6:21"},"nodeType":"YulFunctionCall","src":"3609:12:21"},"nodeType":"YulExpressionStatement","src":"3609:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3581:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3590:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3577:3:21"},"nodeType":"YulFunctionCall","src":"3577:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3602:3:21","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3573:3:21"},"nodeType":"YulFunctionCall","src":"3573:33:21"},"nodeType":"YulIf","src":"3570:53:21"},{"nodeType":"YulAssignment","src":"3632:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3661:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3642:18:21"},"nodeType":"YulFunctionCall","src":"3642:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3632:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3680:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3711:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3722:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3707:3:21"},"nodeType":"YulFunctionCall","src":"3707:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3694:12:21"},"nodeType":"YulFunctionCall","src":"3694:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3684:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3769:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3778:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3781:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3771:6:21"},"nodeType":"YulFunctionCall","src":"3771:12:21"},"nodeType":"YulExpressionStatement","src":"3771:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3741:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"3749:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3738:2:21"},"nodeType":"YulFunctionCall","src":"3738:30:21"},"nodeType":"YulIf","src":"3735:50:21"},{"nodeType":"YulAssignment","src":"3794:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3825:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"3836:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3821:3:21"},"nodeType":"YulFunctionCall","src":"3821:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3845:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3804:16:21"},"nodeType":"YulFunctionCall","src":"3804:49:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3794:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3862:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3892:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3903:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3888:3:21"},"nodeType":"YulFunctionCall","src":"3888:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3875:12:21"},"nodeType":"YulFunctionCall","src":"3875:32:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3866:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3938:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3916:21:21"},"nodeType":"YulFunctionCall","src":"3916:28:21"},"nodeType":"YulExpressionStatement","src":"3916:28:21"},{"nodeType":"YulAssignment","src":"3953:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3963:5:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3953:6:21"}]},{"nodeType":"YulAssignment","src":"3977:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4009:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4020:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4005:3:21"},"nodeType":"YulFunctionCall","src":"4005:18:21"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"3987:17:21"},"nodeType":"YulFunctionCall","src":"3987:37:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3977:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_boolt_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3502:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3513:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3525:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3533:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3541:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3549:6:21","type":""}],"src":"3434:596:21"},{"body":{"nodeType":"YulBlock","src":"4136:76:21","statements":[{"nodeType":"YulAssignment","src":"4146:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4158:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4169:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4154:3:21"},"nodeType":"YulFunctionCall","src":"4154:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4146:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4188:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"4199:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4181:6:21"},"nodeType":"YulFunctionCall","src":"4181:25:21"},"nodeType":"YulExpressionStatement","src":"4181:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4105:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4116:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4127:4:21","type":""}],"src":"4035:177:21"},{"body":{"nodeType":"YulBlock","src":"4323:553:21","statements":[{"body":{"nodeType":"YulBlock","src":"4369:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4378:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4381:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4371:6:21"},"nodeType":"YulFunctionCall","src":"4371:12:21"},"nodeType":"YulExpressionStatement","src":"4371:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4344:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"4353:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4340:3:21"},"nodeType":"YulFunctionCall","src":"4340:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4336:3:21"},"nodeType":"YulFunctionCall","src":"4336:32:21"},"nodeType":"YulIf","src":"4333:52:21"},{"nodeType":"YulAssignment","src":"4394:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4417:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4404:12:21"},"nodeType":"YulFunctionCall","src":"4404:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4394:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"4436:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4467:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4478:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4463:3:21"},"nodeType":"YulFunctionCall","src":"4463:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4450:12:21"},"nodeType":"YulFunctionCall","src":"4450:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4440:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4491:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"4501:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4495:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4546:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4555:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4558:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4548:6:21"},"nodeType":"YulFunctionCall","src":"4548:12:21"},"nodeType":"YulExpressionStatement","src":"4548:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4534:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"4542:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4531:2:21"},"nodeType":"YulFunctionCall","src":"4531:14:21"},"nodeType":"YulIf","src":"4528:34:21"},{"nodeType":"YulVariableDeclaration","src":"4571:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4585:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"4596:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4581:3:21"},"nodeType":"YulFunctionCall","src":"4581:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4575:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4651:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4660:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4663:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4653:6:21"},"nodeType":"YulFunctionCall","src":"4653:12:21"},"nodeType":"YulExpressionStatement","src":"4653:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4630:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"4634:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4626:3:21"},"nodeType":"YulFunctionCall","src":"4626:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4641:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4622:3:21"},"nodeType":"YulFunctionCall","src":"4622:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4615:6:21"},"nodeType":"YulFunctionCall","src":"4615:35:21"},"nodeType":"YulIf","src":"4612:55:21"},{"nodeType":"YulVariableDeclaration","src":"4676:30:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4703:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4690:12:21"},"nodeType":"YulFunctionCall","src":"4690:16:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4680:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4733:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4742:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4745:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4735:6:21"},"nodeType":"YulFunctionCall","src":"4735:12:21"},"nodeType":"YulExpressionStatement","src":"4735:12:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4721:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"4729:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4718:2:21"},"nodeType":"YulFunctionCall","src":"4718:14:21"},"nodeType":"YulIf","src":"4715:34:21"},{"body":{"nodeType":"YulBlock","src":"4799:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4808:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4811:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4801:6:21"},"nodeType":"YulFunctionCall","src":"4801:12:21"},"nodeType":"YulExpressionStatement","src":"4801:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4772:2:21"},{"name":"length","nodeType":"YulIdentifier","src":"4776:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4768:3:21"},"nodeType":"YulFunctionCall","src":"4768:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"4785:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4764:3:21"},"nodeType":"YulFunctionCall","src":"4764:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4790:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4761:2:21"},"nodeType":"YulFunctionCall","src":"4761:37:21"},"nodeType":"YulIf","src":"4758:57:21"},{"nodeType":"YulAssignment","src":"4824:21:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4838:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"4842:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4834:3:21"},"nodeType":"YulFunctionCall","src":"4834:11:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4824:6:21"}]},{"nodeType":"YulAssignment","src":"4854:16:21","value":{"name":"length","nodeType":"YulIdentifier","src":"4864:6:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4854:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4273:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4284:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4296:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4304:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4312:6:21","type":""}],"src":"4217:659:21"},{"body":{"nodeType":"YulBlock","src":"4982:102:21","statements":[{"nodeType":"YulAssignment","src":"4992:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5004:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5015:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5000:3:21"},"nodeType":"YulFunctionCall","src":"5000:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4992:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5034:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5049:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5065:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5070:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5061:3:21"},"nodeType":"YulFunctionCall","src":"5061:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"5074:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5057:3:21"},"nodeType":"YulFunctionCall","src":"5057:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5045:3:21"},"nodeType":"YulFunctionCall","src":"5045:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5027:6:21"},"nodeType":"YulFunctionCall","src":"5027:51:21"},"nodeType":"YulExpressionStatement","src":"5027:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4951:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4962:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4973:4:21","type":""}],"src":"4881:203:21"},{"body":{"nodeType":"YulBlock","src":"5202:355:21","statements":[{"body":{"nodeType":"YulBlock","src":"5248:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5257:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5260:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5250:6:21"},"nodeType":"YulFunctionCall","src":"5250:12:21"},"nodeType":"YulExpressionStatement","src":"5250:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5223:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"5232:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5219:3:21"},"nodeType":"YulFunctionCall","src":"5219:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"5244:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5215:3:21"},"nodeType":"YulFunctionCall","src":"5215:32:21"},"nodeType":"YulIf","src":"5212:52:21"},{"nodeType":"YulAssignment","src":"5273:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5302:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5283:18:21"},"nodeType":"YulFunctionCall","src":"5283:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5273:6:21"}]},{"nodeType":"YulAssignment","src":"5321:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5354:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5365:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5350:3:21"},"nodeType":"YulFunctionCall","src":"5350:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5331:18:21"},"nodeType":"YulFunctionCall","src":"5331:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5321:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"5378:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5409:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5420:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5405:3:21"},"nodeType":"YulFunctionCall","src":"5405:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5392:12:21"},"nodeType":"YulFunctionCall","src":"5392:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5382:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5467:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:21"},"nodeType":"YulFunctionCall","src":"5469:12:21"},"nodeType":"YulExpressionStatement","src":"5469:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5439:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"5447:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5436:2:21"},"nodeType":"YulFunctionCall","src":"5436:30:21"},"nodeType":"YulIf","src":"5433:50:21"},{"nodeType":"YulAssignment","src":"5492:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5523:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"5534:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5519:3:21"},"nodeType":"YulFunctionCall","src":"5519:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5543:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5502:16:21"},"nodeType":"YulFunctionCall","src":"5502:49:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5492:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5152:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5163:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5175:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5183:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5191:6:21","type":""}],"src":"5089:468:21"},{"body":{"nodeType":"YulBlock","src":"5628:184:21","statements":[{"nodeType":"YulVariableDeclaration","src":"5638:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"5647:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5642:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5707:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5732:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"5737:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5728:3:21"},"nodeType":"YulFunctionCall","src":"5728:11:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5751:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"5756:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5747:3:21"},"nodeType":"YulFunctionCall","src":"5747:11:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5741:5:21"},"nodeType":"YulFunctionCall","src":"5741:18:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5721:6:21"},"nodeType":"YulFunctionCall","src":"5721:39:21"},"nodeType":"YulExpressionStatement","src":"5721:39:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5668:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"5671:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5665:2:21"},"nodeType":"YulFunctionCall","src":"5665:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5679:19:21","statements":[{"nodeType":"YulAssignment","src":"5681:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5690:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"5693:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5686:3:21"},"nodeType":"YulFunctionCall","src":"5686:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5681:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"5661:3:21","statements":[]},"src":"5657:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5790:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"5795:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5786:3:21"},"nodeType":"YulFunctionCall","src":"5786:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"5804:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5779:6:21"},"nodeType":"YulFunctionCall","src":"5779:27:21"},"nodeType":"YulExpressionStatement","src":"5779:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"5606:3:21","type":""},{"name":"dst","nodeType":"YulTypedName","src":"5611:3:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"5616:6:21","type":""}],"src":"5562:250:21"},{"body":{"nodeType":"YulBlock","src":"5866:221:21","statements":[{"nodeType":"YulVariableDeclaration","src":"5876:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5896:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5890:5:21"},"nodeType":"YulFunctionCall","src":"5890:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5880:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5918:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"5923:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5911:6:21"},"nodeType":"YulFunctionCall","src":"5911:19:21"},"nodeType":"YulExpressionStatement","src":"5911:19:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5978:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"5985:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5974:3:21"},"nodeType":"YulFunctionCall","src":"5974:16:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5996:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"6001:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5992:3:21"},"nodeType":"YulFunctionCall","src":"5992:14:21"},{"name":"length","nodeType":"YulIdentifier","src":"6008:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5939:34:21"},"nodeType":"YulFunctionCall","src":"5939:76:21"},"nodeType":"YulExpressionStatement","src":"5939:76:21"},{"nodeType":"YulAssignment","src":"6024:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6039:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6052:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"6060:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6048:3:21"},"nodeType":"YulFunctionCall","src":"6048:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6069:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6065:3:21"},"nodeType":"YulFunctionCall","src":"6065:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6044:3:21"},"nodeType":"YulFunctionCall","src":"6044:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6035:3:21"},"nodeType":"YulFunctionCall","src":"6035:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"6076:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6031:3:21"},"nodeType":"YulFunctionCall","src":"6031:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6024:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5843:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5850:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5858:3:21","type":""}],"src":"5817:270:21"},{"body":{"nodeType":"YulBlock","src":"6233:157:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6250:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6275:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6268:6:21"},"nodeType":"YulFunctionCall","src":"6268:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6261:6:21"},"nodeType":"YulFunctionCall","src":"6261:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6243:6:21"},"nodeType":"YulFunctionCall","src":"6243:41:21"},"nodeType":"YulExpressionStatement","src":"6243:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6304:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6315:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6300:3:21"},"nodeType":"YulFunctionCall","src":"6300:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"6320:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6293:6:21"},"nodeType":"YulFunctionCall","src":"6293:30:21"},"nodeType":"YulExpressionStatement","src":"6293:30:21"},{"nodeType":"YulAssignment","src":"6332:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6357:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6369:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6380:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6365:3:21"},"nodeType":"YulFunctionCall","src":"6365:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6340:16:21"},"nodeType":"YulFunctionCall","src":"6340:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6332:4:21"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6194:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6205:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6213:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6224:4:21","type":""}],"src":"6092:298:21"},{"body":{"nodeType":"YulBlock","src":"6592:668:21","statements":[{"body":{"nodeType":"YulBlock","src":"6639:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6648:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6651:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6641:6:21"},"nodeType":"YulFunctionCall","src":"6641:12:21"},"nodeType":"YulExpressionStatement","src":"6641:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6613:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"6622:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6609:3:21"},"nodeType":"YulFunctionCall","src":"6609:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"6634:3:21","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6605:3:21"},"nodeType":"YulFunctionCall","src":"6605:33:21"},"nodeType":"YulIf","src":"6602:53:21"},{"nodeType":"YulAssignment","src":"6664:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6693:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6674:18:21"},"nodeType":"YulFunctionCall","src":"6674:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6664:6:21"}]},{"nodeType":"YulAssignment","src":"6712:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6745:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6756:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6741:3:21"},"nodeType":"YulFunctionCall","src":"6741:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6722:18:21"},"nodeType":"YulFunctionCall","src":"6722:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6712:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"6769:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6800:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6811:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6796:3:21"},"nodeType":"YulFunctionCall","src":"6796:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6783:12:21"},"nodeType":"YulFunctionCall","src":"6783:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6773:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6824:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"6834:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6828:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"6879:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6888:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6891:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6881:6:21"},"nodeType":"YulFunctionCall","src":"6881:12:21"},"nodeType":"YulExpressionStatement","src":"6881:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6867:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"6875:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6864:2:21"},"nodeType":"YulFunctionCall","src":"6864:14:21"},"nodeType":"YulIf","src":"6861:34:21"},{"nodeType":"YulAssignment","src":"6904:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6935:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"6946:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6931:3:21"},"nodeType":"YulFunctionCall","src":"6931:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6955:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6914:16:21"},"nodeType":"YulFunctionCall","src":"6914:49:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6904:6:21"}]},{"nodeType":"YulAssignment","src":"6972:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7004:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7015:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7000:3:21"},"nodeType":"YulFunctionCall","src":"7000:18:21"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"6982:17:21"},"nodeType":"YulFunctionCall","src":"6982:37:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6972:6:21"}]},{"nodeType":"YulAssignment","src":"7028:43:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7055:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7066:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7051:3:21"},"nodeType":"YulFunctionCall","src":"7051:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7038:12:21"},"nodeType":"YulFunctionCall","src":"7038:33:21"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7028:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"7080:49:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7113:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7124:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7109:3:21"},"nodeType":"YulFunctionCall","src":"7109:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7096:12:21"},"nodeType":"YulFunctionCall","src":"7096:33:21"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7084:8:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"7158:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7167:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7170:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7160:6:21"},"nodeType":"YulFunctionCall","src":"7160:12:21"},"nodeType":"YulExpressionStatement","src":"7160:12:21"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7144:8:21"},{"name":"_1","nodeType":"YulIdentifier","src":"7154:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7141:2:21"},"nodeType":"YulFunctionCall","src":"7141:16:21"},"nodeType":"YulIf","src":"7138:36:21"},{"nodeType":"YulAssignment","src":"7183:71:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7224:9:21"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7235:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7220:3:21"},"nodeType":"YulFunctionCall","src":"7220:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7246:7:21"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"7193:26:21"},"nodeType":"YulFunctionCall","src":"7193:61:21"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7183:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptrt_bytes4t_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6518:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6529:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6541:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6549:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6557:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6565:6:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6573:6:21","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6581:6:21","type":""}],"src":"6395:865:21"},{"body":{"nodeType":"YulBlock","src":"7439:165:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7456:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7467:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7449:6:21"},"nodeType":"YulFunctionCall","src":"7449:21:21"},"nodeType":"YulExpressionStatement","src":"7449:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7490:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7501:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7486:3:21"},"nodeType":"YulFunctionCall","src":"7486:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"7506:2:21","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7479:6:21"},"nodeType":"YulFunctionCall","src":"7479:30:21"},"nodeType":"YulExpressionStatement","src":"7479:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7529:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7540:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7525:3:21"},"nodeType":"YulFunctionCall","src":"7525:18:21"},{"hexValue":"416c726561647920726573756d6564","kind":"string","nodeType":"YulLiteral","src":"7545:17:21","type":"","value":"Already resumed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7518:6:21"},"nodeType":"YulFunctionCall","src":"7518:45:21"},"nodeType":"YulExpressionStatement","src":"7518:45:21"},{"nodeType":"YulAssignment","src":"7572:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7584:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7595:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7580:3:21"},"nodeType":"YulFunctionCall","src":"7580:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7572:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7416:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7430:4:21","type":""}],"src":"7265:339:21"},{"body":{"nodeType":"YulBlock","src":"7832:342:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7849:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7864:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7880:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7885:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7876:3:21"},"nodeType":"YulFunctionCall","src":"7876:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"7889:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7872:3:21"},"nodeType":"YulFunctionCall","src":"7872:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7860:3:21"},"nodeType":"YulFunctionCall","src":"7860:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7842:6:21"},"nodeType":"YulFunctionCall","src":"7842:51:21"},"nodeType":"YulExpressionStatement","src":"7842:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7913:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7924:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7909:3:21"},"nodeType":"YulFunctionCall","src":"7909:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7933:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7945:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7950:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7941:3:21"},"nodeType":"YulFunctionCall","src":"7941:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7929:3:21"},"nodeType":"YulFunctionCall","src":"7929:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7902:6:21"},"nodeType":"YulFunctionCall","src":"7902:61:21"},"nodeType":"YulExpressionStatement","src":"7902:61:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7983:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7994:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7979:3:21"},"nodeType":"YulFunctionCall","src":"7979:18:21"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8013:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8006:6:21"},"nodeType":"YulFunctionCall","src":"8006:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7999:6:21"},"nodeType":"YulFunctionCall","src":"7999:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7972:6:21"},"nodeType":"YulFunctionCall","src":"7972:50:21"},"nodeType":"YulExpressionStatement","src":"7972:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8042:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8053:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8038:3:21"},"nodeType":"YulFunctionCall","src":"8038:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"8058:3:21","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8031:6:21"},"nodeType":"YulFunctionCall","src":"8031:31:21"},"nodeType":"YulExpressionStatement","src":"8031:31:21"},{"nodeType":"YulAssignment","src":"8071:53:21","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8096:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8108:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8119:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8104:3:21"},"nodeType":"YulFunctionCall","src":"8104:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8079:16:21"},"nodeType":"YulFunctionCall","src":"8079:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8071:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8155:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8140:3:21"},"nodeType":"YulFunctionCall","src":"8140:19:21"},{"name":"value4","nodeType":"YulIdentifier","src":"8161:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8133:6:21"},"nodeType":"YulFunctionCall","src":"8133:35:21"},"nodeType":"YulExpressionStatement","src":"8133:35:21"}]},"name":"abi_encode_tuple_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7769:9:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7780:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7788:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7796:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7804:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7812:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7823:4:21","type":""}],"src":"7609:565:21"},{"body":{"nodeType":"YulBlock","src":"8348:200:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8365:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8390:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8383:6:21"},"nodeType":"YulFunctionCall","src":"8383:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8376:6:21"},"nodeType":"YulFunctionCall","src":"8376:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8358:6:21"},"nodeType":"YulFunctionCall","src":"8358:41:21"},"nodeType":"YulExpressionStatement","src":"8358:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8419:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8430:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8415:3:21"},"nodeType":"YulFunctionCall","src":"8415:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"8435:2:21","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8408:6:21"},"nodeType":"YulFunctionCall","src":"8408:30:21"},"nodeType":"YulExpressionStatement","src":"8408:30:21"},{"nodeType":"YulAssignment","src":"8447:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8472:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8484:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8495:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8480:3:21"},"nodeType":"YulFunctionCall","src":"8480:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8455:16:21"},"nodeType":"YulFunctionCall","src":"8455:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8447:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8519:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8530:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8515:3:21"},"nodeType":"YulFunctionCall","src":"8515:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"8535:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8508:6:21"},"nodeType":"YulFunctionCall","src":"8508:34:21"},"nodeType":"YulExpressionStatement","src":"8508:34:21"}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr_t_uint256__to_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8301:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8312:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8320:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8328:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8339:4:21","type":""}],"src":"8179:369:21"},{"body":{"nodeType":"YulBlock","src":"8690:150:21","statements":[{"nodeType":"YulVariableDeclaration","src":"8700:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8720:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8714:5:21"},"nodeType":"YulFunctionCall","src":"8714:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8704:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8775:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"8783:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8771:3:21"},"nodeType":"YulFunctionCall","src":"8771:17:21"},{"name":"pos","nodeType":"YulIdentifier","src":"8790:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"8795:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"8736:34:21"},"nodeType":"YulFunctionCall","src":"8736:66:21"},"nodeType":"YulExpressionStatement","src":"8736:66:21"},{"nodeType":"YulAssignment","src":"8811:23:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8822:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"8827:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8818:3:21"},"nodeType":"YulFunctionCall","src":"8818:16:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8811:3:21"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8666:3:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8671:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8682:3:21","type":""}],"src":"8553:287:21"},{"body":{"nodeType":"YulBlock","src":"9032:271:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9049:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9060:2:21","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9042:6:21"},"nodeType":"YulFunctionCall","src":"9042:21:21"},"nodeType":"YulExpressionStatement","src":"9042:21:21"},{"nodeType":"YulVariableDeclaration","src":"9072:58:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9103:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9115:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9126:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9111:3:21"},"nodeType":"YulFunctionCall","src":"9111:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9086:16:21"},"nodeType":"YulFunctionCall","src":"9086:44:21"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"9076:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9161:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9146:3:21"},"nodeType":"YulFunctionCall","src":"9146:18:21"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9180:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9173:6:21"},"nodeType":"YulFunctionCall","src":"9173:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9166:6:21"},"nodeType":"YulFunctionCall","src":"9166:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9139:6:21"},"nodeType":"YulFunctionCall","src":"9139:50:21"},"nodeType":"YulExpressionStatement","src":"9139:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9209:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9220:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9205:3:21"},"nodeType":"YulFunctionCall","src":"9205:18:21"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"9229:6:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"9237:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9225:3:21"},"nodeType":"YulFunctionCall","src":"9225:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9198:6:21"},"nodeType":"YulFunctionCall","src":"9198:50:21"},"nodeType":"YulExpressionStatement","src":"9198:50:21"},{"nodeType":"YulAssignment","src":"9257:40:21","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9282:6:21"},{"name":"tail_1","nodeType":"YulIdentifier","src":"9290:6:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9265:16:21"},"nodeType":"YulFunctionCall","src":"9265:32:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9257:4:21"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8985:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8996:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9004:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9012:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9023:4:21","type":""}],"src":"8845:458:21"},{"body":{"nodeType":"YulBlock","src":"9559:416:21","statements":[{"nodeType":"YulVariableDeclaration","src":"9569:29:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9587:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9592:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9583:3:21"},"nodeType":"YulFunctionCall","src":"9583:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"9596:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9579:3:21"},"nodeType":"YulFunctionCall","src":"9579:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9573:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9614:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9629:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"9637:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9625:3:21"},"nodeType":"YulFunctionCall","src":"9625:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9607:6:21"},"nodeType":"YulFunctionCall","src":"9607:34:21"},"nodeType":"YulExpressionStatement","src":"9607:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9661:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9672:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9657:3:21"},"nodeType":"YulFunctionCall","src":"9657:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9681:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"9689:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9677:3:21"},"nodeType":"YulFunctionCall","src":"9677:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9650:6:21"},"nodeType":"YulFunctionCall","src":"9650:43:21"},"nodeType":"YulExpressionStatement","src":"9650:43:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9713:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9724:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9709:3:21"},"nodeType":"YulFunctionCall","src":"9709:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"9729:3:21","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9702:6:21"},"nodeType":"YulFunctionCall","src":"9702:31:21"},"nodeType":"YulExpressionStatement","src":"9702:31:21"},{"nodeType":"YulAssignment","src":"9742:53:21","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9767:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9779:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9790:3:21","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9775:3:21"},"nodeType":"YulFunctionCall","src":"9775:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9750:16:21"},"nodeType":"YulFunctionCall","src":"9750:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9742:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9815:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9826:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9811:3:21"},"nodeType":"YulFunctionCall","src":"9811:18:21"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9845:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9838:6:21"},"nodeType":"YulFunctionCall","src":"9838:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9831:6:21"},"nodeType":"YulFunctionCall","src":"9831:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9804:6:21"},"nodeType":"YulFunctionCall","src":"9804:50:21"},"nodeType":"YulExpressionStatement","src":"9804:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9874:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9885:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9870:3:21"},"nodeType":"YulFunctionCall","src":"9870:19:21"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9895:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9907:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9912:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9903:3:21"},"nodeType":"YulFunctionCall","src":"9903:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9891:3:21"},"nodeType":"YulFunctionCall","src":"9891:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9863:6:21"},"nodeType":"YulFunctionCall","src":"9863:62:21"},"nodeType":"YulExpressionStatement","src":"9863:62:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9945:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9956:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9941:3:21"},"nodeType":"YulFunctionCall","src":"9941:19:21"},{"name":"value5","nodeType":"YulIdentifier","src":"9962:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9934:6:21"},"nodeType":"YulFunctionCall","src":"9934:35:21"},"nodeType":"YulExpressionStatement","src":"9934:35:21"}]},"name":"abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__to_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9488:9:21","type":""},{"name":"value5","nodeType":"YulTypedName","src":"9499:6:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9507:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9515:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9523:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9531:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9539:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9550:4:21","type":""}],"src":"9308:667:21"},{"body":{"nodeType":"YulBlock","src":"10027:185:21","statements":[{"body":{"nodeType":"YulBlock","src":"10066:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10087:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10094:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10099:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10090:3:21"},"nodeType":"YulFunctionCall","src":"10090:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10080:6:21"},"nodeType":"YulFunctionCall","src":"10080:31:21"},"nodeType":"YulExpressionStatement","src":"10080:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10131:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10134:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10124:6:21"},"nodeType":"YulFunctionCall","src":"10124:15:21"},"nodeType":"YulExpressionStatement","src":"10124:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10159:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10162:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10152:6:21"},"nodeType":"YulFunctionCall","src":"10152:15:21"},"nodeType":"YulExpressionStatement","src":"10152:15:21"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10043:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10054:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10050:3:21"},"nodeType":"YulFunctionCall","src":"10050:6:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10040:2:21"},"nodeType":"YulFunctionCall","src":"10040:17:21"},"nodeType":"YulIf","src":"10037:140:21"},{"nodeType":"YulAssignment","src":"10186:20:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10197:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"10204:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10193:3:21"},"nodeType":"YulFunctionCall","src":"10193:13:21"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10186:3:21"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10009:5:21","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10019:3:21","type":""}],"src":"9980:232:21"},{"body":{"nodeType":"YulBlock","src":"10334:102:21","statements":[{"nodeType":"YulAssignment","src":"10344:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10356:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10367:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10352:3:21"},"nodeType":"YulFunctionCall","src":"10352:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10344:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10386:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10401:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10417:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10422:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10413:3:21"},"nodeType":"YulFunctionCall","src":"10413:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"10426:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10409:3:21"},"nodeType":"YulFunctionCall","src":"10409:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10397:3:21"},"nodeType":"YulFunctionCall","src":"10397:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10379:6:21"},"nodeType":"YulFunctionCall","src":"10379:51:21"},"nodeType":"YulExpressionStatement","src":"10379:51:21"}]},"name":"abi_encode_tuple_t_contract$_Relayer_$4434__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10303:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10314:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10325:4:21","type":""}],"src":"10217:219:21"},{"body":{"nodeType":"YulBlock","src":"10615:161:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10632:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10643:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10625:6:21"},"nodeType":"YulFunctionCall","src":"10625:21:21"},"nodeType":"YulExpressionStatement","src":"10625:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10666:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10677:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10662:3:21"},"nodeType":"YulFunctionCall","src":"10662:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"10682:2:21","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10655:6:21"},"nodeType":"YulFunctionCall","src":"10655:30:21"},"nodeType":"YulExpressionStatement","src":"10655:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10705:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10716:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10701:3:21"},"nodeType":"YulFunctionCall","src":"10701:18:21"},{"hexValue":"636f6465206c656e677468","kind":"string","nodeType":"YulLiteral","src":"10721:13:21","type":"","value":"code length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10694:6:21"},"nodeType":"YulFunctionCall","src":"10694:41:21"},"nodeType":"YulExpressionStatement","src":"10694:41:21"},{"nodeType":"YulAssignment","src":"10744:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10756:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10767:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10752:3:21"},"nodeType":"YulFunctionCall","src":"10752:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10744:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10592:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10606:4:21","type":""}],"src":"10441:335:21"},{"body":{"nodeType":"YulBlock","src":"10928:167:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10945:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10960:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10976:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10981:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10972:3:21"},"nodeType":"YulFunctionCall","src":"10972:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"10985:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10968:3:21"},"nodeType":"YulFunctionCall","src":"10968:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10956:3:21"},"nodeType":"YulFunctionCall","src":"10956:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10938:6:21"},"nodeType":"YulFunctionCall","src":"10938:51:21"},"nodeType":"YulExpressionStatement","src":"10938:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11009:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"11020:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11005:3:21"},"nodeType":"YulFunctionCall","src":"11005:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"11025:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10998:6:21"},"nodeType":"YulFunctionCall","src":"10998:30:21"},"nodeType":"YulExpressionStatement","src":"10998:30:21"},{"nodeType":"YulAssignment","src":"11037:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11062:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11074:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"11085:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11070:3:21"},"nodeType":"YulFunctionCall","src":"11070:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11045:16:21"},"nodeType":"YulFunctionCall","src":"11045:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11037:4:21"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10889:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10900:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10908:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10919:4:21","type":""}],"src":"10781:314:21"},{"body":{"nodeType":"YulBlock","src":"11204:665:21","statements":[{"body":{"nodeType":"YulBlock","src":"11250:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11259:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11262:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11252:6:21"},"nodeType":"YulFunctionCall","src":"11252:12:21"},"nodeType":"YulExpressionStatement","src":"11252:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11225:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"11234:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11221:3:21"},"nodeType":"YulFunctionCall","src":"11221:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"11246:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11217:3:21"},"nodeType":"YulFunctionCall","src":"11217:32:21"},"nodeType":"YulIf","src":"11214:52:21"},{"nodeType":"YulVariableDeclaration","src":"11275:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11294:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11288:5:21"},"nodeType":"YulFunctionCall","src":"11288:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11279:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11335:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"11313:21:21"},"nodeType":"YulFunctionCall","src":"11313:28:21"},"nodeType":"YulExpressionStatement","src":"11313:28:21"},{"nodeType":"YulAssignment","src":"11350:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"11360:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11350:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"11374:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11398:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"11409:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11394:3:21"},"nodeType":"YulFunctionCall","src":"11394:18:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11388:5:21"},"nodeType":"YulFunctionCall","src":"11388:25:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11378:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"11456:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11465:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11468:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11458:6:21"},"nodeType":"YulFunctionCall","src":"11458:12:21"},"nodeType":"YulExpressionStatement","src":"11458:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11428:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"11436:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11425:2:21"},"nodeType":"YulFunctionCall","src":"11425:30:21"},"nodeType":"YulIf","src":"11422:50:21"},{"nodeType":"YulVariableDeclaration","src":"11481:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11495:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"11506:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11491:3:21"},"nodeType":"YulFunctionCall","src":"11491:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11485:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"11561:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11570:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11573:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11563:6:21"},"nodeType":"YulFunctionCall","src":"11563:12:21"},"nodeType":"YulExpressionStatement","src":"11563:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11540:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"11544:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11536:3:21"},"nodeType":"YulFunctionCall","src":"11536:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11551:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11532:3:21"},"nodeType":"YulFunctionCall","src":"11532:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11525:6:21"},"nodeType":"YulFunctionCall","src":"11525:35:21"},"nodeType":"YulIf","src":"11522:55:21"},{"nodeType":"YulVariableDeclaration","src":"11586:19:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11602:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11596:5:21"},"nodeType":"YulFunctionCall","src":"11596:9:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11590:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11614:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11671:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"11643:27:21"},"nodeType":"YulFunctionCall","src":"11643:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"11627:15:21"},"nodeType":"YulFunctionCall","src":"11627:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"11618:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11691:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"11698:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11684:6:21"},"nodeType":"YulFunctionCall","src":"11684:17:21"},"nodeType":"YulExpressionStatement","src":"11684:17:21"},{"body":{"nodeType":"YulBlock","src":"11747:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11756:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11759:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11749:6:21"},"nodeType":"YulFunctionCall","src":"11749:12:21"},"nodeType":"YulExpressionStatement","src":"11749:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11724:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"11728:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11720:3:21"},"nodeType":"YulFunctionCall","src":"11720:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"11733:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11716:3:21"},"nodeType":"YulFunctionCall","src":"11716:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11738:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11713:2:21"},"nodeType":"YulFunctionCall","src":"11713:33:21"},"nodeType":"YulIf","src":"11710:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11811:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"11815:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11807:3:21"},"nodeType":"YulFunctionCall","src":"11807:11:21"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11824:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:21"},"nodeType":"YulFunctionCall","src":"11820:14:21"},{"name":"_2","nodeType":"YulIdentifier","src":"11836:2:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11772:34:21"},"nodeType":"YulFunctionCall","src":"11772:67:21"},"nodeType":"YulExpressionStatement","src":"11772:67:21"},{"nodeType":"YulAssignment","src":"11848:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"11858:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11848:6:21"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11162:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11173:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11185:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11193:6:21","type":""}],"src":"11100:769:21"},{"body":{"nodeType":"YulBlock","src":"12048:168:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12065:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12076:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12058:6:21"},"nodeType":"YulFunctionCall","src":"12058:21:21"},"nodeType":"YulExpressionStatement","src":"12058:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12099:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12110:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12095:3:21"},"nodeType":"YulFunctionCall","src":"12095:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"12115:2:21","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12088:6:21"},"nodeType":"YulFunctionCall","src":"12088:30:21"},"nodeType":"YulExpressionStatement","src":"12088:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12138:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12149:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12134:3:21"},"nodeType":"YulFunctionCall","src":"12134:18:21"},{"hexValue":"416c72656164792064697370617463686564","kind":"string","nodeType":"YulLiteral","src":"12154:20:21","type":"","value":"Already dispatched"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12127:6:21"},"nodeType":"YulFunctionCall","src":"12127:48:21"},"nodeType":"YulExpressionStatement","src":"12127:48:21"},{"nodeType":"YulAssignment","src":"12184:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12196:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12207:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12192:3:21"},"nodeType":"YulFunctionCall","src":"12192:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12184:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12025:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12039:4:21","type":""}],"src":"11874:342:21"},{"body":{"nodeType":"YulBlock","src":"12388:227:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12405:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12420:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12432:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12437:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12428:3:21"},"nodeType":"YulFunctionCall","src":"12428:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12416:3:21"},"nodeType":"YulFunctionCall","src":"12416:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12398:6:21"},"nodeType":"YulFunctionCall","src":"12398:52:21"},"nodeType":"YulExpressionStatement","src":"12398:52:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12470:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12481:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12466:3:21"},"nodeType":"YulFunctionCall","src":"12466:18:21"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12500:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12493:6:21"},"nodeType":"YulFunctionCall","src":"12493:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12486:6:21"},"nodeType":"YulFunctionCall","src":"12486:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12459:6:21"},"nodeType":"YulFunctionCall","src":"12459:50:21"},"nodeType":"YulExpressionStatement","src":"12459:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12529:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12540:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12525:3:21"},"nodeType":"YulFunctionCall","src":"12525:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"12545:2:21","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12518:6:21"},"nodeType":"YulFunctionCall","src":"12518:30:21"},"nodeType":"YulExpressionStatement","src":"12518:30:21"},{"nodeType":"YulAssignment","src":"12557:52:21","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12582:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12594:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12605:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12590:3:21"},"nodeType":"YulFunctionCall","src":"12590:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12565:16:21"},"nodeType":"YulFunctionCall","src":"12565:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12557:4:21"}]}]},"name":"abi_encode_tuple_t_bytes4_t_bool_t_bytes_memory_ptr__to_t_bytes4_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12341:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12352:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12360:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12368:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12379:4:21","type":""}],"src":"12221:394:21"},{"body":{"nodeType":"YulBlock","src":"12817:674:21","statements":[{"nodeType":"YulVariableDeclaration","src":"12827:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12845:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12856:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12841:3:21"},"nodeType":"YulFunctionCall","src":"12841:18:21"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12831:6:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12875:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"12886:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12868:6:21"},"nodeType":"YulFunctionCall","src":"12868:25:21"},"nodeType":"YulExpressionStatement","src":"12868:25:21"},{"nodeType":"YulVariableDeclaration","src":"12902:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"12912:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12906:2:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12934:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"12945:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12930:3:21"},"nodeType":"YulFunctionCall","src":"12930:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"12950:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12923:6:21"},"nodeType":"YulFunctionCall","src":"12923:30:21"},"nodeType":"YulExpressionStatement","src":"12923:30:21"},{"nodeType":"YulVariableDeclaration","src":"12962:17:21","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"12973:6:21"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"12966:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12988:27:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13008:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13002:5:21"},"nodeType":"YulFunctionCall","src":"13002:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12992:6:21","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13031:6:21"},{"name":"length","nodeType":"YulIdentifier","src":"13039:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13024:6:21"},"nodeType":"YulFunctionCall","src":"13024:22:21"},"nodeType":"YulExpressionStatement","src":"13024:22:21"},{"nodeType":"YulAssignment","src":"13055:25:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13066:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"13077:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13062:3:21"},"nodeType":"YulFunctionCall","src":"13062:18:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13055:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"13089:53:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13111:9:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13126:1:21","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"13129:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13122:3:21"},"nodeType":"YulFunctionCall","src":"13122:14:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13107:3:21"},"nodeType":"YulFunctionCall","src":"13107:30:21"},{"kind":"number","nodeType":"YulLiteral","src":"13139:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13103:3:21"},"nodeType":"YulFunctionCall","src":"13103:39:21"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"13093:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13151:29:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13169:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"13177:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13165:3:21"},"nodeType":"YulFunctionCall","src":"13165:15:21"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"13155:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13189:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"13198:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13193:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"13257:205:21","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13278:3:21"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"13291:6:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"13299:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:21"},"nodeType":"YulFunctionCall","src":"13287:22:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13315:2:21","type":"","value":"95"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13311:3:21"},"nodeType":"YulFunctionCall","src":"13311:7:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13283:3:21"},"nodeType":"YulFunctionCall","src":"13283:36:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13271:6:21"},"nodeType":"YulFunctionCall","src":"13271:49:21"},"nodeType":"YulExpressionStatement","src":"13271:49:21"},{"nodeType":"YulAssignment","src":"13333:49:21","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13366:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13360:5:21"},"nodeType":"YulFunctionCall","src":"13360:13:21"},{"name":"tail_2","nodeType":"YulIdentifier","src":"13375:6:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13343:16:21"},"nodeType":"YulFunctionCall","src":"13343:39:21"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"13333:6:21"}]},{"nodeType":"YulAssignment","src":"13395:25:21","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13409:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"13417:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13405:3:21"},"nodeType":"YulFunctionCall","src":"13405:15:21"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13395:6:21"}]},{"nodeType":"YulAssignment","src":"13433:19:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13444:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"13449:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13440:3:21"},"nodeType":"YulFunctionCall","src":"13440:12:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13433:3:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13219:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"13222:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13216:2:21"},"nodeType":"YulFunctionCall","src":"13216:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13230:18:21","statements":[{"nodeType":"YulAssignment","src":"13232:14:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13241:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"13244:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13237:3:21"},"nodeType":"YulFunctionCall","src":"13237:9:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13232:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"13212:3:21","statements":[]},"src":"13208:254:21"},{"nodeType":"YulAssignment","src":"13471:14:21","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"13479:6:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13471:4:21"}]}]},"name":"abi_encode_tuple_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12778:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12789:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12797:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12808:4:21","type":""}],"src":"12620:871:21"},{"body":{"nodeType":"YulBlock","src":"13574:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"13620:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13629:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13632:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13622:6:21"},"nodeType":"YulFunctionCall","src":"13622:12:21"},"nodeType":"YulExpressionStatement","src":"13622:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13595:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"13604:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13591:3:21"},"nodeType":"YulFunctionCall","src":"13591:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"13616:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13587:3:21"},"nodeType":"YulFunctionCall","src":"13587:32:21"},"nodeType":"YulIf","src":"13584:52:21"},{"nodeType":"YulVariableDeclaration","src":"13645:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13664:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13658:5:21"},"nodeType":"YulFunctionCall","src":"13658:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13649:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13705:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"13683:21:21"},"nodeType":"YulFunctionCall","src":"13683:28:21"},"nodeType":"YulExpressionStatement","src":"13683:28:21"},{"nodeType":"YulAssignment","src":"13720:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"13730:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13720:6:21"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13540:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13551:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13563:6:21","type":""}],"src":"13496:245:21"},{"body":{"nodeType":"YulBlock","src":"13920:168:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13937:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"13948:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13930:6:21"},"nodeType":"YulFunctionCall","src":"13930:21:21"},"nodeType":"YulExpressionStatement","src":"13930:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13971:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"13982:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13967:3:21"},"nodeType":"YulFunctionCall","src":"13967:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"13987:2:21","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13960:6:21"},"nodeType":"YulFunctionCall","src":"13960:30:21"},"nodeType":"YulExpressionStatement","src":"13960:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14010:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14021:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14006:3:21"},"nodeType":"YulFunctionCall","src":"14006:18:21"},{"hexValue":"496e76616c6964207369676e617475726573","kind":"string","nodeType":"YulLiteral","src":"14026:20:21","type":"","value":"Invalid signatures"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13999:6:21"},"nodeType":"YulFunctionCall","src":"13999:48:21"},"nodeType":"YulExpressionStatement","src":"13999:48:21"},{"nodeType":"YulAssignment","src":"14056:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14068:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14079:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14064:3:21"},"nodeType":"YulFunctionCall","src":"14064:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14056:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13897:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13911:4:21","type":""}],"src":"13746:342:21"},{"body":{"nodeType":"YulBlock","src":"14267:166:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14284:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14295:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14277:6:21"},"nodeType":"YulFunctionCall","src":"14277:21:21"},"nodeType":"YulExpressionStatement","src":"14277:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14318:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14329:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14314:3:21"},"nodeType":"YulFunctionCall","src":"14314:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"14334:2:21","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14307:6:21"},"nodeType":"YulFunctionCall","src":"14307:30:21"},"nodeType":"YulExpressionStatement","src":"14307:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14357:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14368:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14353:3:21"},"nodeType":"YulFunctionCall","src":"14353:18:21"},{"hexValue":"4e6f2073757065726d616a6f72697479","kind":"string","nodeType":"YulLiteral","src":"14373:18:21","type":"","value":"No supermajority"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14346:6:21"},"nodeType":"YulFunctionCall","src":"14346:46:21"},"nodeType":"YulExpressionStatement","src":"14346:46:21"},{"nodeType":"YulAssignment","src":"14401:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14413:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14424:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14409:3:21"},"nodeType":"YulFunctionCall","src":"14409:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14401:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14244:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14258:4:21","type":""}],"src":"14093:340:21"},{"body":{"nodeType":"YulBlock","src":"14567:119:21","statements":[{"nodeType":"YulAssignment","src":"14577:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14589:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14600:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14585:3:21"},"nodeType":"YulFunctionCall","src":"14585:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14577:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14619:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"14630:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14612:6:21"},"nodeType":"YulFunctionCall","src":"14612:25:21"},"nodeType":"YulExpressionStatement","src":"14612:25:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14657:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14668:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14653:3:21"},"nodeType":"YulFunctionCall","src":"14653:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"14673:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14646:6:21"},"nodeType":"YulFunctionCall","src":"14646:34:21"},"nodeType":"YulExpressionStatement","src":"14646:34:21"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14528:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14539:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14547:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14558:4:21","type":""}],"src":"14438:248:21"},{"body":{"nodeType":"YulBlock","src":"14965:415:21","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14982:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"14987:66:21","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14975:6:21"},"nodeType":"YulFunctionCall","src":"14975:79:21"},"nodeType":"YulExpressionStatement","src":"14975:79:21"},{"nodeType":"YulVariableDeclaration","src":"15063:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15083:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15077:5:21"},"nodeType":"YulFunctionCall","src":"15077:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15067:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15138:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"15146:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15134:3:21"},"nodeType":"YulFunctionCall","src":"15134:17:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15157:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"15162:2:21","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15153:3:21"},"nodeType":"YulFunctionCall","src":"15153:12:21"},{"name":"length","nodeType":"YulIdentifier","src":"15167:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"15099:34:21"},"nodeType":"YulFunctionCall","src":"15099:75:21"},"nodeType":"YulExpressionStatement","src":"15099:75:21"},{"nodeType":"YulVariableDeclaration","src":"15183:26:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15197:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"15202:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15193:3:21"},"nodeType":"YulFunctionCall","src":"15193:16:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15187:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15218:29:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15240:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15234:5:21"},"nodeType":"YulFunctionCall","src":"15234:13:21"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"15222:8:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15295:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"15303:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15291:3:21"},"nodeType":"YulFunctionCall","src":"15291:17:21"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"15314:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"15318:2:21","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15310:3:21"},"nodeType":"YulFunctionCall","src":"15310:11:21"},{"name":"length_1","nodeType":"YulIdentifier","src":"15323:8:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"15256:34:21"},"nodeType":"YulFunctionCall","src":"15256:76:21"},"nodeType":"YulExpressionStatement","src":"15256:76:21"},{"nodeType":"YulAssignment","src":"15341:33:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"15356:2:21"},{"name":"length_1","nodeType":"YulIdentifier","src":"15360:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15352:3:21"},"nodeType":"YulFunctionCall","src":"15352:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"15371:2:21","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15348:3:21"},"nodeType":"YulFunctionCall","src":"15348:26:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15341:3:21"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes26_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14933:3:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14938:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14946:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14957:3:21","type":""}],"src":"14691:689:21"},{"body":{"nodeType":"YulBlock","src":"15417:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15434:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15441:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15446:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15437:3:21"},"nodeType":"YulFunctionCall","src":"15437:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15427:6:21"},"nodeType":"YulFunctionCall","src":"15427:31:21"},"nodeType":"YulExpressionStatement","src":"15427:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15474:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15477:4:21","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15467:6:21"},"nodeType":"YulFunctionCall","src":"15467:15:21"},"nodeType":"YulExpressionStatement","src":"15467:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15498:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15501:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15491:6:21"},"nodeType":"YulFunctionCall","src":"15491:15:21"},"nodeType":"YulExpressionStatement","src":"15491:15:21"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"15385:127:21"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_bytes4(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_array_bytes_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let _3 := 0xffffffffffffffff\n if gt(_1, _3) { panic_error_0x41() }\n let _4 := shl(5, _1)\n let dst := allocate_memory(add(_4, _2))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, _4), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, _3)\n {\n let _5 := 0\n revert(_5, _5)\n }\n mstore(dst, abi_decode_bytes(add(add(offset, innerOffset), _2), end))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_addresst_bytes4t_boolt_bytes_memory_ptrt_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_bytes4(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_bool(value)\n value2 := value\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value4 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n value5 := abi_decode_array_bytes_dyn(add(headStart, offset_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_boolt_bytes4(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value := calldataload(add(headStart, 64))\n validator_revert_bool(value)\n value2 := value\n value3 := abi_decode_bytes4(add(headStart, 96))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bytes32t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\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 mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptrt_bytes4t_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value3 := abi_decode_bytes4(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n value5 := abi_decode_array_bytes_dyn(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Already resumed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, shl(224, 0xffffffff)))\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), 160)\n tail := abi_encode_bytes(value3, add(headStart, 160))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr_t_uint256__to_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_bytes(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_bytes(value0, add(headStart, 96))\n mstore(add(headStart, 32), iszero(iszero(value1)))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes(value2, tail_1)\n }\n function abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__to_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 192)\n tail := abi_encode_bytes(value2, add(headStart, 192))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_contract$_Relayer_$4434__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"code length\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value1 := array\n }\n function abi_encode_tuple_t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Already dispatched\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes4_t_bool_t_bytes_memory_ptr__to_t_bytes4_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n mstore(add(headStart, 32), iszero(iszero(value1)))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 64)\n mstore(headStart, value0)\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let pos := tail_1\n let length := mload(value1)\n mstore(tail_1, length)\n pos := add(headStart, 96)\n let tail_2 := add(add(headStart, shl(5, length)), 96)\n let srcPtr := add(value1, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(95)))\n tail_2 := abi_encode_bytes(mload(srcPtr), tail_2)\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Invalid signatures\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"No supermajority\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes26_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 26), length)\n let _1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 26), length_1)\n end := add(add(_1, length_1), 26)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB0A6BD1 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x139B4A87 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x5390E474 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0xADDE344C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xC1B2F734 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0xC55 JUMP JUMPDEST PUSH2 0x11D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0x7F CALLDATASIZE PUSH1 0x4 PUSH2 0xCF5 JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x37F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH2 0xEA CALLDATASIZE PUSH1 0x4 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8E SWAP3 SWAP2 SWAP1 PUSH2 0xE90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x118 CALLDATASIZE PUSH1 0x4 PUSH2 0xEB3 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x105B1C9958591E481C995CDD5B5959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1BE DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP6 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63B4581C24AA1258B32A3ED8AA708A03DDA9F962411C5C23B78087B68CF13856 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 SWAP3 PUSH32 0x7AB318DA6C14CBF3D1875045814B566FDF036863BCC775BB3A6959EAD4CA8E15 SWAP3 PUSH2 0x33E SWAP3 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x361 DUP4 PUSH2 0x103A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C4 PUSH1 0x0 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x885 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x189ACDBD PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC4D66DE8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH32 0xA5A933C2D9902E11B856EB9AD37FFC16A70221D90F75F5D5219D9DD600F9FC9 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x4AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x82DCC731 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x82DCC731 SWAP1 PUSH2 0x4D8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x51D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x592 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x105B1C9958591E48191A5CDC185D18DA1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5B0 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x5CB DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5D903F03 DUP10 DUP10 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x644 SWAP3 SWAP2 SWAP1 PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x68B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF3DFF5C6A7D612C95DE0AEF2822489AEB43D5DA7C5140DE276F31417F9475D72 DUP9 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x717 DUP4 PUSH2 0x905 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CA3E1FD PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7947C3FA SWAP1 PUSH2 0x74A SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x767 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x78B SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x7CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E76616C6964207369676E617475726573 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 SLOAD DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x3E99D941 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x3E99D941 SWAP2 PUSH2 0x800 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x841 SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x880 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x4E6F2073757065726D616A6F72697479 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x8B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x392EFB2B PUSH1 0xE2 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x17F JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x8D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x457 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3A0BA961 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP3 MLOAD PUSH2 0x940 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x923 SWAP3 SWAP2 SWAP1 PUSH2 0x11CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x94D DUP4 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x96D JUMPI PUSH2 0x96D PUSH2 0xAF1 JUMP 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 0x997 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x9A1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xA12 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xA3E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xA5C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xA74 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xA88 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xA9A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAA6 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xAEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB30 JUMPI PUSH2 0xB30 PUSH2 0xAF1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB52 JUMPI PUSH2 0xB52 PUSH2 0xAF1 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB84 PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0xB07 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xB99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0xBE4 JUMPI PUSH2 0xBE4 PUSH2 0xAF1 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH2 0xBF3 DUP4 DUP3 ADD PUSH2 0xB07 JUMP JUMPDEST SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP1 DUP9 DUP7 GT ISZERO PUSH2 0xC0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 DUP9 ADD SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0xC49 JUMPI DUP3 CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0xC2B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC39 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0xB60 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP5 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0xC13 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC77 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xC85 PUSH1 0x20 DUP9 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0xC95 DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCBE DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP4 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xCDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE8 DUP10 DUP3 DUP11 ADD PUSH2 0xBB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD14 DUP6 PUSH2 0xAAC JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3C DUP8 DUP3 DUP9 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0xD4D DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP2 POP PUSH2 0xD5B PUSH1 0x60 DUP7 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xDAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xDCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE00 DUP5 PUSH2 0xAAC JUMP JUMPDEST SWAP3 POP PUSH2 0xE0E PUSH1 0x20 DUP6 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE36 DUP7 DUP3 DUP8 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE5B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE43 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE7C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xEAB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xECC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xED5 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xEE3 PUSH1 0x20 DUP9 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF0C DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP6 POP PUSH2 0xCBE PUSH1 0x60 DUP11 ADD PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF56 SWAP1 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF83 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xFA5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xE40 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xFC2 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xE64 JUMP JUMPDEST DUP5 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xFDC DUP2 DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1012 SWAP1 DUP4 ADD DUP8 PUSH2 0xE64 JUMP JUMPDEST SWAP5 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x105A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xEAB SWAP1 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1098 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x10A3 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x10D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x10DF PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x10F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1105 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP5 AND DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x113C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD DUP5 DUP4 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0x60 DUP7 ADD SWAP2 POP PUSH1 0x60 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP3 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11A1 JUMPI PUSH1 0x5F NOT DUP9 DUP8 SUB ADD DUP5 MSTORE PUSH2 0x118F DUP7 DUP4 MLOAD PUSH2 0xE64 JUMP JUMPDEST SWAP6 POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1173 JUMP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x457 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1204 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x121B DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xCC GASPRICE PUSH19 0xA930C389A44E03E7195DB7E4B2A21F2EC377B 0xAF 0xEF SSTORE 0xEE 0x27 LOG0 0xB3 MOD 0xA6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"410:4002:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3560:850;;;;;;:::i;:::-;;:::i;:::-;;1267:384;;;;;;;;;;-1:-1:-1;1267:384:17;;;;;:::i;:::-;;:::i;:::-;;;4181:25:21;;;4169:2;4154:18;1267:384:17;;;;;;;;530:311;;;;;;;;;;-1:-1:-1;530:311:17;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5045:32:21;;;5027:51;;5015:2;5000:18;530:311:17;4881:203:21;3045:286:17;;;;;;;;;;-1:-1:-1;3045:286:17;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2269:770::-;;;;;;;;;;-1:-1:-1;2269:770:17;;;;;:::i;:::-;;:::i;3560:850::-;-1:-1:-1;;;;;3773:15:17;;;;;;:7;:15;;;;;;;;:22;;;;;;;;;;;3772:23;3764:51;;;;-1:-1:-1;;;3764:51:17;;7467:2:21;3764:51:17;;;7449:21:21;7506:2;7486:18;;;7479:30;-1:-1:-1;;;7525:18:21;;;7518:45;7580:18;;3764:51:17;;;;;;;;;3825:20;3872:6;3892:8;3914:7;3935:8;3957:5;3848:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3825:147;;3982:36;3998:7;4007:10;3982:15;:36::i;:::-;4029:17;4085:8;4107:7;4128:8;4150:5;4049:116;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;4049:116:17;;;;;;;-1:-1:-1;;;;;4049:116:17;;;;;;;;;;;4029:136;;4176:13;4191:22;4217:6;-1:-1:-1;;;;;4217:11:17;4249:9;4277:6;4217:82;4294:4;4217:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4175:124;;;;4358:5;4323:6;-1:-1:-1;;;;;4315:49:17;;4331:4;4337:8;4347:9;4315:49;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;4374:15:17;;;;;;;:7;:15;;;;;;;;:22;;;;;;;;;;:29;;-1:-1:-1;;4374:29:17;4399:4;4374:29;;;-1:-1:-1;;;;;3560:850:17:o;1267:384::-;1445:10;1403:4;1551:18;;;:6;:18;;;;;;;1424:155;;1403:4;;1424:155;;;;1469:6;;1489:4;;1507:8;;1529;;1551:18;1424:155;:::i;:::-;;;;;;;;1596:10;1589:18;;;;:6;:18;;;;;:20;;;;;;:::i;:::-;;;;-1:-1:-1;;1633:10:17;1626:18;;;;:6;:18;;;;;;;1267:384;-1:-1:-1;;;;;1267:384:17:o;530:311::-;627:7;646:23;672:33;687:1;690:4;696:8;;672:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;672:14:17;;-1:-1:-1;;;672:33:17:i;:::-;715:41;;-1:-1:-1;;;715:41:17;;751:4;715:41;;;5027:51:21;646:59:17;;-1:-1:-1;;;;;;715:35:17;;;;;5000:18:21;;715:41:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;771:31:17;;-1:-1:-1;;;;;771:31:17;;;-1:-1:-1;771:31:17;;-1:-1:-1;771:31:17;;;819:15;-1:-1:-1;530:311:17;;;;;;:::o;3045:286::-;3162:12;3176:21;3238:1;3217:6;-1:-1:-1;;;;;3217:18:17;;:22;3209:46;;;;-1:-1:-1;;;3209:46:17;;10643:2:21;3209:46:17;;;10625:21:21;10682:2;10662:18;;;10655:30;-1:-1:-1;;;10701:18:21;;;10694:41;10752:18;;3209:46:17;10441:335:21;3209:46:17;3287:37;;-1:-1:-1;;;3287:37:17;;-1:-1:-1;;;;;3287:23:17;;;;;:37;;3311:6;;3319:4;;3287:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3287:37:17;;;;;;;;;;;;:::i;:::-;3265:59;;;;-1:-1:-1;3045:286:17;-1:-1:-1;;;;3045:286:17:o;2269:770::-;-1:-1:-1;;;;;2474:18:17;;;;;;:10;:18;;;;;;;;:25;;;;;;;;;;;2473:26;2465:57;;;;-1:-1:-1;;;2465:57:17;;12076:2:21;2465:57:17;;;12058:21:21;12115:2;12095:18;;;12088:30;-1:-1:-1;;;12134:18:21;;;12127:48;12192:18;;2465:57:17;11874:342:21;2465:57:17;2533:20;2580:6;2600;2620:4;2638:5;2657:8;2679:5;2556:138;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2533:161;;2704:36;2720:7;2729:10;2704:15;:36::i;:::-;2780:1;2759:6;-1:-1:-1;;;;;2759:18:17;;:22;2751:46;;;;-1:-1:-1;;;2751:46:17;;10643:2:21;2751:46:17;;;10625:21:21;10682:2;10662:18;;;10655:30;-1:-1:-1;;;10701:18:21;;;10694:41;10752:18;;2751:46:17;10441:335:21;2751:46:17;2808:12;2822:21;2855:6;-1:-1:-1;;;;;2847:26:17;;2887:6;2907:4;2847:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2847:74:17;;;;;;;;;;;;:::i;:::-;2807:114;;;;2984:5;2947:6;-1:-1:-1;;;;;2936:54:17;;2955:8;2965:7;2974:8;2936:54;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;3000:18:17;;;;;;;:10;:18;;;;;;;;:25;;;;;;;:32;;-1:-1:-1;;3000:32:17;3028:4;3000:32;;;-1:-1:-1;;;;2269:770:17:o;1817:446::-;1943:12;1958:39;:14;:37;:39::i;:::-;2028:16;;:59;;-1:-1:-1;;;2028:59:17;;1943:54;;-1:-1:-1;;;;;;2028:16:17;;:41;;:59;;1943:54;;2076:10;;2028:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2007:124;;;;-1:-1:-1;;;2007:124:17;;13948:2:21;2007:124:17;;;13930:21:21;13987:2;13967:18;;;13960:30;-1:-1:-1;;;14006:18:21;;;13999:48;14064:18;;2007:124:17;13746:342:21;2007:124:17;2162:16;;2196:17;;2162:52;;-1:-1:-1;;;2162:52:17;;-1:-1:-1;;;;;2162:16:17;;;;:33;;:52;;;;4181:25:21;;;4169:2;4154:18;;4035:177;2162:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2141:115;;;;-1:-1:-1;;;2141:115:17;;14295:2:21;2141:115:17;;;14277:21:21;14334:2;14314:18;;;14307:30;-1:-1:-1;;;14353:18:21;;;14346:46;14409:18;;2141:115:17;14093:340:21;2141:115:17;1933:330;1817:446;;:::o;1413:573:7:-;1500:12;1552:6;1528:21;:30;1524:125;;;1581:57;;-1:-1:-1;;;1581:57:7;;1608:21;1581:57;;;14612:25:21;14653:18;;;14646:34;;;14585:18;;1581:57:7;14438:248:21;1524:125:7;1662:8;:15;1681:1;1662:20;1658:80;;1705:22;;-1:-1:-1;;;1705:22:7;;;;;;;;;;;1658:80;1875:4;1864:8;1858:15;1851:4;1841:8;1837:19;1829:6;1821:59;1813:67;-1:-1:-1;;;;;;1903:18:7;;1899:81;;1944:25;;-1:-1:-1;;;1944:25:7;;;;;;;;;;;2148:229:10;2225:7;2326:32;2343:7;:14;2326:16;:32::i;:::-;2361:7;2273:96;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2263:107;;;;;;2244:126;;2148:229;;;:::o;637:698:8:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:8;-1:-1:-1;794:41:8;-1:-1:-1;955:28:8;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:8;-1:-1:-1;;;1175:2:8;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:8;1010:282;1256:21;-1:-1:-1;1312:6:8;637:698;-1:-1:-1;;;637:698:8:o;12214:916:11:-;12267:7;;-1:-1:-1;;;12342:17:11;;12338:103;;-1:-1:-1;;;12379:17:11;;;-1:-1:-1;12424:2:11;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:11;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:11;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:11;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:11;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:11;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13025:66;13117:6;12214:916;-1:-1:-1;;12214:916:11:o;14:173:21:-;82:20;;-1:-1:-1;;;;;131:31:21;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:::-;259:20;;-1:-1:-1;;;;;;308:32:21;;298:43;;288:71;;355:1;352;345:12;370:118;456:5;449:13;442:21;435:5;432:32;422:60;;478:1;475;468:12;422:60;370:118;:::o;493:127::-;554:10;549:3;545:20;542:1;535:31;585:4;582:1;575:15;609:4;606:1;599:15;625:275;696:2;690:9;761:2;742:13;;-1:-1:-1;;738:27:21;726:40;;796:18;781:34;;817:22;;;778:62;775:88;;;843:18;;:::i;:::-;879:2;872:22;625:275;;-1:-1:-1;625:275:21:o;905:186::-;953:4;986:18;978:6;975:30;972:56;;;1008:18;;:::i;:::-;-1:-1:-1;1074:2:21;1053:15;-1:-1:-1;;1049:29:21;1080:4;1045:40;;905:186::o;1096:462::-;1138:5;1191:3;1184:4;1176:6;1172:17;1168:27;1158:55;;1209:1;1206;1199:12;1158:55;1245:6;1232:20;1276:48;1292:31;1320:2;1292:31;:::i;:::-;1276:48;:::i;:::-;1349:2;1340:7;1333:19;1395:3;1388:4;1383:2;1375:6;1371:15;1367:26;1364:35;1361:55;;;1412:1;1409;1402:12;1361:55;1477:2;1470:4;1462:6;1458:17;1451:4;1442:7;1438:18;1425:55;1525:1;1500:16;;;1518:4;1496:27;1489:38;;;;1504:7;1096:462;-1:-1:-1;;;1096:462:21:o;1563:941::-;1615:5;1668:3;1661:4;1653:6;1649:17;1645:27;1635:55;;1686:1;1683;1676:12;1635:55;1722:6;1709:20;1748:4;1771:18;1808:2;1804;1801:10;1798:36;;;1814:18;;:::i;:::-;1860:2;1857:1;1853:10;1883:28;1907:2;1903;1899:11;1883:28;:::i;:::-;1945:15;;;2015;;;2011:24;;;1976:12;;;;2047:15;;;2044:35;;;2075:1;2072;2065:12;2044:35;2111:2;2103:6;2099:15;2088:26;;2123:352;2139:6;2134:3;2131:15;2123:352;;;2225:3;2212:17;2261:2;2248:11;2245:19;2242:109;;;2305:1;2334:2;2330;2323:14;2242:109;2376:56;2428:3;2423:2;2409:11;2401:6;2397:24;2393:33;2376:56;:::i;:::-;2364:69;;-1:-1:-1;2156:12:21;;;;2453;;;;2123:352;;;2493:5;1563:941;-1:-1:-1;;;;;;;;1563:941:21:o;2509:920::-;2652:6;2660;2668;2676;2684;2692;2745:3;2733:9;2724:7;2720:23;2716:33;2713:53;;;2762:1;2759;2752:12;2713:53;2785:29;2804:9;2785:29;:::i;:::-;2775:39;;2833:37;2866:2;2855:9;2851:18;2833:37;:::i;:::-;2823:47;;2920:2;2909:9;2905:18;2892:32;2933:28;2955:5;2933:28;:::i;:::-;2980:5;-1:-1:-1;3036:2:21;3021:18;;3008:32;3059:18;3089:14;;;3086:34;;;3116:1;3113;3106:12;3086:34;3139:49;3180:7;3171:6;3160:9;3156:22;3139:49;:::i;:::-;3129:59;;3235:3;3224:9;3220:19;3207:33;3197:43;;3293:3;3282:9;3278:19;3265:33;3249:49;;3323:2;3313:8;3310:16;3307:36;;;3339:1;3336;3329:12;3307:36;;3362:61;3415:7;3404:8;3393:9;3389:24;3362:61;:::i;:::-;3352:71;;;2509:920;;;;;;;;:::o;3434:596::-;3525:6;3533;3541;3549;3602:3;3590:9;3581:7;3577:23;3573:33;3570:53;;;3619:1;3616;3609:12;3570:53;3642:29;3661:9;3642:29;:::i;:::-;3632:39;;3722:2;3711:9;3707:18;3694:32;3749:18;3741:6;3738:30;3735:50;;;3781:1;3778;3771:12;3735:50;3804:49;3845:7;3836:6;3825:9;3821:22;3804:49;:::i;:::-;3794:59;;;3903:2;3892:9;3888:18;3875:32;3916:28;3938:5;3916:28;:::i;:::-;3963:5;-1:-1:-1;3987:37:21;4020:2;4005:18;;3987:37;:::i;:::-;3977:47;;3434:596;;;;;;;:::o;4217:659::-;4296:6;4304;4312;4365:2;4353:9;4344:7;4340:23;4336:32;4333:52;;;4381:1;4378;4371:12;4333:52;4417:9;4404:23;4394:33;;4478:2;4467:9;4463:18;4450:32;4501:18;4542:2;4534:6;4531:14;4528:34;;;4558:1;4555;4548:12;4528:34;4596:6;4585:9;4581:22;4571:32;;4641:7;4634:4;4630:2;4626:13;4622:27;4612:55;;4663:1;4660;4653:12;4612:55;4703:2;4690:16;4729:2;4721:6;4718:14;4715:34;;;4745:1;4742;4735:12;4715:34;4790:7;4785:2;4776:6;4772:2;4768:15;4764:24;4761:37;4758:57;;;4811:1;4808;4801:12;4758:57;4842:2;4838;4834:11;4824:21;;4864:6;4854:16;;;;;4217:659;;;;;:::o;5089:468::-;5175:6;5183;5191;5244:2;5232:9;5223:7;5219:23;5215:32;5212:52;;;5260:1;5257;5250:12;5212:52;5283:29;5302:9;5283:29;:::i;:::-;5273:39;;5331:38;5365:2;5354:9;5350:18;5331:38;:::i;:::-;5321:48;;5420:2;5409:9;5405:18;5392:32;5447:18;5439:6;5436:30;5433:50;;;5479:1;5476;5469:12;5433:50;5502:49;5543:7;5534:6;5523:9;5519:22;5502:49;:::i;:::-;5492:59;;;5089:468;;;;;:::o;5562:250::-;5647:1;5657:113;5671:6;5668:1;5665:13;5657:113;;;5747:11;;;5741:18;5728:11;;;5721:39;5693:2;5686:10;5657:113;;;-1:-1:-1;;5804:1:21;5786:16;;5779:27;5562:250::o;5817:270::-;5858:3;5896:5;5890:12;5923:6;5918:3;5911:19;5939:76;6008:6;6001:4;5996:3;5992:14;5985:4;5978:5;5974:16;5939:76;:::i;:::-;6069:2;6048:15;-1:-1:-1;;6044:29:21;6035:39;;;;6076:4;6031:50;;5817:270;-1:-1:-1;;5817:270:21:o;6092:298::-;6275:6;6268:14;6261:22;6250:9;6243:41;6320:2;6315;6304:9;6300:18;6293:30;6224:4;6340:44;6380:2;6369:9;6365:18;6357:6;6340:44;:::i;:::-;6332:52;6092:298;-1:-1:-1;;;;6092:298:21:o;6395:865::-;6541:6;6549;6557;6565;6573;6581;6634:3;6622:9;6613:7;6609:23;6605:33;6602:53;;;6651:1;6648;6641:12;6602:53;6674:29;6693:9;6674:29;:::i;:::-;6664:39;;6722:38;6756:2;6745:9;6741:18;6722:38;:::i;:::-;6712:48;;6811:2;6800:9;6796:18;6783:32;6834:18;6875:2;6867:6;6864:14;6861:34;;;6891:1;6888;6881:12;6861:34;6914:49;6955:7;6946:6;6935:9;6931:22;6914:49;:::i;:::-;6904:59;;6982:37;7015:2;7004:9;7000:18;6982:37;:::i;7609:565::-;-1:-1:-1;;;;;7860:32:21;;7842:51;;-1:-1:-1;;;;;;7929:33:21;;7924:2;7909:18;;7902:61;8006:14;;7999:22;7994:2;7979:18;;7972:50;7880:3;8053:2;8038:18;;8031:31;;;-1:-1:-1;;8079:45:21;;8104:19;;8096:6;8079:45;:::i;:::-;8071:53;;8161:6;8155:3;8144:9;8140:19;8133:35;7609:565;;;;;;;;:::o;8179:369::-;8390:6;8383:14;8376:22;8365:9;8358:41;8435:2;8430;8419:9;8415:18;8408:30;8339:4;8455:44;8495:2;8484:9;8480:18;8472:6;8455:44;:::i;:::-;8447:52;;8535:6;8530:2;8519:9;8515:18;8508:34;8179:369;;;;;;:::o;8553:287::-;8682:3;8720:6;8714:13;8736:66;8795:6;8790:3;8783:4;8775:6;8771:17;8736:66;:::i;:::-;8818:16;;;;;8553:287;-1:-1:-1;;8553:287:21:o;8845:458::-;9060:2;9049:9;9042:21;9023:4;9086:44;9126:2;9115:9;9111:18;9103:6;9086:44;:::i;:::-;9180:6;9173:14;9166:22;9161:2;9150:9;9146:18;9139:50;9237:9;9229:6;9225:22;9220:2;9209:9;9205:18;9198:50;9265:32;9290:6;9282;9265:32;:::i;:::-;9257:40;8845:458;-1:-1:-1;;;;;;8845:458:21:o;9308:667::-;-1:-1:-1;;;;;9625:15:21;;;9607:34;;9677:15;;9672:2;9657:18;;9650:43;9729:3;9724:2;9709:18;;9702:31;;;9550:4;;9750:45;;9775:19;;9767:6;9750:45;:::i;:::-;9838:14;;9831:22;9826:2;9811:18;;9804:50;-1:-1:-1;;;;;;;9891:33:21;;;;9885:3;9870:19;;9863:62;9956:3;9941:19;;;9934:35;9742:53;9308:667;-1:-1:-1;;;9308:667:21:o;9980:232::-;10019:3;10040:17;;;10037:140;;10099:10;10094:3;10090:20;10087:1;10080:31;10134:4;10131:1;10124:15;10162:4;10159:1;10152:15;10037:140;-1:-1:-1;10204:1:21;10193:13;;9980:232::o;10781:314::-;-1:-1:-1;;;;;10956:32:21;;10938:51;;11025:2;11020;11005:18;;10998:30;;;-1:-1:-1;;11045:44:21;;11070:18;;11062:6;11045:44;:::i;11100:769::-;11185:6;11193;11246:2;11234:9;11225:7;11221:23;11217:32;11214:52;;;11262:1;11259;11252:12;11214:52;11294:9;11288:16;11313:28;11335:5;11313:28;:::i;:::-;11409:2;11394:18;;11388:25;11360:5;;-1:-1:-1;11436:18:21;11425:30;;11422:50;;;11468:1;11465;11458:12;11422:50;11491:22;;11544:4;11536:13;;11532:27;-1:-1:-1;11522:55:21;;11573:1;11570;11563:12;11522:55;11602:2;11596:9;11627:48;11643:31;11671:2;11643:31;:::i;11627:48::-;11698:2;11691:5;11684:17;11738:7;11733:2;11728;11724;11720:11;11716:20;11713:33;11710:53;;;11759:1;11756;11749:12;11710:53;11772:67;11836:2;11831;11824:5;11820:14;11815:2;11811;11807:11;11772:67;:::i;:::-;11858:5;11848:15;;;;;11100:769;;;;;:::o;12221:394::-;12437:10;12432:3;12428:20;12420:6;12416:33;12405:9;12398:52;12500:6;12493:14;12486:22;12481:2;12470:9;12466:18;12459:50;12545:2;12540;12529:9;12525:18;12518:30;12379:4;12565:44;12605:2;12594:9;12590:18;12582:6;12565:44;:::i;:::-;12557:52;12221:394;-1:-1:-1;;;;;12221:394:21:o;12620:871::-;12808:4;12856:2;12845:9;12841:18;12886:6;12875:9;12868:25;12912:2;12950;12945;12934:9;12930:18;12923:30;12973:6;13008;13002:13;13039:6;13031;13024:22;13077:2;13066:9;13062:18;13055:25;;13139:2;13129:6;13126:1;13122:14;13111:9;13107:30;13103:39;13089:53;;13177:2;13169:6;13165:15;13198:1;13208:254;13222:6;13219:1;13216:13;13208:254;;;13315:2;13311:7;13299:9;13291:6;13287:22;13283:36;13278:3;13271:49;13343:39;13375:6;13366;13360:13;13343:39;:::i;:::-;13333:49;-1:-1:-1;13440:12:21;;;;13405:15;;;;13244:1;13237:9;13208:254;;;-1:-1:-1;13479:6:21;;12620:871;-1:-1:-1;;;;;;;;12620:871:21:o;13496:245::-;13563:6;13616:2;13604:9;13595:7;13591:23;13587:32;13584:52;;;13632:1;13629;13622:12;13584:52;13664:9;13658:16;13683:28;13705:5;13683:28;:::i;14691:689::-;14987:66;14982:3;14975:79;14957:3;15083:6;15077:13;15099:75;15167:6;15162:2;15157:3;15153:12;15146:4;15138:6;15134:17;15099:75;:::i;:::-;15234:13;;15193:16;;;;15256:76;15234:13;15318:2;15310:11;;15303:4;15291:17;;15256:76;:::i;:::-;15352:17;15371:2;15348:26;;14691:689;-1:-1:-1;;;;14691:689:21:o"},"methodIdentifiers":{"deployTwin(bytes32,bytes)":"5390e474","dispatch(address,address,bytes,bytes4,uint256,bytes[])":"c1b2f734","query(address,address,bytes)":"adde344c","relay(address,bytes,bool,bytes4)":"139b4a87","resume(address,bytes4,bool,bytes,uint256,bytes[])":"0b0a6bd1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ValidatorManager\",\"name\":\"_validatorManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"Create2InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Dispatched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"readonly\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Relayed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Resumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"twin\",\"type\":\"address\"}],\"name\":\"TwinDeployment\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"name\":\"deployTwin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"dispatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"query\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"readonly\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"}],\"name\":\"relay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"Create2FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"Create2InsufficientBalance(uint256,uint256)\":[{\"details\":\"Not enough balance for performing a CREATE2 deploy.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Relayer.sol\":\"Relayer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/Test.sol":{"Target":{"abi":[{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"test","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506101f9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F9 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x29E99F07 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B JUMP JUMPDEST PUSH2 0x55 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x7E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x746573742829 PUSH1 0xD0 SHL DUP2 MSTORE POP PUSH2 0xD0 JUMP JUMPDEST PUSH2 0x3E8 DUP3 LT PUSH2 0xBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x546F6F206C61726765 PUSH1 0xB8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCA DUP3 PUSH1 0x1 PUSH2 0x154 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x116 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xCA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x186 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH26 0xDDFC0AF1C517538B0F0AB55FF6C84C25F3912AF64534D4944852 0xDC 0xE8 SWAP15 0xD4 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"897:179:18:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_castToPure_4808":{"entryPoint":null,"id":4808,"parameterSlots":1,"returnSlots":1},"@_sendLogPayloadImplementation_4791":{"entryPoint":null,"id":4791,"parameterSlots":1,"returnSlots":0},"@_sendLogPayload_4820":{"entryPoint":278,"id":4820,"parameterSlots":1,"returnSlots":0},"@log_5391":{"entryPoint":208,"id":5391,"parameterSlots":1,"returnSlots":0},"@test_4570":{"entryPoint":85,"id":4570,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":373,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":340,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x51":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1627:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:21"},"nodeType":"YulFunctionCall","src":"132:12:21"},"nodeType":"YulExpressionStatement","src":"132:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:21"},"nodeType":"YulFunctionCall","src":"101:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:21"},"nodeType":"YulFunctionCall","src":"97:32:21"},"nodeType":"YulIf","src":"94:52:21"},{"nodeType":"YulAssignment","src":"155:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:21"},"nodeType":"YulFunctionCall","src":"165:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:21","type":""}],"src":"14:180:21"},{"body":{"nodeType":"YulBlock","src":"300:76:21","statements":[{"nodeType":"YulAssignment","src":"310:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:21"},"nodeType":"YulFunctionCall","src":"318:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"363:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:21"},"nodeType":"YulFunctionCall","src":"345:25:21"},"nodeType":"YulExpressionStatement","src":"345:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:21","type":""}],"src":"199:177:21"},{"body":{"nodeType":"YulBlock","src":"555:158:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"572:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"583:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"565:6:21"},"nodeType":"YulFunctionCall","src":"565:21:21"},"nodeType":"YulExpressionStatement","src":"565:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"606:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"617:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"602:3:21"},"nodeType":"YulFunctionCall","src":"602:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"622:1:21","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"595:6:21"},"nodeType":"YulFunctionCall","src":"595:29:21"},"nodeType":"YulExpressionStatement","src":"595:29:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"644:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"640:3:21"},"nodeType":"YulFunctionCall","src":"640:18:21"},{"hexValue":"546f6f206c61726765","kind":"string","nodeType":"YulLiteral","src":"660:11:21","type":"","value":"Too large"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"633:6:21"},"nodeType":"YulFunctionCall","src":"633:39:21"},"nodeType":"YulExpressionStatement","src":"633:39:21"},{"nodeType":"YulAssignment","src":"681:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"693:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"704:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"689:3:21"},"nodeType":"YulFunctionCall","src":"689:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"681:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"532:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"546:4:21","type":""}],"src":"381:332:21"},{"body":{"nodeType":"YulBlock","src":"766:174:21","statements":[{"nodeType":"YulAssignment","src":"776:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"787:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"790:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"783:3:21"},"nodeType":"YulFunctionCall","src":"783:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"776:3:21"}]},{"body":{"nodeType":"YulBlock","src":"823:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"844:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"851:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"856:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"847:3:21"},"nodeType":"YulFunctionCall","src":"847:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"837:6:21"},"nodeType":"YulFunctionCall","src":"837:31:21"},"nodeType":"YulExpressionStatement","src":"837:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"888:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"891:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"881:6:21"},"nodeType":"YulFunctionCall","src":"881:15:21"},"nodeType":"YulExpressionStatement","src":"881:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"919:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"909:6:21"},"nodeType":"YulFunctionCall","src":"909:15:21"},"nodeType":"YulExpressionStatement","src":"909:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"807:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"810:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"804:2:21"},"nodeType":"YulFunctionCall","src":"804:10:21"},"nodeType":"YulIf","src":"801:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"749:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"752:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"758:3:21","type":""}],"src":"718:222:21"},{"body":{"nodeType":"YulBlock","src":"1066:427:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1076:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1086:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1080:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1104:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1115:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1097:6:21"},"nodeType":"YulFunctionCall","src":"1097:21:21"},"nodeType":"YulExpressionStatement","src":"1097:21:21"},{"nodeType":"YulVariableDeclaration","src":"1127:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1147:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:21"},"nodeType":"YulFunctionCall","src":"1141:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1131:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1174:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1185:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:21"},"nodeType":"YulFunctionCall","src":"1170:18:21"},{"name":"length","nodeType":"YulIdentifier","src":"1190:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1163:6:21"},"nodeType":"YulFunctionCall","src":"1163:34:21"},"nodeType":"YulExpressionStatement","src":"1163:34:21"},{"nodeType":"YulVariableDeclaration","src":"1206:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1215:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1210:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1275:90:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:21"},{"name":"i","nodeType":"YulIdentifier","src":"1315:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:21"},"nodeType":"YulFunctionCall","src":"1300:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"1319:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1296:3:21"},"nodeType":"YulFunctionCall","src":"1296:26:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1338:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"1346:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1334:3:21"},"nodeType":"YulFunctionCall","src":"1334:14:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1350:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1330:3:21"},"nodeType":"YulFunctionCall","src":"1330:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1324:5:21"},"nodeType":"YulFunctionCall","src":"1324:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:21"},"nodeType":"YulFunctionCall","src":"1289:66:21"},"nodeType":"YulExpressionStatement","src":"1289:66:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1236:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1239:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1233:2:21"},"nodeType":"YulFunctionCall","src":"1233:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1247:19:21","statements":[{"nodeType":"YulAssignment","src":"1249:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1258:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1261:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1254:3:21"},"nodeType":"YulFunctionCall","src":"1254:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1249:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1229:3:21","statements":[]},"src":"1225:140:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1389:9:21"},{"name":"length","nodeType":"YulIdentifier","src":"1400:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"1409:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1381:3:21"},"nodeType":"YulFunctionCall","src":"1381:31:21"},{"kind":"number","nodeType":"YulLiteral","src":"1414:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1374:6:21"},"nodeType":"YulFunctionCall","src":"1374:42:21"},"nodeType":"YulExpressionStatement","src":"1374:42:21"},{"nodeType":"YulAssignment","src":"1425:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1441:9:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1460:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1468:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1456:3:21"},"nodeType":"YulFunctionCall","src":"1456:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1477:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1473:3:21"},"nodeType":"YulFunctionCall","src":"1473:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1452:3:21"},"nodeType":"YulFunctionCall","src":"1452:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1437:3:21"},"nodeType":"YulFunctionCall","src":"1437:45:21"},{"kind":"number","nodeType":"YulLiteral","src":"1484:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1433:3:21"},"nodeType":"YulFunctionCall","src":"1433:54:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1425:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1035:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1046:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1057:4:21","type":""}],"src":"945:548:21"},{"body":{"nodeType":"YulBlock","src":"1530:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1547:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1554:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1559:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1550:3:21"},"nodeType":"YulFunctionCall","src":"1550:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1540:6:21"},"nodeType":"YulFunctionCall","src":"1540:31:21"},"nodeType":"YulExpressionStatement","src":"1540:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1587:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1590:4:21","type":"","value":"0x51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1580:6:21"},"nodeType":"YulFunctionCall","src":"1580:15:21"},"nodeType":"YulExpressionStatement","src":"1580:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1611:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1614:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1604:6:21"},"nodeType":"YulFunctionCall","src":"1604:15:21"},"nodeType":"YulExpressionStatement","src":"1604:15:21"}]},"name":"panic_error_0x51","nodeType":"YulFunctionDefinition","src":"1498:127:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 9)\n mstore(add(headStart, 64), \"Too large\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function panic_error_0x51()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x29E99F07 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B JUMP JUMPDEST PUSH2 0x55 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x7E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x746573742829 PUSH1 0xD0 SHL DUP2 MSTORE POP PUSH2 0xD0 JUMP JUMPDEST PUSH2 0x3E8 DUP3 LT PUSH2 0xBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x546F6F206C61726765 PUSH1 0xB8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCA DUP3 PUSH1 0x1 PUSH2 0x154 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x116 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xCA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x186 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH26 0xDDFC0AF1C517538B0F0AB55FF6C84C25F3912AF64534D4944852 0xDC 0xE8 SWAP15 0xD4 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"897:179:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;919:155;;;;;;:::i;:::-;;:::i;:::-;;;345:25:21;;;333:2;318:18;919:155:18;;;;;;;;964:4;980:21;;;;;;;;;;;;;;-1:-1:-1;;;980:21:18;;;:11;:21::i;:::-;1025:4;1019:3;:10;1011:32;;;;-1:-1:-1;;;1011:32:18;;583:2:21;1011:32:18;;;565:21:21;622:1;602:18;;;595:29;-1:-1:-1;;;640:18:21;;;633:39;689:18;;1011:32:18;;;;;;;;1060:7;:3;1066:1;1060:7;:::i;:::-;1053:14;919:155;-1:-1:-1;;919:155:18:o;6070:121:20:-;6125:59;6180:2;6141:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6141:42:20;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:42:20;-1:-1:-1;;;6141:42:20;;;6125:15;:59::i;:::-;6070:121;:::o;851:129::-;922:51;965:7;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;14:180:21:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:21;;14:180;-1:-1:-1;14:180:21:o;718:222::-;783:9;;;804:10;;;801:133;;;856:10;851:3;847:20;844:1;837:31;891:4;888:1;881:15;919:4;916:1;909:15;945:548;1057:4;1086:2;1115;1104:9;1097:21;1147:6;1141:13;1190:6;1185:2;1174:9;1170:18;1163:34;1215:1;1225:140;1239:6;1236:1;1233:13;1225:140;;;1334:14;;;1330:23;;1324:30;1300:17;;;1319:2;1296:26;1289:66;1254:10;;1225:140;;;1229:3;1414:1;1409:2;1400:6;1389:9;1385:22;1381:31;1374:42;1484:2;1477;1473:7;1468:2;1460:6;1456:15;1452:29;1441:9;1437:45;1433:54;1425:62;;;;945:548;;;;:::o"},"methodIdentifiers":{"test(uint256)":"29e99f07"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"name\":\"test\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Test.sol\":\"Target\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/Test.sol\":{\"keccak256\":\"0x7e145dc159902e17f4d12e7a83d0d9e876be3e1aba2552a794074d11f7989d90\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d5899a5543741576a0b5dd62e45edce777eb9506933dc0bb695330021a929f9c\",\"dweb:/ipfs/Qme3uQvCvPeRpg58fcAaprVejro29xomrBaVRdRAkjCAtd\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"Twin":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"}],"name":"Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Succeeded","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"dispatched","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"res","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"finish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Relayer","name":"relayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"queried","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"num","type":"uint256"},{"internalType":"bool","name":"readonly","type":"bool"}],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610b33806100206000396000f3fe60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB33 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0x99 JUMPI DUP1 PUSH4 0xC2AB4E3E EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0xFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x70 SWAP3 SWAP2 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0x1CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xB4 CALLDATASIZE PUSH1 0x4 PUSH2 0x84A JUMP JUMPDEST PUSH2 0x27C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0x911 JUMP JUMPDEST PUSH2 0x456 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x132 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x2D0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH8 0x66696E6973682829 PUSH1 0xC0 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST DUP4 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 PUSH2 0x2E4 DUP4 DUP6 ADD DUP6 PUSH2 0x988 JUMP JUMPDEST SWAP1 POP PUSH32 0x7165F2912DC85F932B95E64DC5404EA80083D36994C2B797EA2763BA0B71586B DUP2 PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0x9A1 JUMP JUMPDEST PUSH2 0x33D SWAP2 PUSH2 0x9CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x34E DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0x9A1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x3BC SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3F3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x29E99F07 PUSH1 0xE0 SHL OR SWAP1 MSTORE DUP5 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x603 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x73746172742829 PUSH1 0xC8 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x49C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4B9 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x4C7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x50F JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x56C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x3C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5FF DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x5D0 SWAP3 SWAP2 SWAP1 PUSH2 0xA7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x2D839CB3 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x63A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x67D SWAP2 SWAP1 PUSH2 0xAE4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x721 JUMPI PUSH2 0x721 PUSH2 0x6C0 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x74D DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x78D PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x7FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x82D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x845 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x860 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x869 DUP6 PUSH2 0x835 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x8F3 DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x908 PUSH1 0x40 DUP6 ADD PUSH2 0x835 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x92E DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x97E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7C2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x9B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0x9F3 JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xA43 PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xA58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x67D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x92E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA8F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAC2 SWAP1 DUP4 ADD DUP7 PUSH2 0x7E6 JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD GASPRICE 0x5D 0xBB LT OR 0xD2 SWAP11 SWAP6 PUSH22 0x446823CAD302CDF8D61C42CE90152978B934F77874A PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"90:805:18:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_castToPure_4808":{"entryPoint":null,"id":4808,"parameterSlots":1,"returnSlots":1},"@_getInitializableStorage_389":{"entryPoint":null,"id":389,"parameterSlots":0,"returnSlots":1},"@_sendLogPayloadImplementation_4791":{"entryPoint":null,"id":4791,"parameterSlots":1,"returnSlots":0},"@_sendLogPayload_4820":{"entryPoint":1670,"id":4820,"parameterSlots":1,"returnSlots":0},"@dispatched_3700":{"entryPoint":251,"id":3700,"parameterSlots":2,"returnSlots":2},"@finish_4544":{"entryPoint":636,"id":4544,"parameterSlots":4,"returnSlots":0},"@initialize_3652":{"entryPoint":1110,"id":3652,"parameterSlots":1,"returnSlots":0},"@log_5391":{"entryPoint":1396,"id":5391,"parameterSlots":1,"returnSlots":0},"@log_5504":{"entryPoint":1466,"id":5504,"parameterSlots":2,"returnSlots":0},"@queried_3731":{"entryPoint":460,"id":3731,"parameterSlots":2,"returnSlots":2},"@relay_3755":{"entryPoint":1539,"id":3755,"parameterSlots":4,"returnSlots":1},"@start_4471":{"entryPoint":986,"id":4471,"parameterSlots":3,"returnSlots":0},"abi_decode_bool":{"entryPoint":2101,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":1839,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_bool":{"entryPoint":2259,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256":{"entryPoint":2122,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_Relayer_$4434":{"entryPoint":2321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":2555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2788,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":2022,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2412,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed":{"entryPoint":2718,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2066,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2665,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2684,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2357,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1750,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":1799,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":2465,"id":null,"parameterSlots":4,"returnSlots":2},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4":{"entryPoint":2507,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1986,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1728,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x51":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":1707,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7829:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:21","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:21"},"nodeType":"YulFunctionCall","src":"125:12:21"},"nodeType":"YulExpressionStatement","src":"125:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:21"},"nodeType":"YulFunctionCall","src":"104:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:21"},"nodeType":"YulFunctionCall","src":"100:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:21"},"nodeType":"YulFunctionCall","src":"89:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:21"},"nodeType":"YulFunctionCall","src":"79:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:21"},"nodeType":"YulFunctionCall","src":"72:50:21"},"nodeType":"YulIf","src":"69:70:21"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:21","type":""}],"src":"14:131:21"},{"body":{"nodeType":"YulBlock","src":"182:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"199:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"206:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"211:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"202:3:21"},"nodeType":"YulFunctionCall","src":"202:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"192:6:21"},"nodeType":"YulFunctionCall","src":"192:31:21"},"nodeType":"YulExpressionStatement","src":"192:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"242:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:15:21"},"nodeType":"YulExpressionStatement","src":"232:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:21"},"nodeType":"YulFunctionCall","src":"256:15:21"},"nodeType":"YulExpressionStatement","src":"256:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"150:127:21"},{"body":{"nodeType":"YulBlock","src":"327:230:21","statements":[{"nodeType":"YulAssignment","src":"337:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"353:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"347:5:21"},"nodeType":"YulFunctionCall","src":"347:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"337:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"365:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"387:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"403:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"409:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"414:3:21"},"nodeType":"YulFunctionCall","src":"414:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"395:3:21"},"nodeType":"YulFunctionCall","src":"395:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"383:3:21"},"nodeType":"YulFunctionCall","src":"383:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"369:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"498:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"500:16:21"},"nodeType":"YulFunctionCall","src":"500:18:21"},"nodeType":"YulExpressionStatement","src":"500:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"453:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"438:2:21"},"nodeType":"YulFunctionCall","src":"438:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"477:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"489:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"474:2:21"},"nodeType":"YulFunctionCall","src":"474:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"435:2:21"},"nodeType":"YulFunctionCall","src":"435:62:21"},"nodeType":"YulIf","src":"432:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"540:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:21"},"nodeType":"YulFunctionCall","src":"529:22:21"},"nodeType":"YulExpressionStatement","src":"529:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"307:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"316:6:21","type":""}],"src":"282:275:21"},{"body":{"nodeType":"YulBlock","src":"619:129:21","statements":[{"body":{"nodeType":"YulBlock","src":"663:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"665:16:21"},"nodeType":"YulFunctionCall","src":"665:18:21"},"nodeType":"YulExpressionStatement","src":"665:18:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"635:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"643:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"632:2:21"},"nodeType":"YulFunctionCall","src":"632:30:21"},"nodeType":"YulIf","src":"629:56:21"},{"nodeType":"YulAssignment","src":"694:48:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"714:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"722:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"710:3:21"},"nodeType":"YulFunctionCall","src":"710:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"727:3:21"},"nodeType":"YulFunctionCall","src":"727:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"706:3:21"},"nodeType":"YulFunctionCall","src":"706:29:21"},{"kind":"number","nodeType":"YulLiteral","src":"737:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"702:3:21"},"nodeType":"YulFunctionCall","src":"702:40:21"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"694:4:21"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"599:6:21","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"610:4:21","type":""}],"src":"562:186:21"},{"body":{"nodeType":"YulBlock","src":"849:710:21","statements":[{"body":{"nodeType":"YulBlock","src":"895:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"907:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"897:6:21"},"nodeType":"YulFunctionCall","src":"897:12:21"},"nodeType":"YulExpressionStatement","src":"897:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"870:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"879:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"866:3:21"},"nodeType":"YulFunctionCall","src":"866:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"891:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"862:3:21"},"nodeType":"YulFunctionCall","src":"862:32:21"},"nodeType":"YulIf","src":"859:52:21"},{"nodeType":"YulVariableDeclaration","src":"920:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"933:12:21"},"nodeType":"YulFunctionCall","src":"933:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"924:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"965:24:21"},"nodeType":"YulFunctionCall","src":"965:31:21"},"nodeType":"YulExpressionStatement","src":"965:31:21"},{"nodeType":"YulAssignment","src":"1005:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"1015:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1029:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1060:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1071:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1056:3:21"},"nodeType":"YulFunctionCall","src":"1056:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1043:12:21"},"nodeType":"YulFunctionCall","src":"1043:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1033:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1118:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1130:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1120:6:21"},"nodeType":"YulFunctionCall","src":"1120:12:21"},"nodeType":"YulExpressionStatement","src":"1120:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1090:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1098:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1087:2:21"},"nodeType":"YulFunctionCall","src":"1087:30:21"},"nodeType":"YulIf","src":"1084:50:21"},{"nodeType":"YulVariableDeclaration","src":"1143:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1168:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:21"},"nodeType":"YulFunctionCall","src":"1153:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1147:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1223:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1232:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1235:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1225:6:21"},"nodeType":"YulFunctionCall","src":"1225:12:21"},"nodeType":"YulExpressionStatement","src":"1225:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1202:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1206:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1198:3:21"},"nodeType":"YulFunctionCall","src":"1198:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1213:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1194:3:21"},"nodeType":"YulFunctionCall","src":"1194:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1187:6:21"},"nodeType":"YulFunctionCall","src":"1187:35:21"},"nodeType":"YulIf","src":"1184:55:21"},{"nodeType":"YulVariableDeclaration","src":"1248:26:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1271:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1258:12:21"},"nodeType":"YulFunctionCall","src":"1258:16:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1252:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1283:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1340:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1312:27:21"},"nodeType":"YulFunctionCall","src":"1312:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1296:15:21"},"nodeType":"YulFunctionCall","src":"1296:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"1287:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1360:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1367:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1353:6:21"},"nodeType":"YulFunctionCall","src":"1353:17:21"},"nodeType":"YulExpressionStatement","src":"1353:17:21"},{"body":{"nodeType":"YulBlock","src":"1416:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:21"},"nodeType":"YulFunctionCall","src":"1418:12:21"},"nodeType":"YulExpressionStatement","src":"1418:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1397:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1389:3:21"},"nodeType":"YulFunctionCall","src":"1389:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1402:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1382:2:21"},"nodeType":"YulFunctionCall","src":"1382:33:21"},"nodeType":"YulIf","src":"1379:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1458:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1465:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1454:3:21"},"nodeType":"YulFunctionCall","src":"1454:14:21"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1474:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1478:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1470:3:21"},"nodeType":"YulFunctionCall","src":"1470:11:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1483:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1441:12:21"},"nodeType":"YulFunctionCall","src":"1441:45:21"},"nodeType":"YulExpressionStatement","src":"1441:45:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1510:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1517:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1506:3:21"},"nodeType":"YulFunctionCall","src":"1506:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"1522:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:21"},"nodeType":"YulFunctionCall","src":"1502:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1527:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1495:6:21"},"nodeType":"YulFunctionCall","src":"1495:34:21"},"nodeType":"YulExpressionStatement","src":"1495:34:21"},{"nodeType":"YulAssignment","src":"1538:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"1548:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1538:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"807:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"818:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"830:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"838:6:21","type":""}],"src":"753:806:21"},{"body":{"nodeType":"YulBlock","src":"1630:184:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1640:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1649:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1644:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1709:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1734:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1739:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:21"},"nodeType":"YulFunctionCall","src":"1730:11:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1753:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1758:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1749:3:21"},"nodeType":"YulFunctionCall","src":"1749:11:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1743:5:21"},"nodeType":"YulFunctionCall","src":"1743:18:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1723:6:21"},"nodeType":"YulFunctionCall","src":"1723:39:21"},"nodeType":"YulExpressionStatement","src":"1723:39:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1670:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1673:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1667:2:21"},"nodeType":"YulFunctionCall","src":"1667:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1681:19:21","statements":[{"nodeType":"YulAssignment","src":"1683:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1692:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"1695:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1688:3:21"},"nodeType":"YulFunctionCall","src":"1688:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1683:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1663:3:21","statements":[]},"src":"1659:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1792:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1797:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1788:3:21"},"nodeType":"YulFunctionCall","src":"1788:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1806:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1781:6:21"},"nodeType":"YulFunctionCall","src":"1781:27:21"},"nodeType":"YulExpressionStatement","src":"1781:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1608:3:21","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1613:3:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"1618:6:21","type":""}],"src":"1564:250:21"},{"body":{"nodeType":"YulBlock","src":"1868:221:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1878:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1898:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1892:5:21"},"nodeType":"YulFunctionCall","src":"1892:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1882:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1920:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1925:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1913:6:21"},"nodeType":"YulFunctionCall","src":"1913:19:21"},"nodeType":"YulExpressionStatement","src":"1913:19:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1980:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1987:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:21"},"nodeType":"YulFunctionCall","src":"1976:16:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1998:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2003:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:21"},"nodeType":"YulFunctionCall","src":"1994:14:21"},{"name":"length","nodeType":"YulIdentifier","src":"2010:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1941:34:21"},"nodeType":"YulFunctionCall","src":"1941:76:21"},"nodeType":"YulExpressionStatement","src":"1941:76:21"},{"nodeType":"YulAssignment","src":"2026:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2041:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2054:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2062:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:21"},"nodeType":"YulFunctionCall","src":"2050:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2071:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2067:3:21"},"nodeType":"YulFunctionCall","src":"2067:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2046:3:21"},"nodeType":"YulFunctionCall","src":"2046:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2037:3:21"},"nodeType":"YulFunctionCall","src":"2037:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"2078:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2033:3:21"},"nodeType":"YulFunctionCall","src":"2033:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2026:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1845:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1852:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1860:3:21","type":""}],"src":"1819:270:21"},{"body":{"nodeType":"YulBlock","src":"2235:157:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2277:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2270:6:21"},"nodeType":"YulFunctionCall","src":"2270:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2263:6:21"},"nodeType":"YulFunctionCall","src":"2263:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2245:6:21"},"nodeType":"YulFunctionCall","src":"2245:41:21"},"nodeType":"YulExpressionStatement","src":"2245:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2306:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2317:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2302:3:21"},"nodeType":"YulFunctionCall","src":"2302:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"2322:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2295:6:21"},"nodeType":"YulFunctionCall","src":"2295:30:21"},"nodeType":"YulExpressionStatement","src":"2295:30:21"},{"nodeType":"YulAssignment","src":"2334:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2359:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2371:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2382:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2367:3:21"},"nodeType":"YulFunctionCall","src":"2367:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2342:16:21"},"nodeType":"YulFunctionCall","src":"2342:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2334:4:21"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2196:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2207:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2215:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2226:4:21","type":""}],"src":"2094:298:21"},{"body":{"nodeType":"YulBlock","src":"2443:114:21","statements":[{"nodeType":"YulAssignment","src":"2453:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2475:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2462:12:21"},"nodeType":"YulFunctionCall","src":"2462:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2453:5:21"}]},{"body":{"nodeType":"YulBlock","src":"2535:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2544:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2547:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2537:6:21"},"nodeType":"YulFunctionCall","src":"2537:12:21"},"nodeType":"YulExpressionStatement","src":"2537:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2504:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2525:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2518:6:21"},"nodeType":"YulFunctionCall","src":"2518:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2511:6:21"},"nodeType":"YulFunctionCall","src":"2511:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2501:2:21"},"nodeType":"YulFunctionCall","src":"2501:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2494:6:21"},"nodeType":"YulFunctionCall","src":"2494:40:21"},"nodeType":"YulIf","src":"2491:60:21"}]},"name":"abi_decode_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2422:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2433:5:21","type":""}],"src":"2397:160:21"},{"body":{"nodeType":"YulBlock","src":"2682:607:21","statements":[{"body":{"nodeType":"YulBlock","src":"2728:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2737:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2740:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2730:6:21"},"nodeType":"YulFunctionCall","src":"2730:12:21"},"nodeType":"YulExpressionStatement","src":"2730:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2703:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2712:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2699:3:21"},"nodeType":"YulFunctionCall","src":"2699:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2724:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2695:3:21"},"nodeType":"YulFunctionCall","src":"2695:32:21"},"nodeType":"YulIf","src":"2692:52:21"},{"nodeType":"YulAssignment","src":"2753:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2779:9:21"}],"functionName":{"name":"abi_decode_bool","nodeType":"YulIdentifier","src":"2763:15:21"},"nodeType":"YulFunctionCall","src":"2763:26:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2753:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2798:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2829:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2840:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2825:3:21"},"nodeType":"YulFunctionCall","src":"2825:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2812:12:21"},"nodeType":"YulFunctionCall","src":"2812:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2802:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2853:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2863:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2857:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2908:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2917:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2920:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2910:6:21"},"nodeType":"YulFunctionCall","src":"2910:12:21"},"nodeType":"YulExpressionStatement","src":"2910:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2896:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2904:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2893:2:21"},"nodeType":"YulFunctionCall","src":"2893:14:21"},"nodeType":"YulIf","src":"2890:34:21"},{"nodeType":"YulVariableDeclaration","src":"2933:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2947:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"2958:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2943:3:21"},"nodeType":"YulFunctionCall","src":"2943:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2937:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3013:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3022:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3025:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3015:6:21"},"nodeType":"YulFunctionCall","src":"3015:12:21"},"nodeType":"YulExpressionStatement","src":"3015:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2992:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"2996:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2988:3:21"},"nodeType":"YulFunctionCall","src":"2988:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3003:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2984:3:21"},"nodeType":"YulFunctionCall","src":"2984:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2977:6:21"},"nodeType":"YulFunctionCall","src":"2977:35:21"},"nodeType":"YulIf","src":"2974:55:21"},{"nodeType":"YulVariableDeclaration","src":"3038:30:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3065:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3052:12:21"},"nodeType":"YulFunctionCall","src":"3052:16:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3042:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3095:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3104:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3107:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3097:6:21"},"nodeType":"YulFunctionCall","src":"3097:12:21"},"nodeType":"YulExpressionStatement","src":"3097:12:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3083:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3091:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3080:2:21"},"nodeType":"YulFunctionCall","src":"3080:14:21"},"nodeType":"YulIf","src":"3077:34:21"},{"body":{"nodeType":"YulBlock","src":"3161:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3170:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3173:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3163:6:21"},"nodeType":"YulFunctionCall","src":"3163:12:21"},"nodeType":"YulExpressionStatement","src":"3163:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3134:2:21"},{"name":"length","nodeType":"YulIdentifier","src":"3138:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3130:3:21"},"nodeType":"YulFunctionCall","src":"3130:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"3147:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3126:3:21"},"nodeType":"YulFunctionCall","src":"3126:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3152:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3123:2:21"},"nodeType":"YulFunctionCall","src":"3123:37:21"},"nodeType":"YulIf","src":"3120:57:21"},{"nodeType":"YulAssignment","src":"3186:21:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3200:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3196:3:21"},"nodeType":"YulFunctionCall","src":"3196:11:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3186:6:21"}]},{"nodeType":"YulAssignment","src":"3216:16:21","value":{"name":"length","nodeType":"YulIdentifier","src":"3226:6:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3216:6:21"}]},{"nodeType":"YulAssignment","src":"3241:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3268:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3279:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3264:3:21"},"nodeType":"YulFunctionCall","src":"3264:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3251:12:21"},"nodeType":"YulFunctionCall","src":"3251:32:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3241:6:21"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2624:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2635:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2647:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2655:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2663:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2671:6:21","type":""}],"src":"2562:727:21"},{"body":{"nodeType":"YulBlock","src":"3395:282:21","statements":[{"body":{"nodeType":"YulBlock","src":"3441:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3450:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3453:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3443:6:21"},"nodeType":"YulFunctionCall","src":"3443:12:21"},"nodeType":"YulExpressionStatement","src":"3443:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3416:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3425:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3412:3:21"},"nodeType":"YulFunctionCall","src":"3412:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3437:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3408:3:21"},"nodeType":"YulFunctionCall","src":"3408:32:21"},"nodeType":"YulIf","src":"3405:52:21"},{"nodeType":"YulVariableDeclaration","src":"3466:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3492:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3479:12:21"},"nodeType":"YulFunctionCall","src":"3479:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3470:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3536:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3511:24:21"},"nodeType":"YulFunctionCall","src":"3511:31:21"},"nodeType":"YulExpressionStatement","src":"3511:31:21"},{"nodeType":"YulAssignment","src":"3551:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3561:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3551:6:21"}]},{"nodeType":"YulAssignment","src":"3575:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3602:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3613:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3598:3:21"},"nodeType":"YulFunctionCall","src":"3598:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3585:12:21"},"nodeType":"YulFunctionCall","src":"3585:32:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3575:6:21"}]},{"nodeType":"YulAssignment","src":"3626:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3656:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3652:3:21"},"nodeType":"YulFunctionCall","src":"3652:18:21"}],"functionName":{"name":"abi_decode_bool","nodeType":"YulIdentifier","src":"3636:15:21"},"nodeType":"YulFunctionCall","src":"3636:35:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3626:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3345:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3356:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3368:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3376:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3384:6:21","type":""}],"src":"3294:383:21"},{"body":{"nodeType":"YulBlock","src":"3768:177:21","statements":[{"body":{"nodeType":"YulBlock","src":"3814:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3823:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3826:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3816:6:21"},"nodeType":"YulFunctionCall","src":"3816:12:21"},"nodeType":"YulExpressionStatement","src":"3816:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3789:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3798:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3785:3:21"},"nodeType":"YulFunctionCall","src":"3785:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3810:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3781:3:21"},"nodeType":"YulFunctionCall","src":"3781:32:21"},"nodeType":"YulIf","src":"3778:52:21"},{"nodeType":"YulVariableDeclaration","src":"3839:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3865:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3852:12:21"},"nodeType":"YulFunctionCall","src":"3852:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3843:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3909:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3884:24:21"},"nodeType":"YulFunctionCall","src":"3884:31:21"},"nodeType":"YulExpressionStatement","src":"3884:31:21"},{"nodeType":"YulAssignment","src":"3924:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3934:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3924:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_Relayer_$4434","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3734:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3745:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3757:6:21","type":""}],"src":"3682:263:21"},{"body":{"nodeType":"YulBlock","src":"4124:175:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4141:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4152:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4134:6:21"},"nodeType":"YulFunctionCall","src":"4134:21:21"},"nodeType":"YulExpressionStatement","src":"4134:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4186:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4171:3:21"},"nodeType":"YulFunctionCall","src":"4171:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"4191:2:21","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4164:6:21"},"nodeType":"YulFunctionCall","src":"4164:30:21"},"nodeType":"YulExpressionStatement","src":"4164:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4214:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4225:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4210:3:21"},"nodeType":"YulFunctionCall","src":"4210:18:21"},{"hexValue":"4d7573742062652063616c6c65642062792072656c61796572","kind":"string","nodeType":"YulLiteral","src":"4230:27:21","type":"","value":"Must be called by relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4203:6:21"},"nodeType":"YulFunctionCall","src":"4203:55:21"},"nodeType":"YulExpressionStatement","src":"4203:55:21"},{"nodeType":"YulAssignment","src":"4267:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4279:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4290:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4275:3:21"},"nodeType":"YulFunctionCall","src":"4275:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4267:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4101:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4115:4:21","type":""}],"src":"3950:349:21"},{"body":{"nodeType":"YulBlock","src":"4441:150:21","statements":[{"nodeType":"YulVariableDeclaration","src":"4451:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4471:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4465:5:21"},"nodeType":"YulFunctionCall","src":"4465:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4455:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4526:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"4534:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4522:3:21"},"nodeType":"YulFunctionCall","src":"4522:17:21"},{"name":"pos","nodeType":"YulIdentifier","src":"4541:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4546:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4487:34:21"},"nodeType":"YulFunctionCall","src":"4487:66:21"},"nodeType":"YulExpressionStatement","src":"4487:66:21"},{"nodeType":"YulAssignment","src":"4562:23:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4573:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4578:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4569:3:21"},"nodeType":"YulFunctionCall","src":"4569:16:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4562:3:21"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4417:3:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4422:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4433:3:21","type":""}],"src":"4304:287:21"},{"body":{"nodeType":"YulBlock","src":"4666:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"4712:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4721:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4724:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4714:6:21"},"nodeType":"YulFunctionCall","src":"4714:12:21"},"nodeType":"YulExpressionStatement","src":"4714:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4687:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"4696:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4683:3:21"},"nodeType":"YulFunctionCall","src":"4683:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"4708:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4679:3:21"},"nodeType":"YulFunctionCall","src":"4679:32:21"},"nodeType":"YulIf","src":"4676:52:21"},{"nodeType":"YulAssignment","src":"4737:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4760:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4747:12:21"},"nodeType":"YulFunctionCall","src":"4747:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4737:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4632:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4643:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4655:6:21","type":""}],"src":"4596:180:21"},{"body":{"nodeType":"YulBlock","src":"4882:76:21","statements":[{"nodeType":"YulAssignment","src":"4892:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4904:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4915:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4900:3:21"},"nodeType":"YulFunctionCall","src":"4900:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4892:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4934:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"4945:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4927:6:21"},"nodeType":"YulFunctionCall","src":"4927:25:21"},"nodeType":"YulExpressionStatement","src":"4927:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4851:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4862:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4873:4:21","type":""}],"src":"4781:177:21"},{"body":{"nodeType":"YulBlock","src":"5093:201:21","statements":[{"body":{"nodeType":"YulBlock","src":"5131:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5140:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5143:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5133:6:21"},"nodeType":"YulFunctionCall","src":"5133:12:21"},"nodeType":"YulExpressionStatement","src":"5133:12:21"}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"5109:10:21"},{"name":"endIndex","nodeType":"YulIdentifier","src":"5121:8:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5106:2:21"},"nodeType":"YulFunctionCall","src":"5106:24:21"},"nodeType":"YulIf","src":"5103:44:21"},{"body":{"nodeType":"YulBlock","src":"5180:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5189:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5192:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5182:6:21"},"nodeType":"YulFunctionCall","src":"5182:12:21"},"nodeType":"YulExpressionStatement","src":"5182:12:21"}]},"condition":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"5162:8:21"},{"name":"length","nodeType":"YulIdentifier","src":"5172:6:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5159:2:21"},"nodeType":"YulFunctionCall","src":"5159:20:21"},"nodeType":"YulIf","src":"5156:40:21"},{"nodeType":"YulAssignment","src":"5205:36:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5222:6:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"5230:10:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5218:3:21"},"nodeType":"YulFunctionCall","src":"5218:23:21"},"variableNames":[{"name":"offsetOut","nodeType":"YulIdentifier","src":"5205:9:21"}]},{"nodeType":"YulAssignment","src":"5250:38:21","value":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"5267:8:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"5277:10:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5263:3:21"},"nodeType":"YulFunctionCall","src":"5263:25:21"},"variableNames":[{"name":"lengthOut","nodeType":"YulIdentifier","src":"5250:9:21"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5027:6:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"5035:6:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"5043:10:21","type":""},{"name":"endIndex","nodeType":"YulTypedName","src":"5055:8:21","type":""}],"returnVariables":[{"name":"offsetOut","nodeType":"YulTypedName","src":"5068:9:21","type":""},{"name":"lengthOut","nodeType":"YulTypedName","src":"5079:9:21","type":""}],"src":"4963:331:21"},{"body":{"nodeType":"YulBlock","src":"5399:223:21","statements":[{"nodeType":"YulVariableDeclaration","src":"5409:29:21","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5432:5:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5419:12:21"},"nodeType":"YulFunctionCall","src":"5419:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5413:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5447:30:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5461:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5466:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5457:3:21"},"nodeType":"YulFunctionCall","src":"5457:20:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5451:2:21","type":""}]},{"nodeType":"YulAssignment","src":"5486:20:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5499:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"5503:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5495:3:21"},"nodeType":"YulFunctionCall","src":"5495:11:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5486:5:21"}]},{"body":{"nodeType":"YulBlock","src":"5537:79:21","statements":[{"nodeType":"YulAssignment","src":"5551:55:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5568:2:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5580:1:21","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5587:1:21","type":"","value":"4"},{"name":"len","nodeType":"YulIdentifier","src":"5590:3:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5583:3:21"},"nodeType":"YulFunctionCall","src":"5583:11:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5576:3:21"},"nodeType":"YulFunctionCall","src":"5576:19:21"},{"name":"_2","nodeType":"YulIdentifier","src":"5597:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5572:3:21"},"nodeType":"YulFunctionCall","src":"5572:28:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5564:3:21"},"nodeType":"YulFunctionCall","src":"5564:37:21"},{"name":"_2","nodeType":"YulIdentifier","src":"5603:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5560:3:21"},"nodeType":"YulFunctionCall","src":"5560:46:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5551:5:21"}]}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"5521:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"5526:1:21","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5518:2:21"},"nodeType":"YulFunctionCall","src":"5518:10:21"},"nodeType":"YulIf","src":"5515:101:21"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"5374:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"5381:3:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5389:5:21","type":""}],"src":"5299:323:21"},{"body":{"nodeType":"YulBlock","src":"5718:557:21","statements":[{"body":{"nodeType":"YulBlock","src":"5764:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5773:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5776:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5766:6:21"},"nodeType":"YulFunctionCall","src":"5766:12:21"},"nodeType":"YulExpressionStatement","src":"5766:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5739:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5735:3:21"},"nodeType":"YulFunctionCall","src":"5735:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"5760:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5731:3:21"},"nodeType":"YulFunctionCall","src":"5731:32:21"},"nodeType":"YulIf","src":"5728:52:21"},{"nodeType":"YulVariableDeclaration","src":"5789:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5809:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5803:5:21"},"nodeType":"YulFunctionCall","src":"5803:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5793:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5862:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5871:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5874:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5864:6:21"},"nodeType":"YulFunctionCall","src":"5864:12:21"},"nodeType":"YulExpressionStatement","src":"5864:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5834:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"5842:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5831:2:21"},"nodeType":"YulFunctionCall","src":"5831:30:21"},"nodeType":"YulIf","src":"5828:50:21"},{"nodeType":"YulVariableDeclaration","src":"5887:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5901:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"5912:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5897:3:21"},"nodeType":"YulFunctionCall","src":"5897:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5891:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5967:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5976:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5979:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5969:6:21"},"nodeType":"YulFunctionCall","src":"5969:12:21"},"nodeType":"YulExpressionStatement","src":"5969:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5946:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"5950:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5942:3:21"},"nodeType":"YulFunctionCall","src":"5942:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5957:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5938:3:21"},"nodeType":"YulFunctionCall","src":"5938:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5931:6:21"},"nodeType":"YulFunctionCall","src":"5931:35:21"},"nodeType":"YulIf","src":"5928:55:21"},{"nodeType":"YulVariableDeclaration","src":"5992:19:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6008:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6002:5:21"},"nodeType":"YulFunctionCall","src":"6002:9:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5996:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6020:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6077:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"6049:27:21"},"nodeType":"YulFunctionCall","src":"6049:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6033:15:21"},"nodeType":"YulFunctionCall","src":"6033:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"6024:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6097:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6104:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6090:6:21"},"nodeType":"YulFunctionCall","src":"6090:17:21"},"nodeType":"YulExpressionStatement","src":"6090:17:21"},{"body":{"nodeType":"YulBlock","src":"6153:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6162:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6165:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6155:6:21"},"nodeType":"YulFunctionCall","src":"6155:12:21"},"nodeType":"YulExpressionStatement","src":"6155:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6130:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6134:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6126:3:21"},"nodeType":"YulFunctionCall","src":"6126:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"6139:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6122:3:21"},"nodeType":"YulFunctionCall","src":"6122:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6144:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6119:2:21"},"nodeType":"YulFunctionCall","src":"6119:33:21"},"nodeType":"YulIf","src":"6116:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6217:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"6221:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6213:3:21"},"nodeType":"YulFunctionCall","src":"6213:11:21"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6230:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"6237:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6226:3:21"},"nodeType":"YulFunctionCall","src":"6226:14:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6242:2:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6178:34:21"},"nodeType":"YulFunctionCall","src":"6178:67:21"},"nodeType":"YulExpressionStatement","src":"6178:67:21"},{"nodeType":"YulAssignment","src":"6254:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"6264:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6254:6:21"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5684:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5695:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5707:6:21","type":""}],"src":"5627:648:21"},{"body":{"nodeType":"YulBlock","src":"6401:98:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6418:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6429:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6411:6:21"},"nodeType":"YulFunctionCall","src":"6411:21:21"},"nodeType":"YulExpressionStatement","src":"6411:21:21"},{"nodeType":"YulAssignment","src":"6441:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6466:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6478:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6489:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6474:3:21"},"nodeType":"YulFunctionCall","src":"6474:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6449:16:21"},"nodeType":"YulFunctionCall","src":"6449:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6441:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6370:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6381:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6392:4:21","type":""}],"src":"6280:219:21"},{"body":{"nodeType":"YulBlock","src":"6612:101:21","statements":[{"nodeType":"YulAssignment","src":"6622:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6634:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6645:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6630:3:21"},"nodeType":"YulFunctionCall","src":"6630:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6622:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6664:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6679:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"6687:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6675:3:21"},"nodeType":"YulFunctionCall","src":"6675:31:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6657:6:21"},"nodeType":"YulFunctionCall","src":"6657:50:21"},"nodeType":"YulExpressionStatement","src":"6657:50:21"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6581:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6592:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6603:4:21","type":""}],"src":"6504:209:21"},{"body":{"nodeType":"YulBlock","src":"6867:141:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6884:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6895:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6877:6:21"},"nodeType":"YulFunctionCall","src":"6877:21:21"},"nodeType":"YulExpressionStatement","src":"6877:21:21"},{"nodeType":"YulAssignment","src":"6907:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6932:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6944:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6955:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6940:3:21"},"nodeType":"YulFunctionCall","src":"6940:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6915:16:21"},"nodeType":"YulFunctionCall","src":"6915:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6907:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6979:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6990:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6975:3:21"},"nodeType":"YulFunctionCall","src":"6975:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"6995:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6968:6:21"},"nodeType":"YulFunctionCall","src":"6968:34:21"},"nodeType":"YulExpressionStatement","src":"6968:34:21"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6828:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6839:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6847:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6858:4:21","type":""}],"src":"6718:290:21"},{"body":{"nodeType":"YulBlock","src":"7208:298:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7225:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7240:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7256:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7261:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7252:3:21"},"nodeType":"YulFunctionCall","src":"7252:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"7265:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7248:3:21"},"nodeType":"YulFunctionCall","src":"7248:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7236:3:21"},"nodeType":"YulFunctionCall","src":"7236:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7218:6:21"},"nodeType":"YulFunctionCall","src":"7218:51:21"},"nodeType":"YulExpressionStatement","src":"7218:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7289:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7300:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7285:3:21"},"nodeType":"YulFunctionCall","src":"7285:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"7305:3:21","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7278:6:21"},"nodeType":"YulFunctionCall","src":"7278:31:21"},"nodeType":"YulExpressionStatement","src":"7278:31:21"},{"nodeType":"YulAssignment","src":"7318:53:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7343:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7355:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7366:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7351:3:21"},"nodeType":"YulFunctionCall","src":"7351:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7326:16:21"},"nodeType":"YulFunctionCall","src":"7326:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7318:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7391:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7402:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7387:3:21"},"nodeType":"YulFunctionCall","src":"7387:18:21"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7421:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7414:6:21"},"nodeType":"YulFunctionCall","src":"7414:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7407:6:21"},"nodeType":"YulFunctionCall","src":"7407:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7380:6:21"},"nodeType":"YulFunctionCall","src":"7380:50:21"},"nodeType":"YulExpressionStatement","src":"7380:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7450:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7461:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7446:3:21"},"nodeType":"YulFunctionCall","src":"7446:18:21"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7470:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7482:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7487:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7478:3:21"},"nodeType":"YulFunctionCall","src":"7478:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7466:3:21"},"nodeType":"YulFunctionCall","src":"7466:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7439:6:21"},"nodeType":"YulFunctionCall","src":"7439:61:21"},"nodeType":"YulExpressionStatement","src":"7439:61:21"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7153:9:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7164:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7172:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7180:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7188:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7199:4:21","type":""}],"src":"7013:493:21"},{"body":{"nodeType":"YulBlock","src":"7592:103:21","statements":[{"body":{"nodeType":"YulBlock","src":"7638:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7647:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7650:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7640:6:21"},"nodeType":"YulFunctionCall","src":"7640:12:21"},"nodeType":"YulExpressionStatement","src":"7640:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7613:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"7622:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7609:3:21"},"nodeType":"YulFunctionCall","src":"7609:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"7634:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7605:3:21"},"nodeType":"YulFunctionCall","src":"7605:32:21"},"nodeType":"YulIf","src":"7602:52:21"},{"nodeType":"YulAssignment","src":"7663:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7679:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7673:5:21"},"nodeType":"YulFunctionCall","src":"7673:16:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7663:6:21"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7558:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7569:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7581:6:21","type":""}],"src":"7511:184:21"},{"body":{"nodeType":"YulBlock","src":"7732:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7749:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7756:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7761:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7752:3:21"},"nodeType":"YulFunctionCall","src":"7752:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7742:6:21"},"nodeType":"YulFunctionCall","src":"7742:31:21"},"nodeType":"YulExpressionStatement","src":"7742:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7789:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7792:4:21","type":"","value":"0x51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7782:6:21"},"nodeType":"YulFunctionCall","src":"7782:15:21"},"nodeType":"YulExpressionStatement","src":"7782:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7813:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7816:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7806:6:21"},"nodeType":"YulFunctionCall","src":"7806:15:21"},"nodeType":"YulExpressionStatement","src":"7806:15:21"}]},"name":"panic_error_0x51","nodeType":"YulFunctionDefinition","src":"7700:127:21"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\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 mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_bool(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_bool(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value1 := add(_2, 32)\n value2 := length\n value3 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256t_bool(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := abi_decode_bool(add(headStart, 64))\n }\n function abi_decode_tuple_t_contract$_Relayer_$4434(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Must be called by relayer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4(array, len) -> value\n {\n let _1 := calldataload(array)\n let _2 := shl(224, 0xffffffff)\n value := and(_1, _2)\n if lt(len, 4)\n {\n value := and(and(_1, shl(shl(3, sub(4, len)), _2)), _2)\n }\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n tail := abi_encode_bytes(value0, add(headStart, 64))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), and(value3, shl(224, 0xffffffff)))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function panic_error_0x51()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0x99 JUMPI DUP1 PUSH4 0xC2AB4E3E EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0xFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x70 SWAP3 SWAP2 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0x1CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xB4 CALLDATASIZE PUSH1 0x4 PUSH2 0x84A JUMP JUMPDEST PUSH2 0x27C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0x911 JUMP JUMPDEST PUSH2 0x456 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x132 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x2D0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH8 0x66696E6973682829 PUSH1 0xC0 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST DUP4 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 PUSH2 0x2E4 DUP4 DUP6 ADD DUP6 PUSH2 0x988 JUMP JUMPDEST SWAP1 POP PUSH32 0x7165F2912DC85F932B95E64DC5404EA80083D36994C2B797EA2763BA0B71586B DUP2 PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0x9A1 JUMP JUMPDEST PUSH2 0x33D SWAP2 PUSH2 0x9CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x34E DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0x9A1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x3BC SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3F3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x29E99F07 PUSH1 0xE0 SHL OR SWAP1 MSTORE DUP5 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x603 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x73746172742829 PUSH1 0xC8 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x49C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4B9 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x4C7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x50F JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x56C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x3C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5FF DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x5D0 SWAP3 SWAP2 SWAP1 PUSH2 0xA7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x2D839CB3 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x63A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x67D SWAP2 SWAP1 PUSH2 0xAE4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x721 JUMPI PUSH2 0x721 PUSH2 0x6C0 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x74D DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x78D PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x7FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x82D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x845 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x860 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x869 DUP6 PUSH2 0x835 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x8F3 DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x908 PUSH1 0x40 DUP6 ADD PUSH2 0x835 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x92E DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x97E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7C2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x9B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0x9F3 JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xA43 PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xA58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x67D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x92E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA8F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAC2 SWAP1 DUP4 ADD DUP7 PUSH2 0x7E6 JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD GASPRICE 0x5D 0xBB LT OR 0xD2 SWAP11 SWAP6 PUSH22 0x446823CAD302CDF8D61C42CE90152978B934F77874A PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"90:805:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:274:14;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;775:253;;;;;;;;;;-1:-1:-1;775:253:14;;;;;:::i;:::-;;:::i;463:430:18:-;;;;;;;;;;-1:-1:-1;463:430:18;;;;;:::i;:::-;;:::i;:::-;;121:282;;;;;;;;;;-1:-1:-1;121:282:18;;;;;:::i;:::-;;:::i;272:91:14:-;;;;;;;;;;-1:-1:-1;272:91:14;;;;;:::i;:::-;;:::i;495:274::-;608:12;432:8;;622:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;;;;;;;;;655:27:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;655:27:14::1;;::::0;:11:::1;:27::i;:::-;714:6;-1:-1:-1::0;;;;;714:11:14::1;733:9;749:6;714:48;757:4;714:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;692:70:14;;;;-1:-1:-1;495:274:14;-1:-1:-1;;;495:274:14:o;775:253::-;882:12;432:8;;896:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;929:24:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;929:24:14::1;;::::0;:11:::1;:24::i;:::-;985:6;-1:-1:-1::0;;;;;985:17:14::1;1008:6;1016:4;985:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:430:18::0;432:8:14;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;584:30:18::1;;;;;;;;;;;;;;-1:-1:-1::0;;;584:30:18::1;;::::0;608:5:::1;584:11;:30::i;:::-;628:7;624:263;;;651:8;662:23;::::0;;::::1;673:3:::0;662:23:::1;:::i;:::-;651:34;;704:14;714:3;704:14;;;;4927:25:21::0;;4915:2;4900:18;;4781:177;704:14:18::1;;;;;;;;637:92;624:263;;;749:10;769:7;774:1;749:10:::0;769:3;;:7:::1;:::i;:::-;762:15;::::0;::::1;:::i;:::-;749:28:::0;-1:-1:-1;791:16:18::1;816:7;:3:::0;820:1:::1;816:3:::0;;:7:::1;:::i;:::-;791:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;850:25:18;;791:33;;-1:-1:-1;843:33:18::1;::::0;850:25:::1;::::0;-1:-1:-1;850:25:18;;::::1;::::0;;;;-1:-1:-1;850:25:18;::::1;;:::i;:::-;843:33;;;;;;:::i;:::-;;;;;;;;735:152;;624:263;463:430:::0;;;;:::o;121:282::-;194:10;207:150;226:6;287:3;246:45;;;;;;4927:25:21;;4915:2;4900:18;;4781:177;246:45:18;;;;-1:-1:-1;;246:45:18;;;;;;;;;;;;;;-1:-1:-1;;;;;246:45:18;-1:-1:-1;;;246:45:18;;;305:8;-1:-1:-1;;;207:5:18;:150::i;:::-;194:163;;367:29;;;;;;;;;;;;;;-1:-1:-1;;;367:29:18;;;390:5;367:11;:29::i;272:91:14:-;8870:21:1;4302:15;;-1:-1:-1;;;4302:15:1;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:1;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:1;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:1;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:1;-1:-1:-1;;;5013:22:1;;;4979:67;338:8:14::1;:18:::0;;-1:-1:-1;;;;;;338:18:14::1;-1:-1:-1::0;;;;;338:18:14;::::1;;::::0;;5066:101:1;;;;5100:23;;-1:-1:-1;;;;5100:23:1;;;5142:14;;-1:-1:-1;6657:50:21;;5142:14:1;;6645:2:21;6630:18;5142:14:1;6504:209:21;5066:101:1;4092:1081;;;;;272:91:14;:::o;6070:121:20:-;6125:59;6180:2;6141:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6141:42:20;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:42:20;-1:-1:-1;;;6141:42:20;;;6125:15;:59::i;:::-;6070:121;:::o;7018:145::-;7085:71;7148:2;7152;7101:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7101:54:20;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:54:20;-1:-1:-1;;;7101:54:20;;;7085:15;:71::i;:::-;7018:145;;:::o;1034:223:14:-;1172:10;1202:8;;:48;;-1:-1:-1;;;1202:48:14;;-1:-1:-1;;;;;1202:8:14;;;;:14;;:48;;1217:6;;1225:4;;1231:8;;1241;;1202:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1194:56;1034:223;-1:-1:-1;;;;;1034:223:14:o;851:129:20:-;922:51;965:7;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;14:131:21:-;-1:-1:-1;;;;;89:31:21;;79:42;;69:70;;135:1;132;125:12;150:127;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:275;353:2;347:9;418:2;399:13;;-1:-1:-1;;395:27:21;383:40;;453:18;438:34;;474:22;;;435:62;432:88;;;500:18;;:::i;:::-;536:2;529:22;282:275;;-1:-1:-1;282:275:21:o;562:186::-;610:4;643:18;635:6;632:30;629:56;;;665:18;;:::i;:::-;-1:-1:-1;731:2:21;710:15;-1:-1:-1;;706:29:21;737:4;702:40;;562:186::o;753:806::-;830:6;838;891:2;879:9;870:7;866:23;862:32;859:52;;;907:1;904;897:12;859:52;946:9;933:23;965:31;990:5;965:31;:::i;:::-;1015:5;-1:-1:-1;1071:2:21;1056:18;;1043:32;1098:18;1087:30;;1084:50;;;1130:1;1127;1120:12;1084:50;1153:22;;1206:4;1198:13;;1194:27;-1:-1:-1;1184:55:21;;1235:1;1232;1225:12;1184:55;1271:2;1258:16;1296:48;1312:31;1340:2;1312:31;:::i;:::-;1296:48;:::i;:::-;1367:2;1360:5;1353:17;1407:7;1402:2;1397;1393;1389:11;1385:20;1382:33;1379:53;;;1428:1;1425;1418:12;1379:53;1483:2;1478;1474;1470:11;1465:2;1458:5;1454:14;1441:45;1527:1;1522:2;1517;1510:5;1506:14;1502:23;1495:34;1548:5;1538:15;;;;;753:806;;;;;:::o;1564:250::-;1649:1;1659:113;1673:6;1670:1;1667:13;1659:113;;;1749:11;;;1743:18;1730:11;;;1723:39;1695:2;1688:10;1659:113;;;-1:-1:-1;;1806:1:21;1788:16;;1781:27;1564:250::o;1819:270::-;1860:3;1898:5;1892:12;1925:6;1920:3;1913:19;1941:76;2010:6;2003:4;1998:3;1994:14;1987:4;1980:5;1976:16;1941:76;:::i;:::-;2071:2;2050:15;-1:-1:-1;;2046:29:21;2037:39;;;;2078:4;2033:50;;1819:270;-1:-1:-1;;1819:270:21:o;2094:298::-;2277:6;2270:14;2263:22;2252:9;2245:41;2322:2;2317;2306:9;2302:18;2295:30;2226:4;2342:44;2382:2;2371:9;2367:18;2359:6;2342:44;:::i;:::-;2334:52;2094:298;-1:-1:-1;;;;2094:298:21:o;2397:160::-;2462:20;;2518:13;;2511:21;2501:32;;2491:60;;2547:1;2544;2537:12;2491:60;2397:160;;;:::o;2562:727::-;2647:6;2655;2663;2671;2724:2;2712:9;2703:7;2699:23;2695:32;2692:52;;;2740:1;2737;2730:12;2692:52;2763:26;2779:9;2763:26;:::i;:::-;2753:36;;2840:2;2829:9;2825:18;2812:32;2863:18;2904:2;2896:6;2893:14;2890:34;;;2920:1;2917;2910:12;2890:34;2958:6;2947:9;2943:22;2933:32;;3003:7;2996:4;2992:2;2988:13;2984:27;2974:55;;3025:1;3022;3015:12;2974:55;3065:2;3052:16;3091:2;3083:6;3080:14;3077:34;;;3107:1;3104;3097:12;3077:34;3152:7;3147:2;3138:6;3134:2;3130:15;3126:24;3123:37;3120:57;;;3173:1;3170;3163:12;3120:57;2562:727;;3204:2;3196:11;;;;;-1:-1:-1;3226:6:21;;3279:2;3264:18;3251:32;;-1:-1:-1;2562:727:21;-1:-1:-1;;;2562:727:21:o;3294:383::-;3368:6;3376;3384;3437:2;3425:9;3416:7;3412:23;3408:32;3405:52;;;3453:1;3450;3443:12;3405:52;3492:9;3479:23;3511:31;3536:5;3511:31;:::i;:::-;3561:5;-1:-1:-1;3613:2:21;3598:18;;3585:32;;-1:-1:-1;3636:35:21;3667:2;3652:18;;3636:35;:::i;:::-;3626:45;;3294:383;;;;;:::o;3682:263::-;3757:6;3810:2;3798:9;3789:7;3785:23;3781:32;3778:52;;;3826:1;3823;3816:12;3778:52;3865:9;3852:23;3884:31;3909:5;3884:31;:::i;:::-;3934:5;3682:263;-1:-1:-1;;;3682:263:21:o;3950:349::-;4152:2;4134:21;;;4191:2;4171:18;;;4164:30;4230:27;4225:2;4210:18;;4203:55;4290:2;4275:18;;3950:349::o;4304:287::-;4433:3;4471:6;4465:13;4487:66;4546:6;4541:3;4534:4;4526:6;4522:17;4487:66;:::i;:::-;4569:16;;;;;4304:287;-1:-1:-1;;4304:287:21:o;4596:180::-;4655:6;4708:2;4696:9;4687:7;4683:23;4679:32;4676:52;;;4724:1;4721;4714:12;4676:52;-1:-1:-1;4747:23:21;;4596:180;-1:-1:-1;4596:180:21:o;4963:331::-;5068:9;5079;5121:8;5109:10;5106:24;5103:44;;;5143:1;5140;5133:12;5103:44;5172:6;5162:8;5159:20;5156:40;;;5192:1;5189;5182:12;5156:40;-1:-1:-1;;5218:23:21;;;5263:25;;;;;-1:-1:-1;4963:331:21:o;5299:323::-;-1:-1:-1;;;;;;5419:19:21;;5495:11;;;;5526:1;5518:10;;5515:101;;;5603:2;5597;5590:3;5587:1;5583:11;5580:1;5576:19;5572:28;5568:2;5564:37;5560:46;5551:55;;5515:101;;;5299:323;;;;:::o;5627:648::-;5707:6;5760:2;5748:9;5739:7;5735:23;5731:32;5728:52;;;5776:1;5773;5766:12;5728:52;5809:9;5803:16;5842:18;5834:6;5831:30;5828:50;;;5874:1;5871;5864:12;5828:50;5897:22;;5950:4;5942:13;;5938:27;-1:-1:-1;5928:55:21;;5979:1;5976;5969:12;5928:55;6008:2;6002:9;6033:48;6049:31;6077:2;6049:31;:::i;6033:48::-;6104:2;6097:5;6090:17;6144:7;6139:2;6134;6130;6126:11;6122:20;6119:33;6116:53;;;6165:1;6162;6155:12;6116:53;6178:67;6242:2;6237;6230:5;6226:14;6221:2;6217;6213:11;6178:67;:::i;6280:219::-;6429:2;6418:9;6411:21;6392:4;6449:44;6489:2;6478:9;6474:18;6466:6;6449:44;:::i;6718:290::-;6895:2;6884:9;6877:21;6858:4;6915:44;6955:2;6944:9;6940:18;6932:6;6915:44;:::i;:::-;6907:52;;6995:6;6990:2;6979:9;6975:18;6968:34;6718:290;;;;;:::o;7013:493::-;-1:-1:-1;;;;;7236:32:21;;7218:51;;7305:3;7300:2;7285:18;;7278:31;;;-1:-1:-1;;7326:45:21;;7351:19;;7343:6;7326:45;:::i;:::-;7414:14;;7407:22;7402:2;7387:18;;7380:50;-1:-1:-1;;;;;;;7466:33:21;;;;7461:2;7446:18;;;7439:61;7318:53;7013:493;-1:-1:-1;;7013:493:21:o;7511:184::-;7581:6;7634:2;7622:9;7613:7;7609:23;7605:32;7602:52;;;7650:1;7647;7640:12;7602:52;-1:-1:-1;7673:16:21;;7511:184;-1:-1:-1;7511:184:21:o"},"methodIdentifiers":{"dispatched(address,bytes)":"5d903f03","finish(bool,bytes,uint256)":"b2c642d1","initialize(address)":"c4d66de8","queried(address,bytes)":"82dcc731","start(address,uint256,bool)":"c2ab4e3e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Succeeded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"dispatched\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"res\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"finish\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Relayer\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"queried\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readonly\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Test.sol\":\"Twin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/Test.sol\":{\"keccak256\":\"0x7e145dc159902e17f4d12e7a83d0d9e876be3e1aba2552a794074d11f7989d90\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d5899a5543741576a0b5dd62e45edce777eb9506933dc0bb695330021a929f9c\",\"dweb:/ipfs/Qme3uQvCvPeRpg58fcAaprVejro29xomrBaVRdRAkjCAtd\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/ValidatorManager.sol":{"ValidatorManager":{"abi":[{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getValidators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"hasSupermajority","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"validateSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"validateUniqueSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4615":{"entryPoint":null,"id":4615,"parameterSlots":1,"returnSlots":0},"@_add_3069":{"entryPoint":190,"id":3069,"parameterSlots":2,"returnSlots":1},"@_contains_3172":{"entryPoint":null,"id":3172,"parameterSlots":2,"returnSlots":1},"@addValidator_4628":{"entryPoint":140,"id":4628,"parameterSlots":1,"returnSlots":1},"@add_3369":{"entryPoint":160,"id":3369,"parameterSlots":2,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":294,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":323,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":555,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":533,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":272,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1828:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"206:117:21","statements":[{"nodeType":"YulAssignment","src":"216:22:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"231:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"225:5:21"},"nodeType":"YulFunctionCall","src":"225:13:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:21"}]},{"body":{"nodeType":"YulBlock","src":"301:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"313:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"303:6:21"},"nodeType":"YulFunctionCall","src":"303:12:21"},"nodeType":"YulExpressionStatement","src":"303:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"260:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"271:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"286:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"291:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"282:3:21"},"nodeType":"YulFunctionCall","src":"282:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"278:3:21"},"nodeType":"YulFunctionCall","src":"278:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"267:3:21"},"nodeType":"YulFunctionCall","src":"267:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"257:2:21"},"nodeType":"YulFunctionCall","src":"257:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"250:6:21"},"nodeType":"YulFunctionCall","src":"250:50:21"},"nodeType":"YulIf","src":"247:70:21"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"185:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"196:5:21","type":""}],"src":"146:177:21"},{"body":{"nodeType":"YulBlock","src":"434:1023:21","statements":[{"nodeType":"YulVariableDeclaration","src":"444:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"454:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"448:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"501:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"510:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"513:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"503:6:21"},"nodeType":"YulFunctionCall","src":"503:12:21"},"nodeType":"YulExpressionStatement","src":"503:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"476:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"485:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"472:3:21"},"nodeType":"YulFunctionCall","src":"472:23:21"},{"name":"_1","nodeType":"YulIdentifier","src":"497:2:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"468:3:21"},"nodeType":"YulFunctionCall","src":"468:32:21"},"nodeType":"YulIf","src":"465:52:21"},{"nodeType":"YulVariableDeclaration","src":"526:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"546:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"540:5:21"},"nodeType":"YulFunctionCall","src":"540:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"530:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"565:28:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"583:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"587:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"579:3:21"},"nodeType":"YulFunctionCall","src":"579:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"591:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"575:3:21"},"nodeType":"YulFunctionCall","src":"575:18:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"569:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"620:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"629:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"632:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"622:6:21"},"nodeType":"YulFunctionCall","src":"622:12:21"},"nodeType":"YulExpressionStatement","src":"622:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"608:6:21"},{"name":"_2","nodeType":"YulIdentifier","src":"616:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"605:2:21"},"nodeType":"YulFunctionCall","src":"605:14:21"},"nodeType":"YulIf","src":"602:34:21"},{"nodeType":"YulVariableDeclaration","src":"645:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"670:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"655:3:21"},"nodeType":"YulFunctionCall","src":"655:22:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"649:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"725:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"734:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"737:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:21"},"nodeType":"YulFunctionCall","src":"727:12:21"},"nodeType":"YulExpressionStatement","src":"727:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"704:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"708:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"700:3:21"},"nodeType":"YulFunctionCall","src":"700:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"715:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"696:3:21"},"nodeType":"YulFunctionCall","src":"696:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"689:6:21"},"nodeType":"YulFunctionCall","src":"689:35:21"},"nodeType":"YulIf","src":"686:55:21"},{"nodeType":"YulVariableDeclaration","src":"750:19:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"766:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"760:5:21"},"nodeType":"YulFunctionCall","src":"760:9:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"754:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"792:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"794:16:21"},"nodeType":"YulFunctionCall","src":"794:18:21"},"nodeType":"YulExpressionStatement","src":"794:18:21"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"784:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"788:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:21"},"nodeType":"YulFunctionCall","src":"781:10:21"},"nodeType":"YulIf","src":"778:36:21"},{"nodeType":"YulVariableDeclaration","src":"823:20:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"837:1:21","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"840:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"833:3:21"},"nodeType":"YulFunctionCall","src":"833:10:21"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"827:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"852:23:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"872:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"866:5:21"},"nodeType":"YulFunctionCall","src":"866:9:21"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"856:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"884:56:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"906:6:21"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"922:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"926:2:21","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:21"},"nodeType":"YulFunctionCall","src":"918:11:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"935:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"931:3:21"},"nodeType":"YulFunctionCall","src":"931:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"914:3:21"},"nodeType":"YulFunctionCall","src":"914:25:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:21"},"nodeType":"YulFunctionCall","src":"902:38:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"888:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"999:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1001:16:21"},"nodeType":"YulFunctionCall","src":"1001:18:21"},"nodeType":"YulExpressionStatement","src":"1001:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"958:10:21"},{"name":"_2","nodeType":"YulIdentifier","src":"970:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"955:2:21"},"nodeType":"YulFunctionCall","src":"955:18:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"978:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"990:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"975:2:21"},"nodeType":"YulFunctionCall","src":"975:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"952:2:21"},"nodeType":"YulFunctionCall","src":"952:46:21"},"nodeType":"YulIf","src":"949:72:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1041:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1030:6:21"},"nodeType":"YulFunctionCall","src":"1030:22:21"},"nodeType":"YulExpressionStatement","src":"1030:22:21"},{"nodeType":"YulVariableDeclaration","src":"1061:17:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1072:6:21"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1065:3:21","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1094:6:21"},{"name":"_4","nodeType":"YulIdentifier","src":"1102:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1087:6:21"},"nodeType":"YulFunctionCall","src":"1087:18:21"},"nodeType":"YulExpressionStatement","src":"1087:18:21"},{"nodeType":"YulAssignment","src":"1114:22:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1125:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1133:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1121:3:21"},"nodeType":"YulFunctionCall","src":"1121:15:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1114:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"1145:34:21","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1167:2:21"},{"name":"_5","nodeType":"YulIdentifier","src":"1171:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1163:3:21"},"nodeType":"YulFunctionCall","src":"1163:11:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1176:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1159:3:21"},"nodeType":"YulFunctionCall","src":"1159:20:21"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1149:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1211:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1220:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1223:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1213:6:21"},"nodeType":"YulFunctionCall","src":"1213:12:21"},"nodeType":"YulExpressionStatement","src":"1213:12:21"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1194:6:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1202:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1191:2:21"},"nodeType":"YulFunctionCall","src":"1191:19:21"},"nodeType":"YulIf","src":"1188:39:21"},{"nodeType":"YulVariableDeclaration","src":"1236:22:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1251:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1255:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1247:3:21"},"nodeType":"YulFunctionCall","src":"1247:11:21"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1240:3:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1323:103:21","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1344:3:21"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1379:3:21"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1349:29:21"},"nodeType":"YulFunctionCall","src":"1349:34:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1337:6:21"},"nodeType":"YulFunctionCall","src":"1337:47:21"},"nodeType":"YulExpressionStatement","src":"1337:47:21"},{"nodeType":"YulAssignment","src":"1397:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1408:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1413:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1404:3:21"},"nodeType":"YulFunctionCall","src":"1404:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1397:3:21"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1278:3:21"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1283:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1275:2:21"},"nodeType":"YulFunctionCall","src":"1275:15:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1291:23:21","statements":[{"nodeType":"YulAssignment","src":"1293:19:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1304:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1309:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:21"},"nodeType":"YulFunctionCall","src":"1300:12:21"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1293:3:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1271:3:21","statements":[]},"src":"1267:159:21"},{"nodeType":"YulAssignment","src":"1435:16:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1445:6:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1435:6:21"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"400:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"411:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"423:6:21","type":""}],"src":"328:1129:21"},{"body":{"nodeType":"YulBlock","src":"1494:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1511:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1518:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1523:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1514:3:21"},"nodeType":"YulFunctionCall","src":"1514:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1504:6:21"},"nodeType":"YulFunctionCall","src":"1504:31:21"},"nodeType":"YulExpressionStatement","src":"1504:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1551:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1554:4:21","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1544:6:21"},"nodeType":"YulFunctionCall","src":"1544:15:21"},"nodeType":"YulExpressionStatement","src":"1544:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1575:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1578:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1568:6:21"},"nodeType":"YulFunctionCall","src":"1568:15:21"},"nodeType":"YulExpressionStatement","src":"1568:15:21"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"1462:127:21"},{"body":{"nodeType":"YulBlock","src":"1641:185:21","statements":[{"body":{"nodeType":"YulBlock","src":"1680:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1701:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1708:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1713:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1704:3:21"},"nodeType":"YulFunctionCall","src":"1704:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1694:6:21"},"nodeType":"YulFunctionCall","src":"1694:31:21"},"nodeType":"YulExpressionStatement","src":"1694:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1745:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1748:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1738:6:21"},"nodeType":"YulFunctionCall","src":"1738:15:21"},"nodeType":"YulExpressionStatement","src":"1738:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1773:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1776:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1766:6:21"},"nodeType":"YulFunctionCall","src":"1766:15:21"},"nodeType":"YulExpressionStatement","src":"1766:15:21"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1657:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1668:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1664:3:21"},"nodeType":"YulFunctionCall","src":"1664:6:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1654:2:21"},"nodeType":"YulFunctionCall","src":"1654:17:21"},"nodeType":"YulIf","src":"1651:140:21"},{"nodeType":"YulAssignment","src":"1800:20:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1811:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1818:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1807:3:21"},"nodeType":"YulFunctionCall","src":"1807:13:21"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1800:3:21"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1623:5:21","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"1633:3:21","type":""}],"src":"1594:232:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := sub(shl(64, 1), 1)\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := mload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _4)\n dst := add(memPtr, _1)\n let srcEnd := add(add(_3, _5), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, abi_decode_address_fromMemory(src))\n dst := add(dst, _1)\n }\n value0 := memPtr\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000c5a38038062000c5a833981016040819052620000349162000143565b60005b815181101562000084576200006e8282815181106200005a576200005a62000215565b60200260200101516200008c60201b60201c565b50806200007b816200022b565b91505062000037565b505062000253565b60006200009a8183620000a0565b92915050565b6000620000b7836001600160a01b038416620000be565b9392505050565b600081815260018301602052604081205462000107575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200009a565b5060006200009a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200013e57600080fd5b919050565b600060208083850312156200015757600080fd5b82516001600160401b03808211156200016f57600080fd5b818501915085601f8301126200018457600080fd5b81518181111562000199576200019962000110565b8060051b604051601f19603f83011681018181108582111715620001c157620001c162000110565b604052918252848201925083810185019188831115620001e057600080fd5b938501935b828510156200020957620001f98562000126565b84529385019392850192620001e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200024c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6109f780620002636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xC5A CODESIZE SUB DUP1 PUSH3 0xC5A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x143 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x84 JUMPI PUSH3 0x6E DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x5A JUMPI PUSH3 0x5A PUSH3 0x215 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0x8C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH3 0x7B DUP2 PUSH3 0x22B JUMP JUMPDEST SWAP2 POP POP PUSH3 0x37 JUMP JUMPDEST POP POP PUSH3 0x253 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9A DUP2 DUP4 PUSH3 0xA0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xB7 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0xBE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x107 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x9A JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x9A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x13E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x199 JUMPI PUSH3 0x199 PUSH3 0x110 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH3 0x1C1 JUMPI PUSH3 0x1C1 PUSH3 0x110 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP5 DUP3 ADD SWAP3 POP DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP9 DUP4 GT ISZERO PUSH3 0x1E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH3 0x209 JUMPI PUSH3 0x1F9 DUP6 PUSH3 0x126 JUMP JUMPDEST DUP5 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH3 0x1E5 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x24C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0x9F7 DUP1 PUSH3 0x263 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7947C3FA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x7947C3FA EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB7AB4DB5 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xED612F8C EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xFACD743B EQ PUSH2 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x333DAF92 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x3E99D941 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x40A141FF EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4D238C8E EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C8 JUMP JUMPDEST PUSH2 0x161 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x188 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xE9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x194 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xFC CALLDATASIZE PUSH1 0x4 PUSH2 0x80A JUMP JUMPDEST PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x8D9 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x2B3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C DUP5 DUP5 PUSH2 0x2BF JUMP JUMPDEST SWAP1 POP PUSH2 0x157 DUP2 PUSH2 0x2B3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16B PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x176 SWAP1 PUSH1 0x2 PUSH2 0x93C JUMP JUMPDEST PUSH2 0x181 DUP4 PUSH1 0x3 PUSH2 0x93C JUMP JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x2E9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x305 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 PUSH2 0x1DC DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C5 JUMPI PUSH2 0x1C5 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 PUSH2 0x2BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GT PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E617475726573206D75737420626520756E6971756520616E6420696E PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1034B731B932B0B9B4B7339037B93232B9 PUSH1 0x79 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x267 DUP2 PUSH2 0x2B3 JUMP JUMPDEST PUSH2 0x277 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x283 DUP2 PUSH2 0x969 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A5 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x31A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2CF DUP7 DUP7 PUSH2 0x353 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2DF DUP3 DUP3 PUSH2 0x3A0 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x45D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x550 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x2FE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x38D JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x37F DUP9 DUP3 DUP6 DUP6 PUSH2 0x5FB JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x399 JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3B4 JUMPI PUSH2 0x3B4 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3BD JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3D1 JUMPI PUSH2 0x3D1 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x403 JUMPI PUSH2 0x403 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x438 JUMPI PUSH2 0x438 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x459 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x546 JUMPI PUSH1 0x0 PUSH2 0x481 PUSH1 0x1 DUP4 PUSH2 0x998 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x495 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x998 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 EQ PUSH2 0x4FA JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4B5 JUMPI PUSH2 0x4B5 PUSH2 0x953 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D8 JUMPI PUSH2 0x4D8 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x50B JUMPI PUSH2 0x50B PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x597 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x15B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x5DB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x636 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x68A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6B6 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x6C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x709 JUMPI PUSH2 0x709 PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x722 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x73C JUMPI PUSH2 0x73C PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x74F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x6E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7BE DUP6 DUP3 DUP7 ADD PUSH2 0x711 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x83D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0x6CA JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x872 DUP6 DUP3 ADD PUSH2 0x6E0 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP11 DUP5 GT ISZERO PUSH2 0x88C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x8C8 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0x8AA JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x8B8 DUP13 DUP10 DUP4 DUP11 ADD ADD PUSH2 0x711 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0x892 JUMP JUMPDEST DUP1 SWAP8 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x91A JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x97B JUMPI PUSH2 0x97B PUSH2 0x926 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PC CALL 0xEF GT DUP13 DUP15 DUP9 CALLVALUE SWAP5 0xFC DUP5 SLT 0xFB NUMBER TIMESTAMP SWAP16 DUP12 PUSH9 0x4FCB90D8F0F31A281D SWAP11 0xC0 0xCD CALLER PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"276:2015:19:-:0;;;481:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;537:6;532:97;553:10;:17;549:1;:21;532:97;;;591:27;604:10;615:1;604:13;;;;;;;;:::i;:::-;;;;;;;591:12;;;:27;;:::i;:::-;-1:-1:-1;572:3:19;;;;:::i;:::-;;;;532:97;;;;481:154;276:2015;;670:103;722:4;745:21;722:4;761;745:15;:21::i;:::-;738:28;670:103;-1:-1:-1;;670:103:19:o;8316:150:13:-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:13;;8409:4;:50::i;:::-;8402:57;8316:150;-1:-1:-1;;;8316:150:13:o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:13;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:13;2618:12;;14:127:21;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:21;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1129::-;423:6;454:2;497;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;540:16;;-1:-1:-1;;;;;605:14:21;;;602:34;;;632:1;629;622:12;602:34;670:6;659:9;655:22;645:32;;715:7;708:4;704:2;700:13;696:27;686:55;;737:1;734;727:12;686:55;766:2;760:9;788:2;784;781:10;778:36;;;794:18;;:::i;:::-;840:2;837:1;833:10;872:2;866:9;935:2;931:7;926:2;922;918:11;914:25;906:6;902:38;990:6;978:10;975:22;970:2;958:10;955:18;952:46;949:72;;;1001:18;;:::i;:::-;1037:2;1030:22;1087:18;;;1121:15;;;;-1:-1:-1;1163:11:21;;;1159:20;;;1191:19;;;1188:39;;;1223:1;1220;1213:12;1188:39;1247:11;;;;1267:159;1283:6;1278:3;1275:15;1267:159;;;1349:34;1379:3;1349:34;:::i;:::-;1337:47;;1300:12;;;;1404;;;;1267:159;;;1445:6;328:1129;-1:-1:-1;;;;;;;;328:1129:21:o;1462:127::-;1523:10;1518:3;1514:20;1511:1;1504:31;1554:4;1551:1;1544:15;1578:4;1575:1;1568:15;1594:232;1633:3;1654:17;;;1651:140;;1713:10;1708:3;1704:20;1701:1;1694:31;1748:4;1745:1;1738:15;1776:4;1773:1;1766:15;1651:140;-1:-1:-1;1818:1:21;1807:13;;1594:232::o;:::-;276:2015:19;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_add_3069":{"entryPoint":1360,"id":3069,"parameterSlots":2,"returnSlots":1},"@_contains_3172":{"entryPoint":null,"id":3172,"parameterSlots":2,"returnSlots":1},"@_length_3186":{"entryPoint":null,"id":3186,"parameterSlots":1,"returnSlots":1},"@_remove_3153":{"entryPoint":1117,"id":3153,"parameterSlots":2,"returnSlots":1},"@_throwError_1782":{"entryPoint":928,"id":1782,"parameterSlots":2,"returnSlots":0},"@_values_3217":{"entryPoint":1439,"id":3217,"parameterSlots":1,"returnSlots":1},"@addValidator_4628":{"entryPoint":404,"id":4628,"parameterSlots":1,"returnSlots":1},"@add_3369":{"entryPoint":773,"id":3369,"parameterSlots":2,"returnSlots":1},"@contains_3423":{"entryPoint":817,"id":3423,"parameterSlots":2,"returnSlots":1},"@getValidators_4652":{"entryPoint":662,"id":4652,"parameterSlots":0,"returnSlots":1},"@hasSupermajority_4753":{"entryPoint":353,"id":4753,"parameterSlots":1,"returnSlots":1},"@isValidator_4665":{"entryPoint":691,"id":4665,"parameterSlots":1,"returnSlots":1},"@length_3438":{"entryPoint":807,"id":3438,"parameterSlots":1,"returnSlots":1},"@recover_1539":{"entryPoint":703,"id":1539,"parameterSlots":2,"returnSlots":1},"@removeValidator_4641":{"entryPoint":392,"id":4641,"parameterSlots":1,"returnSlots":1},"@remove_3396":{"entryPoint":745,"id":3396,"parameterSlots":2,"returnSlots":1},"@tryRecover_1509":{"entryPoint":851,"id":1509,"parameterSlots":2,"returnSlots":3},"@tryRecover_1697":{"entryPoint":1531,"id":1697,"parameterSlots":4,"returnSlots":3},"@validateSignature_4774":{"entryPoint":319,"id":4774,"parameterSlots":2,"returnSlots":1},"@validateUniqueSignatures_4736":{"entryPoint":416,"id":4736,"parameterSlots":2,"returnSlots":1},"@validatorsCount_4675":{"entryPoint":679,"id":4675,"parameterSlots":0,"returnSlots":1},"@values_3495":{"entryPoint":794,"id":3495,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":1809,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2017,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":2058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes_memory_ptr":{"entryPoint":1921,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":1992,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":2265,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1760,"id":null,"parameterSlots":1,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2364,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2456,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":2409,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":2434,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":2475,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":2387,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1738,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6079:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"191:230:21","statements":[{"nodeType":"YulAssignment","src":"201:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"217:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"211:5:21"},"nodeType":"YulFunctionCall","src":"211:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"201:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"229:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"251:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"267:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"273:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"263:3:21"},"nodeType":"YulFunctionCall","src":"263:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"282:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"278:3:21"},"nodeType":"YulFunctionCall","src":"278:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"259:3:21"},"nodeType":"YulFunctionCall","src":"259:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"247:3:21"},"nodeType":"YulFunctionCall","src":"247:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"233:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"362:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"364:16:21"},"nodeType":"YulFunctionCall","src":"364:18:21"},"nodeType":"YulExpressionStatement","src":"364:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"305:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"317:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"302:2:21"},"nodeType":"YulFunctionCall","src":"302:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"341:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"353:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"338:2:21"},"nodeType":"YulFunctionCall","src":"338:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"299:2:21"},"nodeType":"YulFunctionCall","src":"299:62:21"},"nodeType":"YulIf","src":"296:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"400:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"404:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"393:6:21"},"nodeType":"YulFunctionCall","src":"393:22:21"},"nodeType":"YulExpressionStatement","src":"393:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"171:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"180:6:21","type":""}],"src":"146:275:21"},{"body":{"nodeType":"YulBlock","src":"478:478:21","statements":[{"body":{"nodeType":"YulBlock","src":"527:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"539:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"529:6:21"},"nodeType":"YulFunctionCall","src":"529:12:21"},"nodeType":"YulExpressionStatement","src":"529:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"506:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"514:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:21"},"nodeType":"YulFunctionCall","src":"502:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"521:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"498:3:21"},"nodeType":"YulFunctionCall","src":"498:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"491:6:21"},"nodeType":"YulFunctionCall","src":"491:35:21"},"nodeType":"YulIf","src":"488:55:21"},{"nodeType":"YulVariableDeclaration","src":"552:30:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"575:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"562:12:21"},"nodeType":"YulFunctionCall","src":"562:20:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"556:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"621:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"623:16:21"},"nodeType":"YulFunctionCall","src":"623:18:21"},"nodeType":"YulExpressionStatement","src":"623:18:21"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"597:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"601:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"594:2:21"},"nodeType":"YulFunctionCall","src":"594:26:21"},"nodeType":"YulIf","src":"591:52:21"},{"nodeType":"YulVariableDeclaration","src":"652:70:21","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"695:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"699:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"691:3:21"},"nodeType":"YulFunctionCall","src":"691:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"710:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"706:3:21"},"nodeType":"YulFunctionCall","src":"706:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"687:3:21"},"nodeType":"YulFunctionCall","src":"687:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"716:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"683:3:21"},"nodeType":"YulFunctionCall","src":"683:38:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"667:15:21"},"nodeType":"YulFunctionCall","src":"667:55:21"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"656:7:21","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"738:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"747:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"731:6:21"},"nodeType":"YulFunctionCall","src":"731:19:21"},"nodeType":"YulExpressionStatement","src":"731:19:21"},{"body":{"nodeType":"YulBlock","src":"798:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"807:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"810:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"800:6:21"},"nodeType":"YulFunctionCall","src":"800:12:21"},"nodeType":"YulExpressionStatement","src":"800:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"781:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:21"},"nodeType":"YulFunctionCall","src":"769:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"786:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:21"},"nodeType":"YulFunctionCall","src":"765:26:21"},{"name":"end","nodeType":"YulIdentifier","src":"793:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"762:2:21"},"nodeType":"YulFunctionCall","src":"762:35:21"},"nodeType":"YulIf","src":"759:55:21"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"840:7:21"},{"kind":"number","nodeType":"YulLiteral","src":"849:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"836:3:21"},"nodeType":"YulFunctionCall","src":"836:18:21"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"860:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"868:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"856:3:21"},"nodeType":"YulFunctionCall","src":"856:17:21"},{"name":"_1","nodeType":"YulIdentifier","src":"875:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"823:12:21"},"nodeType":"YulFunctionCall","src":"823:55:21"},"nodeType":"YulExpressionStatement","src":"823:55:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"902:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"911:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"898:3:21"},"nodeType":"YulFunctionCall","src":"898:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"916:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"894:3:21"},"nodeType":"YulFunctionCall","src":"894:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"923:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"887:6:21"},"nodeType":"YulFunctionCall","src":"887:38:21"},"nodeType":"YulExpressionStatement","src":"887:38:21"},{"nodeType":"YulAssignment","src":"934:16:21","value":{"name":"array_1","nodeType":"YulIdentifier","src":"943:7:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"934:5:21"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"452:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"460:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"468:5:21","type":""}],"src":"426:530:21"},{"body":{"nodeType":"YulBlock","src":"1057:292:21","statements":[{"body":{"nodeType":"YulBlock","src":"1103:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1112:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1115:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1105:6:21"},"nodeType":"YulFunctionCall","src":"1105:12:21"},"nodeType":"YulExpressionStatement","src":"1105:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1078:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1087:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1074:3:21"},"nodeType":"YulFunctionCall","src":"1074:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1099:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1070:3:21"},"nodeType":"YulFunctionCall","src":"1070:32:21"},"nodeType":"YulIf","src":"1067:52:21"},{"nodeType":"YulAssignment","src":"1128:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1138:12:21"},"nodeType":"YulFunctionCall","src":"1138:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1128:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1170:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1201:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1212:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1197:3:21"},"nodeType":"YulFunctionCall","src":"1197:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1184:12:21"},"nodeType":"YulFunctionCall","src":"1184:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1174:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1259:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1268:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1271:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1261:6:21"},"nodeType":"YulFunctionCall","src":"1261:12:21"},"nodeType":"YulExpressionStatement","src":"1261:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1231:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1239:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1228:2:21"},"nodeType":"YulFunctionCall","src":"1228:30:21"},"nodeType":"YulIf","src":"1225:50:21"},{"nodeType":"YulAssignment","src":"1284:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1326:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:21"},"nodeType":"YulFunctionCall","src":"1311:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1335:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1294:16:21"},"nodeType":"YulFunctionCall","src":"1294:49:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1284:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1026:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1038:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1046:6:21","type":""}],"src":"961:388:21"},{"body":{"nodeType":"YulBlock","src":"1449:92:21","statements":[{"nodeType":"YulAssignment","src":"1459:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1471:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1482:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1467:3:21"},"nodeType":"YulFunctionCall","src":"1467:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1459:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1501:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1526:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1519:6:21"},"nodeType":"YulFunctionCall","src":"1519:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1512:6:21"},"nodeType":"YulFunctionCall","src":"1512:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1494:6:21"},"nodeType":"YulFunctionCall","src":"1494:41:21"},"nodeType":"YulExpressionStatement","src":"1494:41:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1418:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1429:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1440:4:21","type":""}],"src":"1354:187:21"},{"body":{"nodeType":"YulBlock","src":"1616:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"1662:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1671:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1674:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1664:6:21"},"nodeType":"YulFunctionCall","src":"1664:12:21"},"nodeType":"YulExpressionStatement","src":"1664:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1637:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1633:3:21"},"nodeType":"YulFunctionCall","src":"1633:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1658:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1629:3:21"},"nodeType":"YulFunctionCall","src":"1629:32:21"},"nodeType":"YulIf","src":"1626:52:21"},{"nodeType":"YulAssignment","src":"1687:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1710:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1697:12:21"},"nodeType":"YulFunctionCall","src":"1697:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1687:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1582:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1593:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1605:6:21","type":""}],"src":"1546:180:21"},{"body":{"nodeType":"YulBlock","src":"1801:216:21","statements":[{"body":{"nodeType":"YulBlock","src":"1847:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1856:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1859:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1849:6:21"},"nodeType":"YulFunctionCall","src":"1849:12:21"},"nodeType":"YulExpressionStatement","src":"1849:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1822:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1831:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1818:3:21"},"nodeType":"YulFunctionCall","src":"1818:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1843:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1814:3:21"},"nodeType":"YulFunctionCall","src":"1814:32:21"},"nodeType":"YulIf","src":"1811:52:21"},{"nodeType":"YulVariableDeclaration","src":"1872:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1898:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1885:12:21"},"nodeType":"YulFunctionCall","src":"1885:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1876:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1971:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1980:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1983:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1973:6:21"},"nodeType":"YulFunctionCall","src":"1973:12:21"},"nodeType":"YulExpressionStatement","src":"1973:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1930:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1941:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1956:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1961:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1952:3:21"},"nodeType":"YulFunctionCall","src":"1952:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1965:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1948:3:21"},"nodeType":"YulFunctionCall","src":"1948:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1937:3:21"},"nodeType":"YulFunctionCall","src":"1937:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1927:2:21"},"nodeType":"YulFunctionCall","src":"1927:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1920:6:21"},"nodeType":"YulFunctionCall","src":"1920:50:21"},"nodeType":"YulIf","src":"1917:70:21"},{"nodeType":"YulAssignment","src":"1996:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2006:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1996:6:21"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1767:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1778:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1790:6:21","type":""}],"src":"1731:286:21"},{"body":{"nodeType":"YulBlock","src":"2143:1112:21","statements":[{"body":{"nodeType":"YulBlock","src":"2189:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2198:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2201:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2191:6:21"},"nodeType":"YulFunctionCall","src":"2191:12:21"},"nodeType":"YulExpressionStatement","src":"2191:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2164:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2173:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2160:3:21"},"nodeType":"YulFunctionCall","src":"2160:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2185:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2156:3:21"},"nodeType":"YulFunctionCall","src":"2156:32:21"},"nodeType":"YulIf","src":"2153:52:21"},{"nodeType":"YulAssignment","src":"2214:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2237:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2224:12:21"},"nodeType":"YulFunctionCall","src":"2224:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2214:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2256:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2266:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2260:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2277:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2308:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2319:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2304:3:21"},"nodeType":"YulFunctionCall","src":"2304:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2291:12:21"},"nodeType":"YulFunctionCall","src":"2291:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2281:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2332:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2342:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2336:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2387:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2396:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2399:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2389:6:21"},"nodeType":"YulFunctionCall","src":"2389:12:21"},"nodeType":"YulExpressionStatement","src":"2389:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2375:6:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2383:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2372:2:21"},"nodeType":"YulFunctionCall","src":"2372:14:21"},"nodeType":"YulIf","src":"2369:34:21"},{"nodeType":"YulVariableDeclaration","src":"2412:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2426:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"2437:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2422:3:21"},"nodeType":"YulFunctionCall","src":"2422:22:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2416:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2492:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2501:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2504:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2494:6:21"},"nodeType":"YulFunctionCall","src":"2494:12:21"},"nodeType":"YulExpressionStatement","src":"2494:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2471:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"2475:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2467:3:21"},"nodeType":"YulFunctionCall","src":"2467:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2482:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2463:3:21"},"nodeType":"YulFunctionCall","src":"2463:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2456:6:21"},"nodeType":"YulFunctionCall","src":"2456:35:21"},"nodeType":"YulIf","src":"2453:55:21"},{"nodeType":"YulVariableDeclaration","src":"2517:26:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2540:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2527:12:21"},"nodeType":"YulFunctionCall","src":"2527:16:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2521:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2566:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2568:16:21"},"nodeType":"YulFunctionCall","src":"2568:18:21"},"nodeType":"YulExpressionStatement","src":"2568:18:21"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2558:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2562:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2555:2:21"},"nodeType":"YulFunctionCall","src":"2555:10:21"},"nodeType":"YulIf","src":"2552:36:21"},{"nodeType":"YulVariableDeclaration","src":"2597:20:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2611:1:21","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"2614:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2607:3:21"},"nodeType":"YulFunctionCall","src":"2607:10:21"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2601:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2626:39:21","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"2657:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2661:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:21"},"nodeType":"YulFunctionCall","src":"2653:11:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2637:15:21"},"nodeType":"YulFunctionCall","src":"2637:28:21"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2630:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2674:16:21","value":{"name":"dst","nodeType":"YulIdentifier","src":"2687:3:21"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2678:5:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2706:3:21"},{"name":"_4","nodeType":"YulIdentifier","src":"2711:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2699:6:21"},"nodeType":"YulFunctionCall","src":"2699:15:21"},"nodeType":"YulExpressionStatement","src":"2699:15:21"},{"nodeType":"YulAssignment","src":"2723:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2734:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2739:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2730:3:21"},"nodeType":"YulFunctionCall","src":"2730:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2723:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"2751:34:21","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2773:2:21"},{"name":"_5","nodeType":"YulIdentifier","src":"2777:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2769:3:21"},"nodeType":"YulFunctionCall","src":"2769:11:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2782:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2765:3:21"},"nodeType":"YulFunctionCall","src":"2765:20:21"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2755:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2817:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2826:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2829:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2819:6:21"},"nodeType":"YulFunctionCall","src":"2819:12:21"},"nodeType":"YulExpressionStatement","src":"2819:12:21"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2800:6:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2808:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2797:2:21"},"nodeType":"YulFunctionCall","src":"2797:19:21"},"nodeType":"YulIf","src":"2794:39:21"},{"nodeType":"YulVariableDeclaration","src":"2842:22:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2857:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2861:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2853:3:21"},"nodeType":"YulFunctionCall","src":"2853:11:21"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2846:3:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2929:296:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2943:36:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2975:3:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2962:12:21"},"nodeType":"YulFunctionCall","src":"2962:17:21"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"2947:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3027:74:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3045:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3055:1:21","type":"","value":"0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"3049:2:21","type":""}]},{"expression":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"3080:2:21"},{"name":"_6","nodeType":"YulIdentifier","src":"3084:2:21"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3073:6:21"},"nodeType":"YulFunctionCall","src":"3073:14:21"},"nodeType":"YulExpressionStatement","src":"3073:14:21"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"2998:11:21"},{"name":"_2","nodeType":"YulIdentifier","src":"3011:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2995:2:21"},"nodeType":"YulFunctionCall","src":"2995:19:21"},"nodeType":"YulIf","src":"2992:109:21"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3121:3:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3151:2:21"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"3155:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:21"},"nodeType":"YulFunctionCall","src":"3147:20:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3169:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3143:3:21"},"nodeType":"YulFunctionCall","src":"3143:29:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3174:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3126:16:21"},"nodeType":"YulFunctionCall","src":"3126:56:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3114:6:21"},"nodeType":"YulFunctionCall","src":"3114:69:21"},"nodeType":"YulExpressionStatement","src":"3114:69:21"},{"nodeType":"YulAssignment","src":"3196:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3207:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3212:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3203:3:21"},"nodeType":"YulFunctionCall","src":"3203:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3196:3:21"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2884:3:21"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2889:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2881:2:21"},"nodeType":"YulFunctionCall","src":"2881:15:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2897:23:21","statements":[{"nodeType":"YulAssignment","src":"2899:19:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2910:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2915:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2906:3:21"},"nodeType":"YulFunctionCall","src":"2906:12:21"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2899:3:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2877:3:21","statements":[]},"src":"2873:352:21"},{"nodeType":"YulAssignment","src":"3234:15:21","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"3244:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3234:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2101:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2112:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2124:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2132:6:21","type":""}],"src":"2022:1233:21"},{"body":{"nodeType":"YulBlock","src":"3411:507:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3421:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3431:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3425:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3442:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3460:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3471:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3456:3:21"},"nodeType":"YulFunctionCall","src":"3456:18:21"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3446:6:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3490:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3501:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3483:6:21"},"nodeType":"YulFunctionCall","src":"3483:21:21"},"nodeType":"YulExpressionStatement","src":"3483:21:21"},{"nodeType":"YulVariableDeclaration","src":"3513:17:21","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"3524:6:21"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"3517:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3539:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3559:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3553:5:21"},"nodeType":"YulFunctionCall","src":"3553:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3543:6:21","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"3582:6:21"},{"name":"length","nodeType":"YulIdentifier","src":"3590:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3575:6:21"},"nodeType":"YulFunctionCall","src":"3575:22:21"},"nodeType":"YulExpressionStatement","src":"3575:22:21"},{"nodeType":"YulAssignment","src":"3606:25:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3613:3:21"},"nodeType":"YulFunctionCall","src":"3613:18:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3606:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"3640:29:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3658:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3666:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3654:3:21"},"nodeType":"YulFunctionCall","src":"3654:15:21"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3644:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3678:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3687:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3682:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3746:146:21","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3767:3:21"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3782:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3776:5:21"},"nodeType":"YulFunctionCall","src":"3776:13:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3799:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3804:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3795:3:21"},"nodeType":"YulFunctionCall","src":"3795:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3808:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3791:3:21"},"nodeType":"YulFunctionCall","src":"3791:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3772:3:21"},"nodeType":"YulFunctionCall","src":"3772:39:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3760:6:21"},"nodeType":"YulFunctionCall","src":"3760:52:21"},"nodeType":"YulExpressionStatement","src":"3760:52:21"},{"nodeType":"YulAssignment","src":"3825:19:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3836:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3841:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3832:3:21"},"nodeType":"YulFunctionCall","src":"3832:12:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3825:3:21"}]},{"nodeType":"YulAssignment","src":"3857:25:21","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3871:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3879:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3867:3:21"},"nodeType":"YulFunctionCall","src":"3867:15:21"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3857:6:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3708:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"3711:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3705:2:21"},"nodeType":"YulFunctionCall","src":"3705:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3719:18:21","statements":[{"nodeType":"YulAssignment","src":"3721:14:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3730:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"3733:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3726:3:21"},"nodeType":"YulFunctionCall","src":"3726:9:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3721:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"3701:3:21","statements":[]},"src":"3697:195:21"},{"nodeType":"YulAssignment","src":"3901:11:21","value":{"name":"pos","nodeType":"YulIdentifier","src":"3909:3:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3901:4:21"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3380:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3391:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3402:4:21","type":""}],"src":"3260:658:21"},{"body":{"nodeType":"YulBlock","src":"4024:76:21","statements":[{"nodeType":"YulAssignment","src":"4034:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4046:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4057:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4042:3:21"},"nodeType":"YulFunctionCall","src":"4042:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4034:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4076:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"4087:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4069:6:21"},"nodeType":"YulFunctionCall","src":"4069:25:21"},"nodeType":"YulExpressionStatement","src":"4069:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3993:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4004:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4015:4:21","type":""}],"src":"3923:177:21"},{"body":{"nodeType":"YulBlock","src":"4137:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4154:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4161:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4166:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4157:3:21"},"nodeType":"YulFunctionCall","src":"4157:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4147:6:21"},"nodeType":"YulFunctionCall","src":"4147:31:21"},"nodeType":"YulExpressionStatement","src":"4147:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4194:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4197:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4187:6:21"},"nodeType":"YulFunctionCall","src":"4187:15:21"},"nodeType":"YulExpressionStatement","src":"4187:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4218:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4221:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4211:6:21"},"nodeType":"YulFunctionCall","src":"4211:15:21"},"nodeType":"YulExpressionStatement","src":"4211:15:21"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"4105:127:21"},{"body":{"nodeType":"YulBlock","src":"4289:116:21","statements":[{"nodeType":"YulAssignment","src":"4299:20:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4314:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"4317:1:21"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4310:3:21"},"nodeType":"YulFunctionCall","src":"4310:9:21"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4299:7:21"}]},{"body":{"nodeType":"YulBlock","src":"4377:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4379:16:21"},"nodeType":"YulFunctionCall","src":"4379:18:21"},"nodeType":"YulExpressionStatement","src":"4379:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4348:1:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4341:6:21"},"nodeType":"YulFunctionCall","src":"4341:9:21"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4355:1:21"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"4362:7:21"},{"name":"x","nodeType":"YulIdentifier","src":"4371:1:21"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4358:3:21"},"nodeType":"YulFunctionCall","src":"4358:15:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4352:2:21"},"nodeType":"YulFunctionCall","src":"4352:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4338:2:21"},"nodeType":"YulFunctionCall","src":"4338:37:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4331:6:21"},"nodeType":"YulFunctionCall","src":"4331:45:21"},"nodeType":"YulIf","src":"4328:71:21"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4268:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"4271:1:21","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4277:7:21","type":""}],"src":"4237:168:21"},{"body":{"nodeType":"YulBlock","src":"4442:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4459:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4466:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4471:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4462:3:21"},"nodeType":"YulFunctionCall","src":"4462:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4452:6:21"},"nodeType":"YulFunctionCall","src":"4452:31:21"},"nodeType":"YulExpressionStatement","src":"4452:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4499:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4502:4:21","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4492:6:21"},"nodeType":"YulFunctionCall","src":"4492:15:21"},"nodeType":"YulExpressionStatement","src":"4492:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4523:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4526:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4516:6:21"},"nodeType":"YulFunctionCall","src":"4516:15:21"},"nodeType":"YulExpressionStatement","src":"4516:15:21"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"4410:127:21"},{"body":{"nodeType":"YulBlock","src":"4716:239:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4733:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4744:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4726:6:21"},"nodeType":"YulFunctionCall","src":"4726:21:21"},"nodeType":"YulExpressionStatement","src":"4726:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4767:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4778:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4763:3:21"},"nodeType":"YulFunctionCall","src":"4763:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"4783:2:21","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4756:6:21"},"nodeType":"YulFunctionCall","src":"4756:30:21"},"nodeType":"YulExpressionStatement","src":"4756:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4806:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4817:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4802:3:21"},"nodeType":"YulFunctionCall","src":"4802:18:21"},{"hexValue":"5369676e617475726573206d75737420626520756e6971756520616e6420696e","kind":"string","nodeType":"YulLiteral","src":"4822:34:21","type":"","value":"Signatures must be unique and in"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4795:6:21"},"nodeType":"YulFunctionCall","src":"4795:62:21"},"nodeType":"YulExpressionStatement","src":"4795:62:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4877:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4888:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4873:3:21"},"nodeType":"YulFunctionCall","src":"4873:18:21"},{"hexValue":"20696e6372656173696e67206f72646572","kind":"string","nodeType":"YulLiteral","src":"4893:19:21","type":"","value":" increasing order"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4866:6:21"},"nodeType":"YulFunctionCall","src":"4866:47:21"},"nodeType":"YulExpressionStatement","src":"4866:47:21"},{"nodeType":"YulAssignment","src":"4922:27:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4934:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4945:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4930:3:21"},"nodeType":"YulFunctionCall","src":"4930:19:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4922:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4693:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4707:4:21","type":""}],"src":"4542:413:21"},{"body":{"nodeType":"YulBlock","src":"5007:88:21","statements":[{"body":{"nodeType":"YulBlock","src":"5038:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5040:16:21"},"nodeType":"YulFunctionCall","src":"5040:18:21"},"nodeType":"YulExpressionStatement","src":"5040:18:21"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5023:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5034:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5030:3:21"},"nodeType":"YulFunctionCall","src":"5030:6:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5020:2:21"},"nodeType":"YulFunctionCall","src":"5020:17:21"},"nodeType":"YulIf","src":"5017:43:21"},{"nodeType":"YulAssignment","src":"5069:20:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5080:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"5087:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5076:3:21"},"nodeType":"YulFunctionCall","src":"5076:13:21"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5069:3:21"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4989:5:21","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"4999:3:21","type":""}],"src":"4960:135:21"},{"body":{"nodeType":"YulBlock","src":"5132:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5149:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5156:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5161:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5152:3:21"},"nodeType":"YulFunctionCall","src":"5152:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5142:6:21"},"nodeType":"YulFunctionCall","src":"5142:31:21"},"nodeType":"YulExpressionStatement","src":"5142:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5189:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5192:4:21","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:21"},"nodeType":"YulFunctionCall","src":"5182:15:21"},"nodeType":"YulExpressionStatement","src":"5182:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5213:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5216:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5206:6:21"},"nodeType":"YulFunctionCall","src":"5206:15:21"},"nodeType":"YulExpressionStatement","src":"5206:15:21"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"5100:127:21"},{"body":{"nodeType":"YulBlock","src":"5333:76:21","statements":[{"nodeType":"YulAssignment","src":"5343:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5355:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5366:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5351:3:21"},"nodeType":"YulFunctionCall","src":"5351:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5343:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5385:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"5396:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5378:6:21"},"nodeType":"YulFunctionCall","src":"5378:25:21"},"nodeType":"YulExpressionStatement","src":"5378:25:21"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5302:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5313:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5324:4:21","type":""}],"src":"5232:177:21"},{"body":{"nodeType":"YulBlock","src":"5463:79:21","statements":[{"nodeType":"YulAssignment","src":"5473:17:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5485:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"5488:1:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5481:3:21"},"nodeType":"YulFunctionCall","src":"5481:9:21"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5473:4:21"}]},{"body":{"nodeType":"YulBlock","src":"5514:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5516:16:21"},"nodeType":"YulFunctionCall","src":"5516:18:21"},"nodeType":"YulExpressionStatement","src":"5516:18:21"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"5505:4:21"},{"name":"x","nodeType":"YulIdentifier","src":"5511:1:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5502:2:21"},"nodeType":"YulFunctionCall","src":"5502:11:21"},"nodeType":"YulIf","src":"5499:37:21"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5445:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"5448:1:21","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5454:4:21","type":""}],"src":"5414:128:21"},{"body":{"nodeType":"YulBlock","src":"5579:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5596:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5603:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5608:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5599:3:21"},"nodeType":"YulFunctionCall","src":"5599:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5589:6:21"},"nodeType":"YulFunctionCall","src":"5589:31:21"},"nodeType":"YulExpressionStatement","src":"5589:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5636:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5639:4:21","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5629:6:21"},"nodeType":"YulFunctionCall","src":"5629:15:21"},"nodeType":"YulExpressionStatement","src":"5629:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5660:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5663:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5653:6:21"},"nodeType":"YulFunctionCall","src":"5653:15:21"},"nodeType":"YulExpressionStatement","src":"5653:15:21"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"5547:127:21"},{"body":{"nodeType":"YulBlock","src":"5860:217:21","statements":[{"nodeType":"YulAssignment","src":"5870:27:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5882:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5893:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5878:3:21"},"nodeType":"YulFunctionCall","src":"5878:19:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5870:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5913:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"5924:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5906:6:21"},"nodeType":"YulFunctionCall","src":"5906:25:21"},"nodeType":"YulExpressionStatement","src":"5906:25:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5962:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5947:3:21"},"nodeType":"YulFunctionCall","src":"5947:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5971:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"5979:4:21","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5967:3:21"},"nodeType":"YulFunctionCall","src":"5967:17:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5940:6:21"},"nodeType":"YulFunctionCall","src":"5940:45:21"},"nodeType":"YulExpressionStatement","src":"5940:45:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6005:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6016:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6001:3:21"},"nodeType":"YulFunctionCall","src":"6001:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"6021:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5994:6:21"},"nodeType":"YulFunctionCall","src":"5994:34:21"},"nodeType":"YulExpressionStatement","src":"5994:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6048:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6059:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6044:3:21"},"nodeType":"YulFunctionCall","src":"6044:18:21"},{"name":"value3","nodeType":"YulIdentifier","src":"6064:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6037:6:21"},"nodeType":"YulFunctionCall","src":"6037:34:21"},"nodeType":"YulExpressionStatement","src":"6037:34:21"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5805:9:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5816:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5824:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5832:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5840:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5851:4:21","type":""}],"src":"5679:398:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let _1 := 32\n let offset := calldataload(add(headStart, _1))\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let dst := allocate_memory(add(_5, _1))\n let dst_1 := dst\n mstore(dst, _4)\n dst := add(dst, _1)\n let srcEnd := add(add(_3, _5), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, _2)\n {\n let _6 := 0\n revert(_6, _6)\n }\n mstore(dst, abi_decode_bytes(add(add(_3, innerOffset), _1), dataEnd))\n dst := add(dst, _1)\n }\n value1 := dst_1\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 49)\n mstore(add(headStart, 64), \"Signatures must be unique and in\")\n mstore(add(headStart, 96), \" increasing order\")\n tail := add(headStart, 128)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7947C3FA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x7947C3FA EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB7AB4DB5 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xED612F8C EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xFACD743B EQ PUSH2 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x333DAF92 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x3E99D941 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x40A141FF EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4D238C8E EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C8 JUMP JUMPDEST PUSH2 0x161 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x188 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xE9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x194 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xFC CALLDATASIZE PUSH1 0x4 PUSH2 0x80A JUMP JUMPDEST PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x8D9 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x2B3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C DUP5 DUP5 PUSH2 0x2BF JUMP JUMPDEST SWAP1 POP PUSH2 0x157 DUP2 PUSH2 0x2B3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16B PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x176 SWAP1 PUSH1 0x2 PUSH2 0x93C JUMP JUMPDEST PUSH2 0x181 DUP4 PUSH1 0x3 PUSH2 0x93C JUMP JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x2E9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x305 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 PUSH2 0x1DC DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C5 JUMPI PUSH2 0x1C5 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 PUSH2 0x2BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GT PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E617475726573206D75737420626520756E6971756520616E6420696E PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1034B731B932B0B9B4B7339037B93232B9 PUSH1 0x79 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x267 DUP2 PUSH2 0x2B3 JUMP JUMPDEST PUSH2 0x277 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x283 DUP2 PUSH2 0x969 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A5 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x31A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2CF DUP7 DUP7 PUSH2 0x353 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2DF DUP3 DUP3 PUSH2 0x3A0 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x45D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x550 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x2FE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x38D JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x37F DUP9 DUP3 DUP6 DUP6 PUSH2 0x5FB JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x399 JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3B4 JUMPI PUSH2 0x3B4 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3BD JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3D1 JUMPI PUSH2 0x3D1 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x403 JUMPI PUSH2 0x403 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x438 JUMPI PUSH2 0x438 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x459 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x546 JUMPI PUSH1 0x0 PUSH2 0x481 PUSH1 0x1 DUP4 PUSH2 0x998 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x495 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x998 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 EQ PUSH2 0x4FA JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4B5 JUMPI PUSH2 0x4B5 PUSH2 0x953 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D8 JUMPI PUSH2 0x4D8 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x50B JUMPI PUSH2 0x50B PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x597 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x15B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x5DB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x636 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x68A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6B6 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x6C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x709 JUMPI PUSH2 0x709 PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x722 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x73C JUMPI PUSH2 0x73C PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x74F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x6E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7BE DUP6 DUP3 DUP7 ADD PUSH2 0x711 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x83D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0x6CA JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x872 DUP6 DUP3 ADD PUSH2 0x6E0 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP11 DUP5 GT ISZERO PUSH2 0x88C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x8C8 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0x8AA JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x8B8 DUP13 DUP10 DUP4 DUP11 ADD ADD PUSH2 0x711 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0x892 JUMP JUMPDEST DUP1 SWAP8 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x91A JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x97B JUMPI PUSH2 0x97B PUSH2 0x926 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PC CALL 0xEF GT DUP13 DUP15 DUP9 CALLVALUE SWAP5 0xFC DUP5 SLT 0xFB NUMBER TIMESTAMP SWAP16 DUP12 PUSH9 0x4FCB90D8F0F31A281D SWAP11 0xC0 0xCD CALLER PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"276:2015:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:239;;;;;;:::i;:::-;;:::i;:::-;;;1519:14:21;;1512:22;1494:41;;1482:2;1467:18;2050:239:19;;;;;;;;1922:122;;;;;;:::i;:::-;;:::i;808:109::-;;;;;;:::i;:::-;;:::i;670:103::-;;;;;;:::i;:::-;;:::i;1309:607::-;;;;;;:::i;:::-;;:::i;973:108::-;;;:::i;:::-;;;;;;;:::i;1205:98::-;;;:::i;:::-;;;4069:25:21;;;4057:2;4042:18;1205:98:19;3923:177:21;1087:112:19;;;;;;:::i;:::-;;:::i;2050:239::-;2174:4;;2207:39;:20;2236:9;2207:28;:39::i;:::-;2190:56;;2263:19;2275:6;2263:11;:19::i;:::-;2256:26;;;2050:239;;;;;:::o;1922:122::-;1981:4;2016:17;:15;:17::i;:::-;:21;;2036:1;2016:21;:::i;:::-;2004:9;:5;2012:1;2004:9;:::i;:::-;:33;;1922:122;-1:-1:-1;;1922:122:19:o;808:109::-;863:4;886:24;863:4;905;886:18;:24::i;670:103::-;722:4;745:21;722:4;761;745:15;:21::i;1309:607::-;1443:4;;;1501:388;1522:10;:17;1518:1;:21;1501:388;;;1560:14;1577:43;1606:10;1617:1;1606:13;;;;;;;;:::i;:::-;;;;;;;1577:20;:28;;:43;;;;:::i;:::-;1560:60;;1668:10;-1:-1:-1;;;;;1659:19:19;:6;-1:-1:-1;;;;;1659:19:19;;1634:127;;;;-1:-1:-1;;;1634:127:19;;4744:2:21;1634:127:19;;;4726:21:21;4783:2;4763:18;;;4756:30;4822:34;4802:18;;;4795:62;-1:-1:-1;;;4873:18:21;;;4866:47;4930:19;;1634:127:19;;;;;;;;;1780:19;1792:6;1780:11;:19::i;:::-;1775:71;;1826:5;1819:12;;;;;;;1775:71;1872:6;-1:-1:-1;1541:3:19;;;;:::i;:::-;;;;1501:388;;;-1:-1:-1;1905:4:19;;1309:607;-1:-1:-1;;;;1309:607:19:o;973:108::-;1019:16;1054:20;:11;:18;:20::i;:::-;1047:27;;973:108;:::o;1205:98::-;1253:4;1276:20;:11;:18;:20::i;1087:112::-;1143:4;1166:26;1143:4;1187;1166:20;:26::i;3702:255:9:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:9;;3702:255;-1:-1:-1;;;;3702:255:9:o;8634:156:13:-;8707:4;8730:53;8738:3;-1:-1:-1;;;;;8758:23:13;;8730:7;:53::i;:::-;8723:60;8634:156;-1:-1:-1;;;8634:156:13:o;8316:150::-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:13;;8409:4;:50::i;10270:300::-;10333:16;10361:22;10386:19;10394:3;10386:7;:19::i;9117:115::-;9180:7;9206:19;9214:3;4556:18;;4474:107;8871:165;-1:-1:-1;;;;;9004:23:13;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;4264:129;2129:766:9;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:9;;2811:1;;-1:-1:-1;2815:35:9;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:9;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:9;;;;;4069:25:21;;;4042:18;;7550:46:9;3923:177:21;7479:243:9;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:9;;;;;4069:25:21;;;4042:18;;7679:32:9;3923:177:21;7613:109:9;7196:532;;:::o;2815:1368:13:-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:13;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;2241:406;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:13;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:13;2618:12;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;5140:1530:9:-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:9;;-1:-1:-1;6301:30:9;;-1:-1:-1;6333:1:9;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;5906:25:21;;;5979:4;5967:17;;5947:18;;;5940:45;;;;6001:18;;;5994:34;;;6044:18;;;6037:34;;;6457:24:9;;5878:19:21;;6457:24:9;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:9;;-1:-1:-1;;6457:24:9;;;-1:-1:-1;;;;;;;6495:20:9;;6491:113;;-1:-1:-1;6547:1:9;;-1:-1:-1;6551:29:9;;-1:-1:-1;6547:1:9;;-1:-1:-1;6531:62:9;;6491:113;6622:6;-1:-1:-1;6630:20:9;;-1:-1:-1;6630:20:9;;-1:-1:-1;5140:1530:9;;;;;;;;;:::o;14:127:21:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:21;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:21:o;426:530::-;468:5;521:3;514:4;506:6;502:17;498:27;488:55;;539:1;536;529:12;488:55;575:6;562:20;601:18;597:2;594:26;591:52;;;623:18;;:::i;:::-;667:55;710:2;691:13;;-1:-1:-1;;687:27:21;716:4;683:38;667:55;:::i;:::-;747:2;738:7;731:19;793:3;786:4;781:2;773:6;769:15;765:26;762:35;759:55;;;810:1;807;800:12;759:55;875:2;868:4;860:6;856:17;849:4;840:7;836:18;823:55;923:1;898:16;;;916:4;894:27;887:38;;;;902:7;426:530;-1:-1:-1;;;426:530:21:o;961:388::-;1038:6;1046;1099:2;1087:9;1078:7;1074:23;1070:32;1067:52;;;1115:1;1112;1105:12;1067:52;1151:9;1138:23;1128:33;;1212:2;1201:9;1197:18;1184:32;1239:18;1231:6;1228:30;1225:50;;;1271:1;1268;1261:12;1225:50;1294:49;1335:7;1326:6;1315:9;1311:22;1294:49;:::i;:::-;1284:59;;;961:388;;;;;:::o;1546:180::-;1605:6;1658:2;1646:9;1637:7;1633:23;1629:32;1626:52;;;1674:1;1671;1664:12;1626:52;-1:-1:-1;1697:23:21;;1546:180;-1:-1:-1;1546:180:21:o;1731:286::-;1790:6;1843:2;1831:9;1822:7;1818:23;1814:32;1811:52;;;1859:1;1856;1849:12;1811:52;1885:23;;-1:-1:-1;;;;;1937:31:21;;1927:42;;1917:70;;1983:1;1980;1973:12;2022:1233;2124:6;2132;2185:2;2173:9;2164:7;2160:23;2156:32;2153:52;;;2201:1;2198;2191:12;2153:52;2237:9;2224:23;2214:33;;2266:2;2319;2308:9;2304:18;2291:32;2342:18;2383:2;2375:6;2372:14;2369:34;;;2399:1;2396;2389:12;2369:34;2437:6;2426:9;2422:22;2412:32;;2482:7;2475:4;2471:2;2467:13;2463:27;2453:55;;2504:1;2501;2494:12;2453:55;2540:2;2527:16;2562:2;2558;2555:10;2552:36;;;2568:18;;:::i;:::-;2614:2;2611:1;2607:10;2637:28;2661:2;2657;2653:11;2637:28;:::i;:::-;2699:15;;;2769:11;;;2765:20;;;2730:12;;;;2797:19;;;2794:39;;;2829:1;2826;2819:12;2794:39;2861:2;2857;2853:11;2842:22;;2873:352;2889:6;2884:3;2881:15;2873:352;;;2975:3;2962:17;3011:2;2998:11;2995:19;2992:109;;;3055:1;3084:2;3080;3073:14;2992:109;3126:56;3174:7;3169:2;3155:11;3151:2;3147:20;3143:29;3126:56;:::i;:::-;3114:69;;-1:-1:-1;2906:12:21;;;;3203;;;;2873:352;;;3244:5;3234:15;;;;;;;;;2022:1233;;;;;:::o;3260:658::-;3431:2;3483:21;;;3553:13;;3456:18;;;3575:22;;;3402:4;;3431:2;3654:15;;;;3628:2;3613:18;;;3402:4;3697:195;3711:6;3708:1;3705:13;3697:195;;;3776:13;;-1:-1:-1;;;;;3772:39:21;3760:52;;3867:15;;;;3832:12;;;;3808:1;3726:9;3697:195;;;-1:-1:-1;3909:3:21;;3260:658;-1:-1:-1;;;;;;3260:658:21:o;4105:127::-;4166:10;4161:3;4157:20;4154:1;4147:31;4197:4;4194:1;4187:15;4221:4;4218:1;4211:15;4237:168;4310:9;;;4341;;4358:15;;;4352:22;;4338:37;4328:71;;4379:18;;:::i;4410:127::-;4471:10;4466:3;4462:20;4459:1;4452:31;4502:4;4499:1;4492:15;4526:4;4523:1;4516:15;4960:135;4999:3;5020:17;;;5017:43;;5040:18;;:::i;:::-;-1:-1:-1;5087:1:21;5076:13;;4960:135::o;5100:127::-;5161:10;5156:3;5152:20;5149:1;5142:31;5192:4;5189:1;5182:15;5216:4;5213:1;5206:15;5414:128;5481:9;;;5502:11;;;5499:37;;;5516:18;;:::i;5547:127::-;5608:10;5603:3;5599:20;5596:1;5589:31;5639:4;5636:1;5629:15;5663:4;5660:1;5653:15"},"methodIdentifiers":{"addValidator(address)":"4d238c8e","getValidators()":"b7ab4db5","hasSupermajority(uint256)":"3e99d941","isValidator(address)":"facd743b","removeValidator(address)":"40a141ff","validateSignature(bytes32,bytes)":"333daf92","validateUniqueSignatures(bytes32,bytes[])":"7947c3fa","validatorsCount()":"ed612f8c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"hasSupermajority\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethSignedMessageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"validateSignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethSignedMessageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateUniqueSignatures\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ValidatorManager.sol\":\"ValidatorManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]}},\"version\":1}"}},"hardhat/console.sol":{"console":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:68934:20;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:20:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json b/products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/Bridged.sol/Bridged.json b/products/bridge/artifacts/contracts/Bridged.sol/Bridged.json new file mode 100644 index 000000000..05ca409de --- /dev/null +++ b/products/bridge/artifacts/contracts/Bridged.sol/Bridged.json @@ -0,0 +1,105 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Bridged", + "sourceName": "contracts/Bridged.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "dispatched", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Relayer", + "name": "relayer", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "queried", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x", + "deployedBytecode": "0x", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json b/products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/Collector.sol/Collector.json b/products/bridge/artifacts/contracts/Collector.sol/Collector.json new file mode 100644 index 000000000..0ea2c47b2 --- /dev/null +++ b/products/bridge/artifacts/contracts/Collector.sol/Collector.json @@ -0,0 +1,59 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Collector", + "sourceName": "contracts/Collector.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "contract ValidatorManager", + "name": "_validatorManager", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "Echoed", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "echo", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b5060405161037338038061037383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102e0806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json new file mode 100644 index 000000000..4b68032bc --- /dev/null +++ b/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json @@ -0,0 +1,407 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "BridgedERC20", + "sourceName": "contracts/ERC20Bridge.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + }, + { + "internalType": "address", + "name": "bridge_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000de138038062000de18339810160408190526200003491620002c2565b82826003620000448382620003de565b506004620000538282620003de565b5050600580546001600160a01b0319166001600160a01b038416179055506200007f336103e862000088565b505050620004d2565b6001600160a01b038216620000b85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000c660008383620000ca565b5050565b6001600160a01b038316620000f9578060026000828254620000ed9190620004aa565b909155506200016d9050565b6001600160a01b038316600090815260208190526040902054818110156200014e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000af565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200018b57600280548290039055620001aa565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001f091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022557600080fd5b81516001600160401b0380821115620002425762000242620001fd565b604051601f8301601f19908116603f011681019082821181831017156200026d576200026d620001fd565b816040528381526020925086838588010111156200028a57600080fd5b600091505b83821015620002ae57858201830151818301840152908201906200028f565b600093810190920192909252949350505050565b600080600060608486031215620002d857600080fd5b83516001600160401b0380821115620002f057600080fd5b620002fe8783880162000213565b945060208601519150808211156200031557600080fd5b50620003248682870162000213565b604086015190935090506001600160a01b03811681146200034457600080fd5b809150509250925092565b600181811c908216806200036457607f821691505b6020821081036200038557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d957600081815260208120601f850160051c81016020861015620003b45750805b601f850160051c820191505b81811015620003d557828155600101620003c0565b5050505b505050565b81516001600160401b03811115620003fa57620003fa620001fd565b62000412816200040b84546200034f565b846200038b565b602080601f8311600181146200044a5760008415620004315750858301515b600019600386901b1c1916600185901b178555620003d5565b600085815260208120601f198616915b828110156200047b578886015182559484019460019091019084016200045a565b50858210156200049a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004cc57634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004e26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json new file mode 100644 index 000000000..1a49533a4 --- /dev/null +++ b/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json @@ -0,0 +1,230 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ERC20Bridge", + "sourceName": "contracts/ERC20Bridge.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "Started", + "type": "event" + }, + { + "anonymous": false, + "inputs": [], + "name": "Succeeded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "bridge", + "outputs": [ + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "dispatched", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "exit", + "outputs": [ + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "res", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "finish", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Relayer", + "name": "relayer", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "queried", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610c2b806100206000396000f3fe6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json new file mode 100644 index 000000000..daea8b278 --- /dev/null +++ b/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json @@ -0,0 +1,397 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "MyToken", + "sourceName": "contracts/ERC20Bridge.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "bridge_", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "allowance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientAllowance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "ERC20InsufficientBalance", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "approver", + "type": "address" + } + ], + "name": "ERC20InvalidApprover", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "receiver", + "type": "address" + } + ], + "name": "ERC20InvalidReceiver", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "sender", + "type": "address" + } + ], + "name": "ERC20InvalidSender", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "ERC20InvalidSpender", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "spender", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "burnFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "decimals", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d1838038062000d1883398101604081905262000034916200023e565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b815250828282816003908162000084919062000315565b50600462000093828262000315565b5050600580546001600160a01b0319166001600160a01b03841617905550620000bf336103e8620000c9565b5050505062000409565b6001600160a01b038216620000f95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b62000107600083836200010b565b5050565b6001600160a01b0383166200013a5780600260008282546200012e9190620003e1565b90915550620001ae9050565b6001600160a01b038316600090815260208190526040902054818110156200018f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001cc57600280548290039055620001eb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023191815260200190565b60405180910390a3505050565b6000602082840312156200025157600080fd5b81516001600160a01b03811681146200026957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029b57607f821691505b602082108103620002bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031057600081815260208120601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b0381111562000331576200033162000270565b620003498162000342845462000286565b84620002c2565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200040357634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json b/products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/Relayer.sol/Relayer.json b/products/bridge/artifacts/contracts/Relayer.sol/Relayer.json new file mode 100644 index 000000000..c3de5dd56 --- /dev/null +++ b/products/bridge/artifacts/contracts/Relayer.sol/Relayer.json @@ -0,0 +1,346 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Relayer", + "sourceName": "contracts/Relayer.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "contract ValidatorManager", + "name": "_validatorManager", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "Create2EmptyBytecode", + "type": "error" + }, + { + "inputs": [], + "name": "Create2FailedDeployment", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "needed", + "type": "uint256" + } + ], + "name": "Create2InsufficientBalance", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes4", + "name": "callback", + "type": "bytes4" + }, + { + "indexed": false, + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "response", + "type": "bytes" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "Dispatched", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "call", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bool", + "name": "readonly", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bytes4", + "name": "callback", + "type": "bytes4" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "Relayed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "call", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "response", + "type": "bytes" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "Resumed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "twin", + "type": "address" + } + ], + "name": "TwinDeployment", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "bytecode", + "type": "bytes" + } + ], + "name": "deployTwin", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + }, + { + "internalType": "bytes4", + "name": "callback", + "type": "bytes4" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "bytes[]", + "name": "signatures", + "type": "bytes[]" + } + ], + "name": "dispatch", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "query", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + }, + { + "internalType": "bool", + "name": "readonly", + "type": "bool" + }, + { + "internalType": "bytes4", + "name": "callback", + "type": "bytes4" + } + ], + "name": "relay", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "caller", + "type": "address" + }, + { + "internalType": "bytes4", + "name": "callback", + "type": "bytes4" + }, + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + }, + { + "internalType": "bytes[]", + "name": "signatures", + "type": "bytes[]" + } + ], + "name": "resume", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506040516112f03803806112f083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61125d806100936000396000f3fe60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/Test.sol/Target.dbg.json b/products/bridge/artifacts/contracts/Test.sol/Target.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/Test.sol/Target.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/Test.sol/Target.json b/products/bridge/artifacts/contracts/Test.sol/Target.json new file mode 100644 index 000000000..b1a058985 --- /dev/null +++ b/products/bridge/artifacts/contracts/Test.sol/Target.json @@ -0,0 +1,30 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Target", + "sourceName": "contracts/Test.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + } + ], + "name": "test", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506101f9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json b/products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/Test.sol/Twin.json b/products/bridge/artifacts/contracts/Test.sol/Twin.json new file mode 100644 index 000000000..fd9b025fd --- /dev/null +++ b/products/bridge/artifacts/contracts/Test.sol/Twin.json @@ -0,0 +1,177 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "Twin", + "sourceName": "contracts/Test.sol", + "abi": [ + { + "inputs": [], + "name": "InvalidInitialization", + "type": "error" + }, + { + "inputs": [], + "name": "NotInitializing", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "Failed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint64", + "name": "version", + "type": "uint64" + } + ], + "name": "Initialized", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "Succeeded", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "dispatched", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "res", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "nonce", + "type": "uint256" + } + ], + "name": "finish", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract Relayer", + "name": "relayer", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "bytes", + "name": "call", + "type": "bytes" + } + ], + "name": "queried", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "target", + "type": "address" + }, + { + "internalType": "uint256", + "name": "num", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "readonly", + "type": "bool" + } + ], + "name": "start", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50610b33806100206000396000f3fe60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033", + "deployedBytecode": "0x60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json b/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json b/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json new file mode 100644 index 000000000..8bf408501 --- /dev/null +++ b/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json @@ -0,0 +1,199 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "ValidatorManager", + "sourceName": "contracts/ValidatorManager.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address[]", + "name": "validators", + "type": "address[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "ECDSAInvalidSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "ECDSAInvalidSignatureLength", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "s", + "type": "bytes32" + } + ], + "name": "ECDSAInvalidSignatureS", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "addValidator", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getValidators", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "count", + "type": "uint256" + } + ], + "name": "hasSupermajority", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "isValidator", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "user", + "type": "address" + } + ], + "name": "removeValidator", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "ethSignedMessageHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "validateSignature", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "ethSignedMessageHash", + "type": "bytes32" + }, + { + "internalType": "bytes[]", + "name": "signatures", + "type": "bytes[]" + } + ], + "name": "validateUniqueSignatures", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "validatorsCount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000c5a38038062000c5a833981016040819052620000349162000143565b60005b815181101562000084576200006e8282815181106200005a576200005a62000215565b60200260200101516200008c60201b60201c565b50806200007b816200022b565b91505062000037565b505062000253565b60006200009a8183620000a0565b92915050565b6000620000b7836001600160a01b038416620000be565b9392505050565b600081815260018301602052604081205462000107575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200009a565b5060006200009a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200013e57600080fd5b919050565b600060208083850312156200015757600080fd5b82516001600160401b03808211156200016f57600080fd5b818501915085601f8301126200018457600080fd5b81518181111562000199576200019962000110565b8060051b604051601f19603f83011681018181108582111715620001c157620001c162000110565b604052918252848201925083810185019188831115620001e057600080fd5b938501935b828510156200020957620001f98562000126565b84529385019392850192620001e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200024c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6109f780620002636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/artifacts/hardhat/console.sol/console.dbg.json b/products/bridge/artifacts/hardhat/console.sol/console.dbg.json new file mode 100644 index 000000000..25f298297 --- /dev/null +++ b/products/bridge/artifacts/hardhat/console.sol/console.dbg.json @@ -0,0 +1,4 @@ +{ + "_format": "hh-sol-dbg-1", + "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" +} diff --git a/products/bridge/artifacts/hardhat/console.sol/console.json b/products/bridge/artifacts/hardhat/console.sol/console.json new file mode 100644 index 000000000..48515ec2e --- /dev/null +++ b/products/bridge/artifacts/hardhat/console.sol/console.json @@ -0,0 +1,10 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "console", + "sourceName": "hardhat/console.sol", + "abi": [], + "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/products/bridge/cache/solidity-files-cache.json b/products/bridge/cache/solidity-files-cache.json new file mode 100644 index 000000000..5734bc7bc --- /dev/null +++ b/products/bridge/cache/solidity-files-cache.json @@ -0,0 +1,1114 @@ +{ + "_format": "hh-sol-cache-2", + "files": { + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Bridged.sol": { + "lastModificationDate": 1700055175733, + "contentHash": "7a13502b799573edd86f1030b5c5e30e", + "sourceName": "contracts/Bridged.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [ + "hardhat/console.sol", + "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "./Relayer.sol" + ], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Bridged"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Relayer.sol": { + "lastModificationDate": 1700055175734, + "contentHash": "309be6db2dd1d097c39462013a8f8d11", + "sourceName": "contracts/Relayer.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [ + "hardhat/console.sol", + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "@openzeppelin/contracts/utils/Create2.sol", + "./ValidatorManager.sol", + "./Bridged.sol" + ], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Relayer"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/hardhat/console.sol": { + "lastModificationDate": 1700055250606, + "contentHash": "896f68942c3a20e9ae3c3c5bfd3add54", + "sourceName": "hardhat/console.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": [">=0.4.22 <0.9.0"], + "artifacts": ["console"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": { + "lastModificationDate": 1700055252473, + "contentHash": "f0cedd674b4863ee90d1521a92ab82df", + "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Initializable"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/ValidatorManager.sol": { + "lastModificationDate": 1700055175735, + "contentHash": "4f41f53a39782681d4673b50cc13e5ab", + "sourceName": "contracts/ValidatorManager.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [ + "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol" + ], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ValidatorManager"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/Create2.sol": { + "lastModificationDate": 1700055252388, + "contentHash": "30964d662b27a7894b1cf10058dc8d6b", + "sourceName": "@openzeppelin/contracts/utils/Create2.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Create2"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "lastModificationDate": 1700055252478, + "contentHash": "9e5eec59eaffa554d6cca561dcb914eb", + "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["../Strings.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["MessageHashUtils"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "lastModificationDate": 1700055252390, + "contentHash": "b96e0d7a3c2b185342c7d083d765b61f", + "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ECDSA"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { + "lastModificationDate": 1700055252391, + "contentHash": "99b208f3f285702e96243d329411c5de", + "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["EnumerableSet"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "lastModificationDate": 1700055252495, + "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["./math/Math.sol", "./math/SignedMath.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Strings"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { + "lastModificationDate": 1700055252476, + "contentHash": "718fa8ba0ff269c92e364c1429d9de57", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Math"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { + "lastModificationDate": 1700055252494, + "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["SignedMath"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Test.sol": { + "lastModificationDate": 1700055175735, + "contentHash": "4f0475727a1565c4e64077ee1c4bcbc4", + "sourceName": "contracts/Test.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["./Bridged.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Target", "Twin"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/ERC20Bridge.sol": { + "lastModificationDate": 1700055175734, + "contentHash": "a7077ed111f36fc456151b64d88d9ffc", + "sourceName": "contracts/ERC20Bridge.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [ + "./Bridged.sol", + "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol" + ], + "versionPragmas": ["^0.8.20"], + "artifacts": ["BridgedERC20", "ERC20Bridge", "MyToken"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "lastModificationDate": 1700055252399, + "contentHash": "c6375ef25e84c90b3d15f9ec4eef218f", + "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [ + "./IERC20.sol", + "./extensions/IERC20Metadata.sol", + "../../utils/Context.sol", + "../../interfaces/draft-IERC6093.sol" + ], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ERC20"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol": { + "lastModificationDate": 1700055252401, + "contentHash": "273d8d24b06f67207dd5f35c3a0c1086", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["../ERC20.sol", "../../../utils/Context.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ERC20Burnable"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lastModificationDate": 1700055252436, + "contentHash": "5517c8678c18eb1a8ba58810e7ca39ca", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["IERC20"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/Context.sol": { + "lastModificationDate": 1700055252388, + "contentHash": "01c847e2af51f468cb66d9ed83bc3cec", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Context"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lastModificationDate": 1700055252436, + "contentHash": "4c02fa6f7ae7b6c289cef80424f0c875", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["../IERC20.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["IERC20Metadata"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "lastModificationDate": 1700055252389, + "contentHash": "4aefc698f77ecbace7f401257dfe182d", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["IERC1155Errors", "IERC20Errors", "IERC721Errors"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Collector.sol": { + "lastModificationDate": 1700055175734, + "contentHash": "e24f4781815d2198806ae6cb792e6a50", + "sourceName": "contracts/Collector.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["./ValidatorManager.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Collector"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/hardhat@2.19.0_ts-node@10.9.1_typescript@4.9.5/node_modules/hardhat/console.sol": { + "lastModificationDate": 1700055411494, + "contentHash": "896f68942c3a20e9ae3c3c5bfd3add54", + "sourceName": "hardhat/console.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": [">=0.4.22 <0.9.0"], + "artifacts": ["console"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": { + "lastModificationDate": 1700055412337, + "contentHash": "f0cedd674b4863ee90d1521a92ab82df", + "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Initializable"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/Create2.sol": { + "lastModificationDate": 1700055412320, + "contentHash": "30964d662b27a7894b1cf10058dc8d6b", + "sourceName": "@openzeppelin/contracts/utils/Create2.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Create2"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { + "lastModificationDate": 1700055412337, + "contentHash": "9e5eec59eaffa554d6cca561dcb914eb", + "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["../Strings.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["MessageHashUtils"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { + "lastModificationDate": 1700055412320, + "contentHash": "b96e0d7a3c2b185342c7d083d765b61f", + "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ECDSA"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { + "lastModificationDate": 1700055412321, + "contentHash": "99b208f3f285702e96243d329411c5de", + "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["EnumerableSet"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/Strings.sol": { + "lastModificationDate": 1700055412340, + "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", + "sourceName": "@openzeppelin/contracts/utils/Strings.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["./math/Math.sol", "./math/SignedMath.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Strings"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { + "lastModificationDate": 1700055412340, + "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", + "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["SignedMath"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { + "lastModificationDate": 1700055412337, + "contentHash": "718fa8ba0ff269c92e364c1429d9de57", + "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Math"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { + "lastModificationDate": 1700055412323, + "contentHash": "c6375ef25e84c90b3d15f9ec4eef218f", + "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [ + "./IERC20.sol", + "./extensions/IERC20Metadata.sol", + "../../utils/Context.sol", + "../../interfaces/draft-IERC6093.sol" + ], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ERC20"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol": { + "lastModificationDate": 1700055412323, + "contentHash": "273d8d24b06f67207dd5f35c3a0c1086", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["../ERC20.sol", "../../../utils/Context.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["ERC20Burnable"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { + "lastModificationDate": 1700055412320, + "contentHash": "4aefc698f77ecbace7f401257dfe182d", + "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["IERC1155Errors", "IERC20Errors", "IERC721Errors"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/Context.sol": { + "lastModificationDate": 1700055412319, + "contentHash": "01c847e2af51f468cb66d9ed83bc3cec", + "sourceName": "@openzeppelin/contracts/utils/Context.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["Context"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { + "lastModificationDate": 1700055412332, + "contentHash": "5517c8678c18eb1a8ba58810e7ca39ca", + "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": [], + "versionPragmas": ["^0.8.20"], + "artifacts": ["IERC20"] + }, + "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { + "lastModificationDate": 1700055412332, + "contentHash": "4c02fa6f7ae7b6c289cef80424f0c875", + "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", + "solcConfig": { + "version": "0.8.20", + "settings": { + "optimizer": { + "enabled": true, + "runs": 200 + }, + "evmVersion": "paris", + "outputSelection": { + "*": { + "*": [ + "abi", + "evm.bytecode", + "evm.deployedBytecode", + "evm.methodIdentifiers", + "metadata" + ], + "": ["ast"] + } + } + } + }, + "imports": ["../IERC20.sol"], + "versionPragmas": ["^0.8.20"], + "artifacts": ["IERC20Metadata"] + } + } +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/index.ts new file mode 100644 index 000000000..a45cf9e1b --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/index.ts @@ -0,0 +1,11 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as interfaces from "./interfaces"; +export type { interfaces }; +import type * as proxy from "./proxy"; +export type { proxy }; +import type * as token from "./token"; +export type { token }; +import type * as utils from "./utils"; +export type { utils }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts new file mode 100644 index 000000000..959e42d83 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface IERC1155ErrorsInterface extends Interface {} + +export interface IERC1155Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC1155Errors; + waitForDeployment(): Promise; + + interface: IERC1155ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts new file mode 100644 index 000000000..04699221f --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface IERC20ErrorsInterface extends Interface {} + +export interface IERC20Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Errors; + waitForDeployment(): Promise; + + interface: IERC20ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts new file mode 100644 index 000000000..39b0d2b51 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface IERC721ErrorsInterface extends Interface {} + +export interface IERC721Errors extends BaseContract { + connect(runner?: ContractRunner | null): IERC721Errors; + waitForDeployment(): Promise; + + interface: IERC721ErrorsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts new file mode 100644 index 000000000..9415fdf59 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { IERC1155Errors } from "./IERC1155Errors"; +export type { IERC20Errors } from "./IERC20Errors"; +export type { IERC721Errors } from "./IERC721Errors"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts new file mode 100644 index 000000000..d70b374ba --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as draftIerc6093Sol from "./draft-IERC6093.sol"; +export type { draftIerc6093Sol }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts new file mode 100644 index 000000000..74cdc5faa --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as utils from "./utils"; +export type { utils }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts new file mode 100644 index 000000000..b449ea2cd --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts @@ -0,0 +1,105 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + FunctionFragment, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, +} from "../../../../common"; + +export interface InitializableInterface extends Interface { + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Initializable extends BaseContract { + connect(runner?: ContractRunner | null): Initializable; + waitForDeployment(): Promise; + + interface: InitializableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts new file mode 100644 index 000000000..5da73d032 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Initializable } from "./Initializable"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts new file mode 100644 index 000000000..46736897d --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface ERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20 extends BaseContract { + connect(runner?: ContractRunner | null): ERC20; + waitForDeployment(): Promise; + + interface: ERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts new file mode 100644 index 000000000..d800ff34b --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts @@ -0,0 +1,262 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../common"; + +export interface IERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20 extends BaseContract { + connect(runner?: ContractRunner | null): IERC20; + waitForDeployment(): Promise; + + interface: IERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts new file mode 100644 index 000000000..57787d6ce --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts @@ -0,0 +1,313 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface ERC20BurnableInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burn" + | "burnFrom" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20Burnable extends BaseContract { + connect(runner?: ContractRunner | null): ERC20Burnable; + waitForDeployment(): Promise; + + interface: ERC20BurnableInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + burn: TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + + burnFrom: TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn" + ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts new file mode 100644 index 000000000..6b5093537 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts @@ -0,0 +1,286 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../../../../common"; + +export interface IERC20MetadataInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "decimals" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface IERC20Metadata extends BaseContract { + connect(runner?: ContractRunner | null): IERC20Metadata; + waitForDeployment(): Promise; + + interface: IERC20MetadataInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + decimals: TypedContractMethod<[], [bigint], "view">; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts new file mode 100644 index 000000000..96ee12e98 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ERC20Burnable } from "./ERC20Burnable"; +export type { IERC20Metadata } from "./IERC20Metadata"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts new file mode 100644 index 000000000..cc196974a --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as extensions from "./extensions"; +export type { extensions }; +export type { ERC20 } from "./ERC20"; +export type { IERC20 } from "./IERC20"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts new file mode 100644 index 000000000..5c4062a9c --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc20 from "./ERC20"; +export type { erc20 }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts new file mode 100644 index 000000000..ff62c7b82 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../common"; + +export interface Create2Interface extends Interface {} + +export interface Create2 extends BaseContract { + connect(runner?: ContractRunner | null): Create2; + waitForDeployment(): Promise; + + interface: Create2Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts new file mode 100644 index 000000000..08a73eb05 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../common"; + +export interface StringsInterface extends Interface {} + +export interface Strings extends BaseContract { + connect(runner?: ContractRunner | null): Strings; + waitForDeployment(): Promise; + + interface: StringsInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts new file mode 100644 index 000000000..433b59f51 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface ECDSAInterface extends Interface {} + +export interface ECDSA extends BaseContract { + connect(runner?: ContractRunner | null): ECDSA; + waitForDeployment(): Promise; + + interface: ECDSAInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts new file mode 100644 index 000000000..624996257 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { ECDSA } from "./ECDSA"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts new file mode 100644 index 000000000..3251ce949 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts @@ -0,0 +1,9 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as cryptography from "./cryptography"; +export type { cryptography }; +import type * as math from "./math"; +export type { math }; +export type { Create2 } from "./Create2"; +export type { Strings } from "./Strings"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts new file mode 100644 index 000000000..cfc37039e --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + FunctionFragment, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, +} from "../../../../common"; + +export interface MathInterface extends Interface {} + +export interface Math extends BaseContract { + connect(runner?: ContractRunner | null): Math; + waitForDeployment(): Promise; + + interface: MathInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + getFunction( + key: string | FunctionFragment + ): T; + + filters: {}; +} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts new file mode 100644 index 000000000..48a816e85 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Math } from "./Math"; diff --git a/products/bridge/typechain-types/@openzeppelin/index.ts b/products/bridge/typechain-types/@openzeppelin/index.ts new file mode 100644 index 000000000..a11e4ca29 --- /dev/null +++ b/products/bridge/typechain-types/@openzeppelin/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as contracts from "./contracts"; +export type { contracts }; diff --git a/products/bridge/typechain-types/common.ts b/products/bridge/typechain-types/common.ts new file mode 100644 index 000000000..56b5f21e9 --- /dev/null +++ b/products/bridge/typechain-types/common.ts @@ -0,0 +1,131 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + FunctionFragment, + Typed, + EventFragment, + ContractTransaction, + ContractTransactionResponse, + DeferredTopicFilter, + EventLog, + TransactionRequest, + LogDescription, +} from "ethers"; + +export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> + extends DeferredTopicFilter {} + +export interface TypedContractEvent< + InputTuple extends Array = any, + OutputTuple extends Array = any, + OutputObject = any +> { + (...args: Partial): TypedDeferredTopicFilter< + TypedContractEvent + >; + name: string; + fragment: EventFragment; + getFragment(...args: Partial): EventFragment; +} + +type __TypechainAOutputTuple = T extends TypedContractEvent< + infer _U, + infer W +> + ? W + : never; +type __TypechainOutputObject = T extends TypedContractEvent< + infer _U, + infer _W, + infer V +> + ? V + : never; + +export interface TypedEventLog + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export interface TypedLogDescription + extends Omit { + args: __TypechainAOutputTuple & __TypechainOutputObject; +} + +export type TypedListener = ( + ...listenerArg: [ + ...__TypechainAOutputTuple, + TypedEventLog, + ...undefined[] + ] +) => void; + +export type MinEthersFactory = { + deploy(...a: ARGS[]): Promise; +}; + +export type GetContractTypeFromFactory = F extends MinEthersFactory< + infer C, + any +> + ? C + : never; +export type GetARGsTypeFromFactory = F extends MinEthersFactory + ? Parameters + : never; + +export type StateMutability = "nonpayable" | "payable" | "view"; + +export type BaseOverrides = Omit; +export type NonPayableOverrides = Omit< + BaseOverrides, + "value" | "blockTag" | "enableCcipRead" +>; +export type PayableOverrides = Omit< + BaseOverrides, + "blockTag" | "enableCcipRead" +>; +export type ViewOverrides = Omit; +export type Overrides = S extends "nonpayable" + ? NonPayableOverrides + : S extends "payable" + ? PayableOverrides + : ViewOverrides; + +export type PostfixOverrides, S extends StateMutability> = + | A + | [...A, Overrides]; +export type ContractMethodArgs< + A extends Array, + S extends StateMutability +> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; + +export type DefaultReturnType = R extends Array ? R[0] : R; + +// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { +export interface TypedContractMethod< + A extends Array = Array, + R = any, + S extends StateMutability = "payable" +> { + (...args: ContractMethodArgs): S extends "view" + ? Promise> + : Promise; + + name: string; + + fragment: FunctionFragment; + + getFragment(...args: ContractMethodArgs): FunctionFragment; + + populateTransaction( + ...args: ContractMethodArgs + ): Promise; + staticCall( + ...args: ContractMethodArgs + ): Promise>; + send(...args: ContractMethodArgs): Promise; + estimateGas(...args: ContractMethodArgs): Promise; + staticCallResult(...args: ContractMethodArgs): Promise; +} diff --git a/products/bridge/typechain-types/contracts/Bridged.ts b/products/bridge/typechain-types/contracts/Bridged.ts new file mode 100644 index 000000000..13279a7c3 --- /dev/null +++ b/products/bridge/typechain-types/contracts/Bridged.ts @@ -0,0 +1,162 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface BridgedInterface extends Interface { + getFunction( + nameOrSignature: "dispatched" | "initialize" | "queried" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; + + encodeFunctionData( + functionFragment: "dispatched", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "queried", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "dispatched", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "queried", data: BytesLike): Result; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Bridged extends BaseContract { + connect(runner?: ContractRunner | null): Bridged; + waitForDeployment(): Promise; + + interface: BridgedInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + dispatched: TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "payable" + >; + + initialize: TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; + + queried: TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "dispatched" + ): TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "payable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "queried" + ): TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + filters: { + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/Collector.ts b/products/bridge/typechain-types/contracts/Collector.ts new file mode 100644 index 000000000..af32e4c4c --- /dev/null +++ b/products/bridge/typechain-types/contracts/Collector.ts @@ -0,0 +1,131 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface CollectorInterface extends Interface { + getFunction(nameOrSignature: "echo"): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Echoed"): EventFragment; + + encodeFunctionData( + functionFragment: "echo", + values: [BytesLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "echo", data: BytesLike): Result; +} + +export namespace EchoedEvent { + export type InputTuple = [hash: BytesLike, signature: BytesLike]; + export type OutputTuple = [hash: string, signature: string]; + export interface OutputObject { + hash: string; + signature: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Collector extends BaseContract { + connect(runner?: ContractRunner | null): Collector; + waitForDeployment(): Promise; + + interface: CollectorInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + echo: TypedContractMethod< + [hash: BytesLike, signature: BytesLike], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "echo" + ): TypedContractMethod< + [hash: BytesLike, signature: BytesLike], + [void], + "nonpayable" + >; + + getEvent( + key: "Echoed" + ): TypedContractEvent< + EchoedEvent.InputTuple, + EchoedEvent.OutputTuple, + EchoedEvent.OutputObject + >; + + filters: { + "Echoed(bytes32,bytes)": TypedContractEvent< + EchoedEvent.InputTuple, + EchoedEvent.OutputTuple, + EchoedEvent.OutputObject + >; + Echoed: TypedContractEvent< + EchoedEvent.InputTuple, + EchoedEvent.OutputTuple, + EchoedEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts new file mode 100644 index 000000000..a449a17bc --- /dev/null +++ b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts @@ -0,0 +1,364 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface BridgedERC20Interface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burn(uint256)" + | "burn(address,uint256)" + | "burnFrom" + | "decimals" + | "mint" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burn(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "burn(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "burn(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "burn(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface BridgedERC20 extends BaseContract { + connect(runner?: ContractRunner | null): BridgedERC20; + waitForDeployment(): Promise; + + interface: BridgedERC20Interface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + "burn(uint256)": TypedContractMethod< + [value: BigNumberish], + [void], + "nonpayable" + >; + + "burn(address,uint256)": TypedContractMethod< + [from: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + burnFrom: TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn(uint256)" + ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "burn(address,uint256)" + ): TypedContractMethod< + [from: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts new file mode 100644 index 000000000..5dec8c344 --- /dev/null +++ b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts @@ -0,0 +1,318 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface ERC20BridgeInterface extends Interface { + getFunction( + nameOrSignature: + | "bridge" + | "dispatched" + | "exit" + | "finish" + | "initialize" + | "queried" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Failed" | "Initialized" | "Started" | "Succeeded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "bridge", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "dispatched", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "exit", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "finish", + values: [boolean, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "queried", + values: [AddressLike, BytesLike] + ): string; + + decodeFunctionResult(functionFragment: "bridge", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatched", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "exit", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "finish", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "queried", data: BytesLike): Result; +} + +export namespace FailedEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace StartedEvent { + export type InputTuple = [ + arg0: AddressLike, + arg1: AddressLike, + arg2: BigNumberish + ]; + export type OutputTuple = [arg0: string, arg1: string, arg2: bigint]; + export interface OutputObject { + arg0: string; + arg1: string; + arg2: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SucceededEvent { + export type InputTuple = []; + export type OutputTuple = []; + export interface OutputObject {} + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface ERC20Bridge extends BaseContract { + connect(runner?: ContractRunner | null): ERC20Bridge; + waitForDeployment(): Promise; + + interface: ERC20BridgeInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + bridge: TypedContractMethod< + [token: AddressLike, owner: AddressLike, value: BigNumberish], + [bigint], + "nonpayable" + >; + + dispatched: TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "payable" + >; + + exit: TypedContractMethod< + [token: AddressLike, owner: AddressLike, value: BigNumberish], + [bigint], + "nonpayable" + >; + + finish: TypedContractMethod< + [success: boolean, res: BytesLike, nonce: BigNumberish], + [void], + "nonpayable" + >; + + initialize: TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; + + queried: TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "bridge" + ): TypedContractMethod< + [token: AddressLike, owner: AddressLike, value: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "dispatched" + ): TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "payable" + >; + getFunction( + nameOrSignature: "exit" + ): TypedContractMethod< + [token: AddressLike, owner: AddressLike, value: BigNumberish], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "finish" + ): TypedContractMethod< + [success: boolean, res: BytesLike, nonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "queried" + ): TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + + getEvent( + key: "Failed" + ): TypedContractEvent< + FailedEvent.InputTuple, + FailedEvent.OutputTuple, + FailedEvent.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Started" + ): TypedContractEvent< + StartedEvent.InputTuple, + StartedEvent.OutputTuple, + StartedEvent.OutputObject + >; + getEvent( + key: "Succeeded" + ): TypedContractEvent< + SucceededEvent.InputTuple, + SucceededEvent.OutputTuple, + SucceededEvent.OutputObject + >; + + filters: { + "Failed(string)": TypedContractEvent< + FailedEvent.InputTuple, + FailedEvent.OutputTuple, + FailedEvent.OutputObject + >; + Failed: TypedContractEvent< + FailedEvent.InputTuple, + FailedEvent.OutputTuple, + FailedEvent.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Started(address,address,uint256)": TypedContractEvent< + StartedEvent.InputTuple, + StartedEvent.OutputTuple, + StartedEvent.OutputObject + >; + Started: TypedContractEvent< + StartedEvent.InputTuple, + StartedEvent.OutputTuple, + StartedEvent.OutputObject + >; + + "Succeeded()": TypedContractEvent< + SucceededEvent.InputTuple, + SucceededEvent.OutputTuple, + SucceededEvent.OutputObject + >; + Succeeded: TypedContractEvent< + SucceededEvent.InputTuple, + SucceededEvent.OutputTuple, + SucceededEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts new file mode 100644 index 000000000..de930c124 --- /dev/null +++ b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts @@ -0,0 +1,364 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface MyTokenInterface extends Interface { + getFunction( + nameOrSignature: + | "allowance" + | "approve" + | "balanceOf" + | "burn(uint256)" + | "burn(address,uint256)" + | "burnFrom" + | "decimals" + | "mint" + | "name" + | "symbol" + | "totalSupply" + | "transfer" + | "transferFrom" + ): FunctionFragment; + + getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; + + encodeFunctionData( + functionFragment: "allowance", + values: [AddressLike, AddressLike] + ): string; + encodeFunctionData( + functionFragment: "approve", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "balanceOf", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "burn(uint256)", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "burn(address,uint256)", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "burnFrom", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "decimals", values?: undefined): string; + encodeFunctionData( + functionFragment: "mint", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData(functionFragment: "name", values?: undefined): string; + encodeFunctionData(functionFragment: "symbol", values?: undefined): string; + encodeFunctionData( + functionFragment: "totalSupply", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "transfer", + values: [AddressLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "transferFrom", + values: [AddressLike, AddressLike, BigNumberish] + ): string; + + decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "burn(uint256)", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "burn(address,uint256)", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "totalSupply", + data: BytesLike + ): Result; + decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; + decodeFunctionResult( + functionFragment: "transferFrom", + data: BytesLike + ): Result; +} + +export namespace ApprovalEvent { + export type InputTuple = [ + owner: AddressLike, + spender: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [owner: string, spender: string, value: bigint]; + export interface OutputObject { + owner: string; + spender: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TransferEvent { + export type InputTuple = [ + from: AddressLike, + to: AddressLike, + value: BigNumberish + ]; + export type OutputTuple = [from: string, to: string, value: bigint]; + export interface OutputObject { + from: string; + to: string; + value: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface MyToken extends BaseContract { + connect(runner?: ContractRunner | null): MyToken; + waitForDeployment(): Promise; + + interface: MyTokenInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + allowance: TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + + approve: TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; + + "burn(uint256)": TypedContractMethod< + [value: BigNumberish], + [void], + "nonpayable" + >; + + "burn(address,uint256)": TypedContractMethod< + [from: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + burnFrom: TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + + decimals: TypedContractMethod<[], [bigint], "view">; + + mint: TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + + name: TypedContractMethod<[], [string], "view">; + + symbol: TypedContractMethod<[], [string], "view">; + + totalSupply: TypedContractMethod<[], [bigint], "view">; + + transfer: TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + transferFrom: TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "allowance" + ): TypedContractMethod< + [owner: AddressLike, spender: AddressLike], + [bigint], + "view" + >; + getFunction( + nameOrSignature: "approve" + ): TypedContractMethod< + [spender: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "balanceOf" + ): TypedContractMethod<[account: AddressLike], [bigint], "view">; + getFunction( + nameOrSignature: "burn(uint256)" + ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; + getFunction( + nameOrSignature: "burn(address,uint256)" + ): TypedContractMethod< + [from: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "burnFrom" + ): TypedContractMethod< + [account: AddressLike, value: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "decimals" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "mint" + ): TypedContractMethod< + [to: AddressLike, amount: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "name" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "symbol" + ): TypedContractMethod<[], [string], "view">; + getFunction( + nameOrSignature: "totalSupply" + ): TypedContractMethod<[], [bigint], "view">; + getFunction( + nameOrSignature: "transfer" + ): TypedContractMethod< + [to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + getFunction( + nameOrSignature: "transferFrom" + ): TypedContractMethod< + [from: AddressLike, to: AddressLike, value: BigNumberish], + [boolean], + "nonpayable" + >; + + getEvent( + key: "Approval" + ): TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + getEvent( + key: "Transfer" + ): TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + + filters: { + "Approval(address,address,uint256)": TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + Approval: TypedContractEvent< + ApprovalEvent.InputTuple, + ApprovalEvent.OutputTuple, + ApprovalEvent.OutputObject + >; + + "Transfer(address,address,uint256)": TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + Transfer: TypedContractEvent< + TransferEvent.InputTuple, + TransferEvent.OutputTuple, + TransferEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts new file mode 100644 index 000000000..16fc06889 --- /dev/null +++ b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { BridgedERC20 } from "./BridgedERC20"; +export type { ERC20Bridge } from "./ERC20Bridge"; +export type { MyToken } from "./MyToken"; diff --git a/products/bridge/typechain-types/contracts/Relayer.ts b/products/bridge/typechain-types/contracts/Relayer.ts new file mode 100644 index 000000000..cb12b05b7 --- /dev/null +++ b/products/bridge/typechain-types/contracts/Relayer.ts @@ -0,0 +1,405 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface RelayerInterface extends Interface { + getFunction( + nameOrSignature: "deployTwin" | "dispatch" | "query" | "relay" | "resume" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: + | "Dispatched" + | "Relayed" + | "Resumed" + | "TwinDeployment" + ): EventFragment; + + encodeFunctionData( + functionFragment: "deployTwin", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "dispatch", + values: [ + AddressLike, + AddressLike, + BytesLike, + BytesLike, + BigNumberish, + BytesLike[] + ] + ): string; + encodeFunctionData( + functionFragment: "query", + values: [AddressLike, AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "relay", + values: [AddressLike, BytesLike, boolean, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "resume", + values: [ + AddressLike, + BytesLike, + boolean, + BytesLike, + BigNumberish, + BytesLike[] + ] + ): string; + + decodeFunctionResult(functionFragment: "deployTwin", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "query", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "relay", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "resume", data: BytesLike): Result; +} + +export namespace DispatchedEvent { + export type InputTuple = [ + caller: AddressLike, + callback: BytesLike, + success: boolean, + response: BytesLike, + nonce: BigNumberish + ]; + export type OutputTuple = [ + caller: string, + callback: string, + success: boolean, + response: string, + nonce: bigint + ]; + export interface OutputObject { + caller: string; + callback: string; + success: boolean; + response: string; + nonce: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace RelayedEvent { + export type InputTuple = [ + caller: AddressLike, + target: AddressLike, + call: BytesLike, + readonly: boolean, + callback: BytesLike, + nonce: BigNumberish + ]; + export type OutputTuple = [ + caller: string, + target: string, + call: string, + readonly: boolean, + callback: string, + nonce: bigint + ]; + export interface OutputObject { + caller: string; + target: string; + call: string; + readonly: boolean; + callback: string; + nonce: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace ResumedEvent { + export type InputTuple = [ + caller: AddressLike, + call: BytesLike, + success: boolean, + response: BytesLike, + nonce: BigNumberish + ]; + export type OutputTuple = [ + caller: string, + call: string, + success: boolean, + response: string, + nonce: bigint + ]; + export interface OutputObject { + caller: string; + call: string; + success: boolean; + response: string; + nonce: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace TwinDeploymentEvent { + export type InputTuple = [twin: AddressLike]; + export type OutputTuple = [twin: string]; + export interface OutputObject { + twin: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Relayer extends BaseContract { + connect(runner?: ContractRunner | null): Relayer; + waitForDeployment(): Promise; + + interface: RelayerInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + deployTwin: TypedContractMethod< + [salt: BytesLike, bytecode: BytesLike], + [string], + "nonpayable" + >; + + dispatch: TypedContractMethod< + [ + caller: AddressLike, + target: AddressLike, + call: BytesLike, + callback: BytesLike, + nonce: BigNumberish, + signatures: BytesLike[] + ], + [void], + "nonpayable" + >; + + query: TypedContractMethod< + [caller: AddressLike, target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + + relay: TypedContractMethod< + [ + target: AddressLike, + call: BytesLike, + readonly: boolean, + callback: BytesLike + ], + [bigint], + "nonpayable" + >; + + resume: TypedContractMethod< + [ + caller: AddressLike, + callback: BytesLike, + success: boolean, + response: BytesLike, + nonce: BigNumberish, + signatures: BytesLike[] + ], + [void], + "payable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "deployTwin" + ): TypedContractMethod< + [salt: BytesLike, bytecode: BytesLike], + [string], + "nonpayable" + >; + getFunction( + nameOrSignature: "dispatch" + ): TypedContractMethod< + [ + caller: AddressLike, + target: AddressLike, + call: BytesLike, + callback: BytesLike, + nonce: BigNumberish, + signatures: BytesLike[] + ], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "query" + ): TypedContractMethod< + [caller: AddressLike, target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + getFunction( + nameOrSignature: "relay" + ): TypedContractMethod< + [ + target: AddressLike, + call: BytesLike, + readonly: boolean, + callback: BytesLike + ], + [bigint], + "nonpayable" + >; + getFunction( + nameOrSignature: "resume" + ): TypedContractMethod< + [ + caller: AddressLike, + callback: BytesLike, + success: boolean, + response: BytesLike, + nonce: BigNumberish, + signatures: BytesLike[] + ], + [void], + "payable" + >; + + getEvent( + key: "Dispatched" + ): TypedContractEvent< + DispatchedEvent.InputTuple, + DispatchedEvent.OutputTuple, + DispatchedEvent.OutputObject + >; + getEvent( + key: "Relayed" + ): TypedContractEvent< + RelayedEvent.InputTuple, + RelayedEvent.OutputTuple, + RelayedEvent.OutputObject + >; + getEvent( + key: "Resumed" + ): TypedContractEvent< + ResumedEvent.InputTuple, + ResumedEvent.OutputTuple, + ResumedEvent.OutputObject + >; + getEvent( + key: "TwinDeployment" + ): TypedContractEvent< + TwinDeploymentEvent.InputTuple, + TwinDeploymentEvent.OutputTuple, + TwinDeploymentEvent.OutputObject + >; + + filters: { + "Dispatched(address,bytes4,bool,bytes,uint256)": TypedContractEvent< + DispatchedEvent.InputTuple, + DispatchedEvent.OutputTuple, + DispatchedEvent.OutputObject + >; + Dispatched: TypedContractEvent< + DispatchedEvent.InputTuple, + DispatchedEvent.OutputTuple, + DispatchedEvent.OutputObject + >; + + "Relayed(address,address,bytes,bool,bytes4,uint256)": TypedContractEvent< + RelayedEvent.InputTuple, + RelayedEvent.OutputTuple, + RelayedEvent.OutputObject + >; + Relayed: TypedContractEvent< + RelayedEvent.InputTuple, + RelayedEvent.OutputTuple, + RelayedEvent.OutputObject + >; + + "Resumed(address,bytes,bool,bytes,uint256)": TypedContractEvent< + ResumedEvent.InputTuple, + ResumedEvent.OutputTuple, + ResumedEvent.OutputObject + >; + Resumed: TypedContractEvent< + ResumedEvent.InputTuple, + ResumedEvent.OutputTuple, + ResumedEvent.OutputObject + >; + + "TwinDeployment(address)": TypedContractEvent< + TwinDeploymentEvent.InputTuple, + TwinDeploymentEvent.OutputTuple, + TwinDeploymentEvent.OutputObject + >; + TwinDeployment: TypedContractEvent< + TwinDeploymentEvent.InputTuple, + TwinDeploymentEvent.OutputTuple, + TwinDeploymentEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/Test.sol/Target.ts b/products/bridge/typechain-types/contracts/Test.sol/Target.ts new file mode 100644 index 000000000..0487edb07 --- /dev/null +++ b/products/bridge/typechain-types/contracts/Test.sol/Target.ts @@ -0,0 +1,85 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface TargetInterface extends Interface { + getFunction(nameOrSignature: "test"): FunctionFragment; + + encodeFunctionData(functionFragment: "test", values: [BigNumberish]): string; + + decodeFunctionResult(functionFragment: "test", data: BytesLike): Result; +} + +export interface Target extends BaseContract { + connect(runner?: ContractRunner | null): Target; + waitForDeployment(): Promise; + + interface: TargetInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + test: TypedContractMethod<[num: BigNumberish], [bigint], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "test" + ): TypedContractMethod<[num: BigNumberish], [bigint], "view">; + + filters: {}; +} diff --git a/products/bridge/typechain-types/contracts/Test.sol/Twin.ts b/products/bridge/typechain-types/contracts/Test.sol/Twin.ts new file mode 100644 index 000000000..3e08aa0a4 --- /dev/null +++ b/products/bridge/typechain-types/contracts/Test.sol/Twin.ts @@ -0,0 +1,265 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + EventFragment, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedLogDescription, + TypedListener, + TypedContractMethod, +} from "../../common"; + +export interface TwinInterface extends Interface { + getFunction( + nameOrSignature: + | "dispatched" + | "finish" + | "initialize" + | "queried" + | "start" + ): FunctionFragment; + + getEvent( + nameOrSignatureOrTopic: "Failed" | "Initialized" | "Succeeded" + ): EventFragment; + + encodeFunctionData( + functionFragment: "dispatched", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "finish", + values: [boolean, BytesLike, BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "initialize", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "queried", + values: [AddressLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "start", + values: [AddressLike, BigNumberish, boolean] + ): string; + + decodeFunctionResult(functionFragment: "dispatched", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "finish", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "queried", data: BytesLike): Result; + decodeFunctionResult(functionFragment: "start", data: BytesLike): Result; +} + +export namespace FailedEvent { + export type InputTuple = [arg0: string]; + export type OutputTuple = [arg0: string]; + export interface OutputObject { + arg0: string; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace InitializedEvent { + export type InputTuple = [version: BigNumberish]; + export type OutputTuple = [version: bigint]; + export interface OutputObject { + version: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export namespace SucceededEvent { + export type InputTuple = [arg0: BigNumberish]; + export type OutputTuple = [arg0: bigint]; + export interface OutputObject { + arg0: bigint; + } + export type Event = TypedContractEvent; + export type Filter = TypedDeferredTopicFilter; + export type Log = TypedEventLog; + export type LogDescription = TypedLogDescription; +} + +export interface Twin extends BaseContract { + connect(runner?: ContractRunner | null): Twin; + waitForDeployment(): Promise; + + interface: TwinInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + dispatched: TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "payable" + >; + + finish: TypedContractMethod< + [success: boolean, res: BytesLike, nonce: BigNumberish], + [void], + "nonpayable" + >; + + initialize: TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; + + queried: TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + + start: TypedContractMethod< + [target: AddressLike, num: BigNumberish, readonly: boolean], + [void], + "nonpayable" + >; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "dispatched" + ): TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "payable" + >; + getFunction( + nameOrSignature: "finish" + ): TypedContractMethod< + [success: boolean, res: BytesLike, nonce: BigNumberish], + [void], + "nonpayable" + >; + getFunction( + nameOrSignature: "initialize" + ): TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; + getFunction( + nameOrSignature: "queried" + ): TypedContractMethod< + [target: AddressLike, call: BytesLike], + [[boolean, string] & { success: boolean; response: string }], + "view" + >; + getFunction( + nameOrSignature: "start" + ): TypedContractMethod< + [target: AddressLike, num: BigNumberish, readonly: boolean], + [void], + "nonpayable" + >; + + getEvent( + key: "Failed" + ): TypedContractEvent< + FailedEvent.InputTuple, + FailedEvent.OutputTuple, + FailedEvent.OutputObject + >; + getEvent( + key: "Initialized" + ): TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + getEvent( + key: "Succeeded" + ): TypedContractEvent< + SucceededEvent.InputTuple, + SucceededEvent.OutputTuple, + SucceededEvent.OutputObject + >; + + filters: { + "Failed(string)": TypedContractEvent< + FailedEvent.InputTuple, + FailedEvent.OutputTuple, + FailedEvent.OutputObject + >; + Failed: TypedContractEvent< + FailedEvent.InputTuple, + FailedEvent.OutputTuple, + FailedEvent.OutputObject + >; + + "Initialized(uint64)": TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + Initialized: TypedContractEvent< + InitializedEvent.InputTuple, + InitializedEvent.OutputTuple, + InitializedEvent.OutputObject + >; + + "Succeeded(uint256)": TypedContractEvent< + SucceededEvent.InputTuple, + SucceededEvent.OutputTuple, + SucceededEvent.OutputObject + >; + Succeeded: TypedContractEvent< + SucceededEvent.InputTuple, + SucceededEvent.OutputTuple, + SucceededEvent.OutputObject + >; + }; +} diff --git a/products/bridge/typechain-types/contracts/Test.sol/index.ts b/products/bridge/typechain-types/contracts/Test.sol/index.ts new file mode 100644 index 000000000..1dd312b0b --- /dev/null +++ b/products/bridge/typechain-types/contracts/Test.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export type { Target } from "./Target"; +export type { Twin } from "./Twin"; diff --git a/products/bridge/typechain-types/contracts/ValidatorManager.ts b/products/bridge/typechain-types/contracts/ValidatorManager.ts new file mode 100644 index 000000000..22224ec8a --- /dev/null +++ b/products/bridge/typechain-types/contracts/ValidatorManager.ts @@ -0,0 +1,221 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type { + BaseContract, + BigNumberish, + BytesLike, + FunctionFragment, + Result, + Interface, + AddressLike, + ContractRunner, + ContractMethod, + Listener, +} from "ethers"; +import type { + TypedContractEvent, + TypedDeferredTopicFilter, + TypedEventLog, + TypedListener, + TypedContractMethod, +} from "../common"; + +export interface ValidatorManagerInterface extends Interface { + getFunction( + nameOrSignature: + | "addValidator" + | "getValidators" + | "hasSupermajority" + | "isValidator" + | "removeValidator" + | "validateSignature" + | "validateUniqueSignatures" + | "validatorsCount" + ): FunctionFragment; + + encodeFunctionData( + functionFragment: "addValidator", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "getValidators", + values?: undefined + ): string; + encodeFunctionData( + functionFragment: "hasSupermajority", + values: [BigNumberish] + ): string; + encodeFunctionData( + functionFragment: "isValidator", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "removeValidator", + values: [AddressLike] + ): string; + encodeFunctionData( + functionFragment: "validateSignature", + values: [BytesLike, BytesLike] + ): string; + encodeFunctionData( + functionFragment: "validateUniqueSignatures", + values: [BytesLike, BytesLike[]] + ): string; + encodeFunctionData( + functionFragment: "validatorsCount", + values?: undefined + ): string; + + decodeFunctionResult( + functionFragment: "addValidator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "getValidators", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "hasSupermajority", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "isValidator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "removeValidator", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "validateSignature", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "validateUniqueSignatures", + data: BytesLike + ): Result; + decodeFunctionResult( + functionFragment: "validatorsCount", + data: BytesLike + ): Result; +} + +export interface ValidatorManager extends BaseContract { + connect(runner?: ContractRunner | null): ValidatorManager; + waitForDeployment(): Promise; + + interface: ValidatorManagerInterface; + + queryFilter( + event: TCEvent, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + queryFilter( + filter: TypedDeferredTopicFilter, + fromBlockOrBlockhash?: string | number | undefined, + toBlock?: string | number | undefined + ): Promise>>; + + on( + event: TCEvent, + listener: TypedListener + ): Promise; + on( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + once( + event: TCEvent, + listener: TypedListener + ): Promise; + once( + filter: TypedDeferredTopicFilter, + listener: TypedListener + ): Promise; + + listeners( + event: TCEvent + ): Promise>>; + listeners(eventName?: string): Promise>; + removeAllListeners( + event?: TCEvent + ): Promise; + + addValidator: TypedContractMethod< + [user: AddressLike], + [boolean], + "nonpayable" + >; + + getValidators: TypedContractMethod<[], [string[]], "view">; + + hasSupermajority: TypedContractMethod< + [count: BigNumberish], + [boolean], + "view" + >; + + isValidator: TypedContractMethod<[user: AddressLike], [boolean], "view">; + + removeValidator: TypedContractMethod< + [user: AddressLike], + [boolean], + "nonpayable" + >; + + validateSignature: TypedContractMethod< + [ethSignedMessageHash: BytesLike, signature: BytesLike], + [boolean], + "view" + >; + + validateUniqueSignatures: TypedContractMethod< + [ethSignedMessageHash: BytesLike, signatures: BytesLike[]], + [boolean], + "view" + >; + + validatorsCount: TypedContractMethod<[], [bigint], "view">; + + getFunction( + key: string | FunctionFragment + ): T; + + getFunction( + nameOrSignature: "addValidator" + ): TypedContractMethod<[user: AddressLike], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "getValidators" + ): TypedContractMethod<[], [string[]], "view">; + getFunction( + nameOrSignature: "hasSupermajority" + ): TypedContractMethod<[count: BigNumberish], [boolean], "view">; + getFunction( + nameOrSignature: "isValidator" + ): TypedContractMethod<[user: AddressLike], [boolean], "view">; + getFunction( + nameOrSignature: "removeValidator" + ): TypedContractMethod<[user: AddressLike], [boolean], "nonpayable">; + getFunction( + nameOrSignature: "validateSignature" + ): TypedContractMethod< + [ethSignedMessageHash: BytesLike, signature: BytesLike], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "validateUniqueSignatures" + ): TypedContractMethod< + [ethSignedMessageHash: BytesLike, signatures: BytesLike[]], + [boolean], + "view" + >; + getFunction( + nameOrSignature: "validatorsCount" + ): TypedContractMethod<[], [bigint], "view">; + + filters: {}; +} diff --git a/products/bridge/typechain-types/contracts/index.ts b/products/bridge/typechain-types/contracts/index.ts new file mode 100644 index 000000000..1d57870e8 --- /dev/null +++ b/products/bridge/typechain-types/contracts/index.ts @@ -0,0 +1,11 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as erc20BridgeSol from "./ERC20Bridge.sol"; +export type { erc20BridgeSol }; +import type * as testSol from "./Test.sol"; +export type { testSol }; +export type { Bridged } from "./Bridged"; +export type { Collector } from "./Collector"; +export type { Relayer } from "./Relayer"; +export type { ValidatorManager } from "./ValidatorManager"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts new file mode 100644 index 000000000..b276b28ff --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as interfaces from "./interfaces"; +export * as proxy from "./proxy"; +export * as token from "./token"; +export * as utils from "./utils"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts new file mode 100644 index 000000000..0413f8c17 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts @@ -0,0 +1,127 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC1155Errors, + IERC1155ErrorsInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC1155InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC1155InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "idsLength", + type: "uint256", + }, + { + internalType: "uint256", + name: "valuesLength", + type: "uint256", + }, + ], + name: "ERC1155InvalidArrayLength", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "ERC1155InvalidOperator", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC1155InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC1155InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC1155MissingApprovalForAll", + type: "error", + }, +] as const; + +export class IERC1155Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC1155ErrorsInterface { + return new Interface(_abi) as IERC1155ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC1155Errors { + return new Contract(address, _abi, runner) as unknown as IERC1155Errors; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts new file mode 100644 index 000000000..695f3f0f4 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts @@ -0,0 +1,111 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Errors, + IERC20ErrorsInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, +] as const; + +export class IERC20Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC20ErrorsInterface { + return new Interface(_abi) as IERC20ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Errors { + return new Contract(address, _abi, runner) as unknown as IERC20Errors; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts new file mode 100644 index 000000000..8615d4ddd --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts @@ -0,0 +1,128 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC721Errors, + IERC721ErrorsInterface, +} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC721IncorrectOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC721InsufficientApproval", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC721InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "operator", + type: "address", + }, + ], + name: "ERC721InvalidOperator", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + ], + name: "ERC721InvalidOwner", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC721InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC721InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "tokenId", + type: "uint256", + }, + ], + name: "ERC721NonexistentToken", + type: "error", + }, +] as const; + +export class IERC721Errors__factory { + static readonly abi = _abi; + static createInterface(): IERC721ErrorsInterface { + return new Interface(_abi) as IERC721ErrorsInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC721Errors { + return new Contract(address, _abi, runner) as unknown as IERC721Errors; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts new file mode 100644 index 000000000..571330ea3 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { IERC1155Errors__factory } from "./IERC1155Errors__factory"; +export { IERC20Errors__factory } from "./IERC20Errors__factory"; +export { IERC721Errors__factory } from "./IERC721Errors__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts new file mode 100644 index 000000000..82d047e87 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as draftIerc6093Sol from "./draft-IERC6093.sol"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts new file mode 100644 index 000000000..56778f881 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as utils from "./utils"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts new file mode 100644 index 000000000..eb7a31b9e --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts @@ -0,0 +1,48 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + Initializable, + InitializableInterface, +} from "../../../../../@openzeppelin/contracts/proxy/utils/Initializable"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, +] as const; + +export class Initializable__factory { + static readonly abi = _abi; + static createInterface(): InitializableInterface { + return new Interface(_abi) as InitializableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): Initializable { + return new Contract(address, _abi, runner) as unknown as Initializable; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts new file mode 100644 index 000000000..4baae4a20 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Initializable__factory } from "./Initializable__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts new file mode 100644 index 000000000..5d8981a68 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts @@ -0,0 +1,330 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ERC20, + ERC20Interface, +} from "../../../../../@openzeppelin/contracts/token/ERC20/ERC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ERC20__factory { + static readonly abi = _abi; + static createInterface(): ERC20Interface { + return new Interface(_abi) as ERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): ERC20 { + return new Contract(address, _abi, runner) as unknown as ERC20; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts new file mode 100644 index 000000000..6768448dc --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts @@ -0,0 +1,205 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20, + IERC20Interface, +} from "../../../../../@openzeppelin/contracts/token/ERC20/IERC20"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20__factory { + static readonly abi = _abi; + static createInterface(): IERC20Interface { + return new Interface(_abi) as IERC20Interface; + } + static connect(address: string, runner?: ContractRunner | null): IERC20 { + return new Contract(address, _abi, runner) as unknown as IERC20; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts new file mode 100644 index 000000000..e36dbedee --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts @@ -0,0 +1,364 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + ERC20Burnable, + ERC20BurnableInterface, +} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "burnFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class ERC20Burnable__factory { + static readonly abi = _abi; + static createInterface(): ERC20BurnableInterface { + return new Interface(_abi) as ERC20BurnableInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ERC20Burnable { + return new Contract(address, _abi, runner) as unknown as ERC20Burnable; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts new file mode 100644 index 000000000..80abf9696 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts @@ -0,0 +1,247 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { + IERC20Metadata, + IERC20MetadataInterface, +} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; + +const _abi = [ + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +export class IERC20Metadata__factory { + static readonly abi = _abi; + static createInterface(): IERC20MetadataInterface { + return new Interface(_abi) as IERC20MetadataInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): IERC20Metadata { + return new Contract(address, _abi, runner) as unknown as IERC20Metadata; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts new file mode 100644 index 000000000..3ddce5325 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ERC20Burnable__factory } from "./ERC20Burnable__factory"; +export { IERC20Metadata__factory } from "./IERC20Metadata__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts new file mode 100644 index 000000000..3523dc7a6 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as extensions from "./extensions"; +export { ERC20__factory } from "./ERC20__factory"; +export { IERC20__factory } from "./IERC20__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts new file mode 100644 index 000000000..da1e061eb --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc20 from "./ERC20"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts new file mode 100644 index 000000000..791413453 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts @@ -0,0 +1,90 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + Create2, + Create2Interface, +} from "../../../../@openzeppelin/contracts/utils/Create2"; + +const _abi = [ + { + inputs: [], + name: "Create2EmptyBytecode", + type: "error", + }, + { + inputs: [], + name: "Create2FailedDeployment", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "Create2InsufficientBalance", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033"; + +type Create2ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: Create2ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Create2__factory extends ContractFactory { + constructor(...args: Create2ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Create2 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Create2__factory { + return super.connect(runner) as Create2__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): Create2Interface { + return new Interface(_abi) as Create2Interface; + } + static connect(address: string, runner?: ContractRunner | null): Create2 { + return new Contract(address, _abi, runner) as unknown as Create2; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts new file mode 100644 index 000000000..61eed9444 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts @@ -0,0 +1,80 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../common"; +import type { + Strings, + StringsInterface, +} from "../../../../@openzeppelin/contracts/utils/Strings"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + name: "StringsInsufficientHexLength", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033"; + +type StringsConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: StringsConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Strings__factory extends ContractFactory { + constructor(...args: StringsConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Strings & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Strings__factory { + return super.connect(runner) as Strings__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): StringsInterface { + return new Interface(_abi) as StringsInterface; + } + static connect(address: string, runner?: ContractRunner | null): Strings { + return new Contract(address, _abi, runner) as unknown as Strings; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts new file mode 100644 index 000000000..2d73c6dad --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts @@ -0,0 +1,91 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + ECDSA, + ECDSAInterface, +} from "../../../../../@openzeppelin/contracts/utils/cryptography/ECDSA"; + +const _abi = [ + { + inputs: [], + name: "ECDSAInvalidSignature", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + name: "ECDSAInvalidSignatureLength", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "ECDSAInvalidSignatureS", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033"; + +type ECDSAConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ECDSAConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ECDSA__factory extends ContractFactory { + constructor(...args: ECDSAConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ECDSA & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ECDSA__factory { + return super.connect(runner) as ECDSA__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ECDSAInterface { + return new Interface(_abi) as ECDSAInterface; + } + static connect(address: string, runner?: ContractRunner | null): ECDSA { + return new Contract(address, _abi, runner) as unknown as ECDSA; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts new file mode 100644 index 000000000..cac1a8376 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { ECDSA__factory } from "./ECDSA__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts new file mode 100644 index 000000000..8beaf752c --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts @@ -0,0 +1,7 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as cryptography from "./cryptography"; +export * as math from "./math"; +export { Create2__factory } from "./Create2__factory"; +export { Strings__factory } from "./Strings__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts new file mode 100644 index 000000000..1cdc9563d --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts @@ -0,0 +1,69 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../../../common"; +import type { + Math, + MathInterface, +} from "../../../../../@openzeppelin/contracts/utils/math/Math"; + +const _abi = [ + { + inputs: [], + name: "MathOverflowedMulDiv", + type: "error", + }, +] as const; + +const _bytecode = + "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033"; + +type MathConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MathConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Math__factory extends ContractFactory { + constructor(...args: MathConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Math & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Math__factory { + return super.connect(runner) as Math__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MathInterface { + return new Interface(_abi) as MathInterface; + } + static connect(address: string, runner?: ContractRunner | null): Math { + return new Contract(address, _abi, runner) as unknown as Math; + } +} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts new file mode 100644 index 000000000..a249c7486 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Math__factory } from "./Math__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/index.ts new file mode 100644 index 000000000..6397da096 --- /dev/null +++ b/products/bridge/typechain-types/factories/@openzeppelin/index.ts @@ -0,0 +1,4 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as contracts from "./contracts"; diff --git a/products/bridge/typechain-types/factories/contracts/Bridged__factory.ts b/products/bridge/typechain-types/factories/contracts/Bridged__factory.ts new file mode 100644 index 000000000..f592ee43a --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/Bridged__factory.ts @@ -0,0 +1,113 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { Contract, Interface, type ContractRunner } from "ethers"; +import type { Bridged, BridgedInterface } from "../../contracts/Bridged"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "dispatched", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract Relayer", + name: "relayer", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "queried", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +export class Bridged__factory { + static readonly abi = _abi; + static createInterface(): BridgedInterface { + return new Interface(_abi) as BridgedInterface; + } + static connect(address: string, runner?: ContractRunner | null): Bridged { + return new Contract(address, _abi, runner) as unknown as Bridged; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/Collector__factory.ts b/products/bridge/typechain-types/factories/contracts/Collector__factory.ts new file mode 100644 index 000000000..9d836568c --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/Collector__factory.ts @@ -0,0 +1,118 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { Collector, CollectorInterface } from "../../contracts/Collector"; + +const _abi = [ + { + inputs: [ + { + internalType: "contract ValidatorManager", + name: "_validatorManager", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "bytes32", + name: "hash", + type: "bytes32", + }, + { + indexed: false, + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "Echoed", + type: "event", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "hash", + type: "bytes32", + }, + { + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "echo", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b5060405161037338038061037383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102e0806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033"; + +type CollectorConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: CollectorConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Collector__factory extends ContractFactory { + constructor(...args: CollectorConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _validatorManager: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_validatorManager, overrides || {}); + } + override deploy( + _validatorManager: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_validatorManager, overrides || {}) as Promise< + Collector & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Collector__factory { + return super.connect(runner) as Collector__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): CollectorInterface { + return new Interface(_abi) as CollectorInterface; + } + static connect(address: string, runner?: ContractRunner | null): Collector { + return new Contract(address, _abi, runner) as unknown as Collector; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts new file mode 100644 index 000000000..e10098e07 --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts @@ -0,0 +1,476 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + BridgedERC20, + BridgedERC20Interface, +} from "../../../contracts/ERC20Bridge.sol/BridgedERC20"; + +const _abi = [ + { + inputs: [ + { + internalType: "string", + name: "name_", + type: "string", + }, + { + internalType: "string", + name: "symbol_", + type: "string", + }, + { + internalType: "address", + name: "bridge_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "burnFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040523480156200001157600080fd5b5060405162000de138038062000de18339810160408190526200003491620002c2565b82826003620000448382620003de565b506004620000538282620003de565b5050600580546001600160a01b0319166001600160a01b038416179055506200007f336103e862000088565b505050620004d2565b6001600160a01b038216620000b85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000c660008383620000ca565b5050565b6001600160a01b038316620000f9578060026000828254620000ed9190620004aa565b909155506200016d9050565b6001600160a01b038316600090815260208190526040902054818110156200014e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000af565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200018b57600280548290039055620001aa565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001f091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022557600080fd5b81516001600160401b0380821115620002425762000242620001fd565b604051601f8301601f19908116603f011681019082821181831017156200026d576200026d620001fd565b816040528381526020925086838588010111156200028a57600080fd5b600091505b83821015620002ae57858201830151818301840152908201906200028f565b600093810190920192909252949350505050565b600080600060608486031215620002d857600080fd5b83516001600160401b0380821115620002f057600080fd5b620002fe8783880162000213565b945060208601519150808211156200031557600080fd5b50620003248682870162000213565b604086015190935090506001600160a01b03811681146200034457600080fd5b809150509250925092565b600181811c908216806200036457607f821691505b6020821081036200038557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d957600081815260208120601f850160051c81016020861015620003b45750805b601f850160051c820191505b81811015620003d557828155600101620003c0565b5050505b505050565b81516001600160401b03811115620003fa57620003fa620001fd565b62000412816200040b84546200034f565b846200038b565b602080601f8311600181146200044a5760008415620004315750858301515b600019600386901b1c1916600185901b178555620003d5565b600085815260208120601f198616915b828110156200047b578886015182559484019460019091019084016200045a565b50858210156200049a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004cc57634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004e26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033"; + +type BridgedERC20ConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: BridgedERC20ConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class BridgedERC20__factory extends ContractFactory { + constructor(...args: BridgedERC20ConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + name_: string, + symbol_: string, + bridge_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(name_, symbol_, bridge_, overrides || {}); + } + override deploy( + name_: string, + symbol_: string, + bridge_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(name_, symbol_, bridge_, overrides || {}) as Promise< + BridgedERC20 & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): BridgedERC20__factory { + return super.connect(runner) as BridgedERC20__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): BridgedERC20Interface { + return new Interface(_abi) as BridgedERC20Interface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): BridgedERC20 { + return new Contract(address, _abi, runner) as unknown as BridgedERC20; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts new file mode 100644 index 000000000..f96efe2dd --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts @@ -0,0 +1,283 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + ERC20Bridge, + ERC20BridgeInterface, +} from "../../../contracts/ERC20Bridge.sol/ERC20Bridge"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "Failed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "Started", + type: "event", + }, + { + anonymous: false, + inputs: [], + name: "Succeeded", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "bridge", + outputs: [ + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "dispatched", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "token", + type: "address", + }, + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "exit", + outputs: [ + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "res", + type: "bytes", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "finish", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract Relayer", + name: "relayer", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "queried", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610c2b806100206000396000f3fe6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033"; + +type ERC20BridgeConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ERC20BridgeConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ERC20Bridge__factory extends ContractFactory { + constructor(...args: ERC20BridgeConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + ERC20Bridge & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ERC20Bridge__factory { + return super.connect(runner) as ERC20Bridge__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ERC20BridgeInterface { + return new Interface(_abi) as ERC20BridgeInterface; + } + static connect(address: string, runner?: ContractRunner | null): ERC20Bridge { + return new Contract(address, _abi, runner) as unknown as ERC20Bridge; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts new file mode 100644 index 000000000..17b49adaf --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts @@ -0,0 +1,459 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + MyToken, + MyTokenInterface, +} from "../../../contracts/ERC20Bridge.sol/MyToken"; + +const _abi = [ + { + inputs: [ + { + internalType: "address", + name: "bridge_", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "allowance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientAllowance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "ERC20InsufficientBalance", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "approver", + type: "address", + }, + ], + name: "ERC20InvalidApprover", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "receiver", + type: "address", + }, + ], + name: "ERC20InvalidReceiver", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "sender", + type: "address", + }, + ], + name: "ERC20InvalidSender", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "ERC20InvalidSpender", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "owner", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "spender", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Approval", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "from", + type: "address", + }, + { + indexed: true, + internalType: "address", + name: "to", + type: "address", + }, + { + indexed: false, + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "Transfer", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "owner", + type: "address", + }, + { + internalType: "address", + name: "spender", + type: "address", + }, + ], + name: "allowance", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "spender", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "approve", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + ], + name: "balanceOf", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "burn", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "account", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "burnFrom", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "decimals", + outputs: [ + { + internalType: "uint8", + name: "", + type: "uint8", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "amount", + type: "uint256", + }, + ], + name: "mint", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "name", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "symbol", + outputs: [ + { + internalType: "string", + name: "", + type: "string", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "totalSupply", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transfer", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "from", + type: "address", + }, + { + internalType: "address", + name: "to", + type: "address", + }, + { + internalType: "uint256", + name: "value", + type: "uint256", + }, + ], + name: "transferFrom", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040523480156200001157600080fd5b5060405162000d1838038062000d1883398101604081905262000034916200023e565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b815250828282816003908162000084919062000315565b50600462000093828262000315565b5050600580546001600160a01b0319166001600160a01b03841617905550620000bf336103e8620000c9565b5050505062000409565b6001600160a01b038216620000f95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b62000107600083836200010b565b5050565b6001600160a01b0383166200013a5780600260008282546200012e9190620003e1565b90915550620001ae9050565b6001600160a01b038316600090815260208190526040902054818110156200018f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001cc57600280548290039055620001eb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023191815260200190565b60405180910390a3505050565b6000602082840312156200025157600080fd5b81516001600160a01b03811681146200026957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029b57607f821691505b602082108103620002bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031057600081815260208120601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b0381111562000331576200033162000270565b620003498162000342845462000286565b84620002c2565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200040357634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033"; + +type MyTokenConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: MyTokenConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class MyToken__factory extends ContractFactory { + constructor(...args: MyTokenConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + bridge_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(bridge_, overrides || {}); + } + override deploy( + bridge_: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(bridge_, overrides || {}) as Promise< + MyToken & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): MyToken__factory { + return super.connect(runner) as MyToken__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): MyTokenInterface { + return new Interface(_abi) as MyTokenInterface; + } + static connect(address: string, runner?: ContractRunner | null): MyToken { + return new Contract(address, _abi, runner) as unknown as MyToken; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts new file mode 100644 index 000000000..fb6aff47b --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts @@ -0,0 +1,6 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { BridgedERC20__factory } from "./BridgedERC20__factory"; +export { ERC20Bridge__factory } from "./ERC20Bridge__factory"; +export { MyToken__factory } from "./MyToken__factory"; diff --git a/products/bridge/typechain-types/factories/contracts/Relayer__factory.ts b/products/bridge/typechain-types/factories/contracts/Relayer__factory.ts new file mode 100644 index 000000000..80232dc89 --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/Relayer__factory.ts @@ -0,0 +1,405 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { Relayer, RelayerInterface } from "../../contracts/Relayer"; + +const _abi = [ + { + inputs: [ + { + internalType: "contract ValidatorManager", + name: "_validatorManager", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "Create2EmptyBytecode", + type: "error", + }, + { + inputs: [], + name: "Create2FailedDeployment", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "balance", + type: "uint256", + }, + { + internalType: "uint256", + name: "needed", + type: "uint256", + }, + ], + name: "Create2InsufficientBalance", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "caller", + type: "address", + }, + { + indexed: false, + internalType: "bytes4", + name: "callback", + type: "bytes4", + }, + { + indexed: false, + internalType: "bool", + name: "success", + type: "bool", + }, + { + indexed: false, + internalType: "bytes", + name: "response", + type: "bytes", + }, + { + indexed: true, + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "Dispatched", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "address", + name: "caller", + type: "address", + }, + { + indexed: false, + internalType: "address", + name: "target", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "call", + type: "bytes", + }, + { + indexed: false, + internalType: "bool", + name: "readonly", + type: "bool", + }, + { + indexed: false, + internalType: "bytes4", + name: "callback", + type: "bytes4", + }, + { + indexed: false, + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "Relayed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "caller", + type: "address", + }, + { + indexed: false, + internalType: "bytes", + name: "call", + type: "bytes", + }, + { + indexed: false, + internalType: "bool", + name: "success", + type: "bool", + }, + { + indexed: false, + internalType: "bytes", + name: "response", + type: "bytes", + }, + { + indexed: true, + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "Resumed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: true, + internalType: "address", + name: "twin", + type: "address", + }, + ], + name: "TwinDeployment", + type: "event", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "salt", + type: "bytes32", + }, + { + internalType: "bytes", + name: "bytecode", + type: "bytes", + }, + ], + name: "deployTwin", + outputs: [ + { + internalType: "address", + name: "", + type: "address", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "caller", + type: "address", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + { + internalType: "bytes4", + name: "callback", + type: "bytes4", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "bytes[]", + name: "signatures", + type: "bytes[]", + }, + ], + name: "dispatch", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "caller", + type: "address", + }, + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "query", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + { + internalType: "bool", + name: "readonly", + type: "bool", + }, + { + internalType: "bytes4", + name: "callback", + type: "bytes4", + }, + ], + name: "relay", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "caller", + type: "address", + }, + { + internalType: "bytes4", + name: "callback", + type: "bytes4", + }, + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + { + internalType: "bytes[]", + name: "signatures", + type: "bytes[]", + }, + ], + name: "resume", + outputs: [], + stateMutability: "payable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b506040516112f03803806112f083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61125d806100936000396000f3fe60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033"; + +type RelayerConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: RelayerConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Relayer__factory extends ContractFactory { + constructor(...args: RelayerConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + _validatorManager: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(_validatorManager, overrides || {}); + } + override deploy( + _validatorManager: AddressLike, + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(_validatorManager, overrides || {}) as Promise< + Relayer & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Relayer__factory { + return super.connect(runner) as Relayer__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): RelayerInterface { + return new Interface(_abi) as RelayerInterface; + } + static connect(address: string, runner?: ContractRunner | null): Relayer { + return new Contract(address, _abi, runner) as unknown as Relayer; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts b/products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts new file mode 100644 index 000000000..c312e4aab --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts @@ -0,0 +1,83 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { + Target, + TargetInterface, +} from "../../../contracts/Test.sol/Target"; + +const _abi = [ + { + inputs: [ + { + internalType: "uint256", + name: "num", + type: "uint256", + }, + ], + name: "test", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "pure", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b506101f9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033"; + +type TargetConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TargetConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Target__factory extends ContractFactory { + constructor(...args: TargetConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Target & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Target__factory { + return super.connect(runner) as Target__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TargetInterface { + return new Interface(_abi) as TargetInterface; + } + static connect(address: string, runner?: ContractRunner | null): Target { + return new Contract(address, _abi, runner) as unknown as Target; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts b/products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts new file mode 100644 index 000000000..b781c806b --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts @@ -0,0 +1,227 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; +import type { NonPayableOverrides } from "../../../common"; +import type { Twin, TwinInterface } from "../../../contracts/Test.sol/Twin"; + +const _abi = [ + { + inputs: [], + name: "InvalidInitialization", + type: "error", + }, + { + inputs: [], + name: "NotInitializing", + type: "error", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "string", + name: "", + type: "string", + }, + ], + name: "Failed", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint64", + name: "version", + type: "uint64", + }, + ], + name: "Initialized", + type: "event", + }, + { + anonymous: false, + inputs: [ + { + indexed: false, + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + name: "Succeeded", + type: "event", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "dispatched", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "payable", + type: "function", + }, + { + inputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "res", + type: "bytes", + }, + { + internalType: "uint256", + name: "nonce", + type: "uint256", + }, + ], + name: "finish", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "contract Relayer", + name: "relayer", + type: "address", + }, + ], + name: "initialize", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "bytes", + name: "call", + type: "bytes", + }, + ], + name: "queried", + outputs: [ + { + internalType: "bool", + name: "success", + type: "bool", + }, + { + internalType: "bytes", + name: "response", + type: "bytes", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "target", + type: "address", + }, + { + internalType: "uint256", + name: "num", + type: "uint256", + }, + { + internalType: "bool", + name: "readonly", + type: "bool", + }, + ], + name: "start", + outputs: [], + stateMutability: "nonpayable", + type: "function", + }, +] as const; + +const _bytecode = + "0x608060405234801561001057600080fd5b50610b33806100206000396000f3fe60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033"; + +type TwinConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: TwinConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class Twin__factory extends ContractFactory { + constructor(...args: TwinConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(overrides || {}); + } + override deploy(overrides?: NonPayableOverrides & { from?: string }) { + return super.deploy(overrides || {}) as Promise< + Twin & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): Twin__factory { + return super.connect(runner) as Twin__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): TwinInterface { + return new Interface(_abi) as TwinInterface; + } + static connect(address: string, runner?: ContractRunner | null): Twin { + return new Contract(address, _abi, runner) as unknown as Twin; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/Test.sol/index.ts b/products/bridge/typechain-types/factories/contracts/Test.sol/index.ts new file mode 100644 index 000000000..ec47bcb1d --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/Test.sol/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export { Target__factory } from "./Target__factory"; +export { Twin__factory } from "./Twin__factory"; diff --git a/products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts b/products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts new file mode 100644 index 000000000..b738f5d2d --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts @@ -0,0 +1,264 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import { + Contract, + ContractFactory, + ContractTransactionResponse, + Interface, +} from "ethers"; +import type { + Signer, + AddressLike, + ContractDeployTransaction, + ContractRunner, +} from "ethers"; +import type { NonPayableOverrides } from "../../common"; +import type { + ValidatorManager, + ValidatorManagerInterface, +} from "../../contracts/ValidatorManager"; + +const _abi = [ + { + inputs: [ + { + internalType: "address[]", + name: "validators", + type: "address[]", + }, + ], + stateMutability: "nonpayable", + type: "constructor", + }, + { + inputs: [], + name: "ECDSAInvalidSignature", + type: "error", + }, + { + inputs: [ + { + internalType: "uint256", + name: "length", + type: "uint256", + }, + ], + name: "ECDSAInvalidSignatureLength", + type: "error", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "s", + type: "bytes32", + }, + ], + name: "ECDSAInvalidSignatureS", + type: "error", + }, + { + inputs: [ + { + internalType: "address", + name: "user", + type: "address", + }, + ], + name: "addValidator", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [], + name: "getValidators", + outputs: [ + { + internalType: "address[]", + name: "", + type: "address[]", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "uint256", + name: "count", + type: "uint256", + }, + ], + name: "hasSupermajority", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "user", + type: "address", + }, + ], + name: "isValidator", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "address", + name: "user", + type: "address", + }, + ], + name: "removeValidator", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "nonpayable", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "ethSignedMessageHash", + type: "bytes32", + }, + { + internalType: "bytes", + name: "signature", + type: "bytes", + }, + ], + name: "validateSignature", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [ + { + internalType: "bytes32", + name: "ethSignedMessageHash", + type: "bytes32", + }, + { + internalType: "bytes[]", + name: "signatures", + type: "bytes[]", + }, + ], + name: "validateUniqueSignatures", + outputs: [ + { + internalType: "bool", + name: "", + type: "bool", + }, + ], + stateMutability: "view", + type: "function", + }, + { + inputs: [], + name: "validatorsCount", + outputs: [ + { + internalType: "uint256", + name: "", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, +] as const; + +const _bytecode = + "0x60806040523480156200001157600080fd5b5060405162000c5a38038062000c5a833981016040819052620000349162000143565b60005b815181101562000084576200006e8282815181106200005a576200005a62000215565b60200260200101516200008c60201b60201c565b50806200007b816200022b565b91505062000037565b505062000253565b60006200009a8183620000a0565b92915050565b6000620000b7836001600160a01b038416620000be565b9392505050565b600081815260018301602052604081205462000107575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200009a565b5060006200009a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200013e57600080fd5b919050565b600060208083850312156200015757600080fd5b82516001600160401b03808211156200016f57600080fd5b818501915085601f8301126200018457600080fd5b81518181111562000199576200019962000110565b8060051b604051601f19603f83011681018181108582111715620001c157620001c162000110565b604052918252848201925083810185019188831115620001e057600080fd5b938501935b828510156200020957620001f98562000126565b84529385019392850192620001e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200024c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6109f780620002636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033"; + +type ValidatorManagerConstructorParams = + | [signer?: Signer] + | ConstructorParameters; + +const isSuperArgs = ( + xs: ValidatorManagerConstructorParams +): xs is ConstructorParameters => xs.length > 1; + +export class ValidatorManager__factory extends ContractFactory { + constructor(...args: ValidatorManagerConstructorParams) { + if (isSuperArgs(args)) { + super(...args); + } else { + super(_abi, _bytecode, args[0]); + } + } + + override getDeployTransaction( + validators: AddressLike[], + overrides?: NonPayableOverrides & { from?: string } + ): Promise { + return super.getDeployTransaction(validators, overrides || {}); + } + override deploy( + validators: AddressLike[], + overrides?: NonPayableOverrides & { from?: string } + ) { + return super.deploy(validators, overrides || {}) as Promise< + ValidatorManager & { + deploymentTransaction(): ContractTransactionResponse; + } + >; + } + override connect(runner: ContractRunner | null): ValidatorManager__factory { + return super.connect(runner) as ValidatorManager__factory; + } + + static readonly bytecode = _bytecode; + static readonly abi = _abi; + static createInterface(): ValidatorManagerInterface { + return new Interface(_abi) as ValidatorManagerInterface; + } + static connect( + address: string, + runner?: ContractRunner | null + ): ValidatorManager { + return new Contract(address, _abi, runner) as unknown as ValidatorManager; + } +} diff --git a/products/bridge/typechain-types/factories/contracts/index.ts b/products/bridge/typechain-types/factories/contracts/index.ts new file mode 100644 index 000000000..cac52183d --- /dev/null +++ b/products/bridge/typechain-types/factories/contracts/index.ts @@ -0,0 +1,9 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as erc20BridgeSol from "./ERC20Bridge.sol"; +export * as testSol from "./Test.sol"; +export { Bridged__factory } from "./Bridged__factory"; +export { Collector__factory } from "./Collector__factory"; +export { Relayer__factory } from "./Relayer__factory"; +export { ValidatorManager__factory } from "./ValidatorManager__factory"; diff --git a/products/bridge/typechain-types/factories/index.ts b/products/bridge/typechain-types/factories/index.ts new file mode 100644 index 000000000..6ff9ace7a --- /dev/null +++ b/products/bridge/typechain-types/factories/index.ts @@ -0,0 +1,5 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +export * as openzeppelin from "./@openzeppelin"; +export * as contracts from "./contracts"; diff --git a/products/bridge/typechain-types/hardhat.d.ts b/products/bridge/typechain-types/hardhat.d.ts new file mode 100644 index 000000000..52f3c771f --- /dev/null +++ b/products/bridge/typechain-types/hardhat.d.ts @@ -0,0 +1,423 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ + +import { ethers } from "ethers"; +import { + DeployContractOptions, + FactoryOptions, + HardhatEthersHelpers as HardhatEthersHelpersBase, +} from "@nomicfoundation/hardhat-ethers/types"; + +import * as Contracts from "."; + +declare module "hardhat/types/runtime" { + interface HardhatEthersHelpers extends HardhatEthersHelpersBase { + getContractFactory( + name: "IERC1155Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC721Errors", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Initializable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20Burnable", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20Metadata", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "IERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Create2", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ECDSA", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Math", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Strings", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Bridged", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Collector", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "BridgedERC20", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ERC20Bridge", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "MyToken", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Relayer", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Target", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "Twin", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + name: "ValidatorManager", + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + + getContractAt( + name: "IERC1155Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC721Errors", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Initializable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20Burnable", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20Metadata", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "IERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Create2", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ECDSA", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Math", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Strings", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Bridged", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Collector", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "BridgedERC20", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ERC20Bridge", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "MyToken", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Relayer", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Target", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "Twin", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + getContractAt( + name: "ValidatorManager", + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + + deployContract( + name: "IERC1155Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC721Errors", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Initializable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Burnable", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Metadata", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Create2", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ECDSA", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Math", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Strings", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Bridged", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Collector", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "BridgedERC20", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Bridge", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "MyToken", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Relayer", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Target", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Twin", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ValidatorManager", + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + deployContract( + name: "IERC1155Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC721Errors", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Initializable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Burnable", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20Metadata", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "IERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Create2", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ECDSA", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Math", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Strings", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Bridged", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Collector", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "BridgedERC20", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ERC20Bridge", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "MyToken", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Relayer", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Target", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "Twin", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: "ValidatorManager", + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + + // default types + getContractFactory( + name: string, + signerOrOptions?: ethers.Signer | FactoryOptions + ): Promise; + getContractFactory( + abi: any[], + bytecode: ethers.BytesLike, + signer?: ethers.Signer + ): Promise; + getContractAt( + nameOrAbi: string | any[], + address: string | ethers.Addressable, + signer?: ethers.Signer + ): Promise; + deployContract( + name: string, + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + deployContract( + name: string, + args: any[], + signerOrOptions?: ethers.Signer | DeployContractOptions + ): Promise; + } +} diff --git a/products/bridge/typechain-types/index.ts b/products/bridge/typechain-types/index.ts new file mode 100644 index 000000000..0248168f7 --- /dev/null +++ b/products/bridge/typechain-types/index.ts @@ -0,0 +1,50 @@ +/* Autogenerated file. Do not edit manually. */ +/* tslint:disable */ +/* eslint-disable */ +import type * as openzeppelin from "./@openzeppelin"; +export type { openzeppelin }; +import type * as contracts from "./contracts"; +export type { contracts }; +export * as factories from "./factories"; +export type { IERC1155Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; +export { IERC1155Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory"; +export type { IERC20Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; +export { IERC20Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory"; +export type { IERC721Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; +export { IERC721Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory"; +export type { Initializable } from "./@openzeppelin/contracts/proxy/utils/Initializable"; +export { Initializable__factory } from "./factories/@openzeppelin/contracts/proxy/utils/Initializable__factory"; +export type { ERC20 } from "./@openzeppelin/contracts/token/ERC20/ERC20"; +export { ERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/ERC20__factory"; +export type { ERC20Burnable } from "./@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable"; +export { ERC20Burnable__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory"; +export type { IERC20Metadata } from "./@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; +export { IERC20Metadata__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory"; +export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; +export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; +export type { Create2 } from "./@openzeppelin/contracts/utils/Create2"; +export { Create2__factory } from "./factories/@openzeppelin/contracts/utils/Create2__factory"; +export type { ECDSA } from "./@openzeppelin/contracts/utils/cryptography/ECDSA"; +export { ECDSA__factory } from "./factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory"; +export type { Math } from "./@openzeppelin/contracts/utils/math/Math"; +export { Math__factory } from "./factories/@openzeppelin/contracts/utils/math/Math__factory"; +export type { Strings } from "./@openzeppelin/contracts/utils/Strings"; +export { Strings__factory } from "./factories/@openzeppelin/contracts/utils/Strings__factory"; +export type { Bridged } from "./contracts/Bridged"; +export { Bridged__factory } from "./factories/contracts/Bridged__factory"; +export type { Collector } from "./contracts/Collector"; +export { Collector__factory } from "./factories/contracts/Collector__factory"; +export type { BridgedERC20 } from "./contracts/ERC20Bridge.sol/BridgedERC20"; +export { BridgedERC20__factory } from "./factories/contracts/ERC20Bridge.sol/BridgedERC20__factory"; +export type { ERC20Bridge } from "./contracts/ERC20Bridge.sol/ERC20Bridge"; +export { ERC20Bridge__factory } from "./factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory"; +export type { MyToken } from "./contracts/ERC20Bridge.sol/MyToken"; +export { MyToken__factory } from "./factories/contracts/ERC20Bridge.sol/MyToken__factory"; +export type { Relayer } from "./contracts/Relayer"; +export { Relayer__factory } from "./factories/contracts/Relayer__factory"; +export type { Target } from "./contracts/Test.sol/Target"; +export { Target__factory } from "./factories/contracts/Test.sol/Target__factory"; +export type { Twin } from "./contracts/Test.sol/Twin"; +export { Twin__factory } from "./factories/contracts/Test.sol/Twin__factory"; +export type { ValidatorManager } from "./contracts/ValidatorManager"; +export { ValidatorManager__factory } from "./factories/contracts/ValidatorManager__factory"; From 6915f943df527bfb26af11145f516f267bd29c33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Thu, 4 Jan 2024 10:03:32 +0100 Subject: [PATCH 14/16] Removing accidental commit --- products/bridge/.npmrc | 1 - .../IERC1155Errors.dbg.json | 4 - .../draft-IERC6093.sol/IERC1155Errors.json | 113 -- .../draft-IERC6093.sol/IERC20Errors.dbg.json | 4 - .../draft-IERC6093.sol/IERC20Errors.json | 97 -- .../draft-IERC6093.sol/IERC721Errors.dbg.json | 4 - .../draft-IERC6093.sol/IERC721Errors.json | 114 -- .../Initializable.sol/Initializable.dbg.json | 4 - .../Initializable.sol/Initializable.json | 34 - .../token/ERC20/ERC20.sol/ERC20.dbg.json | 4 - .../token/ERC20/ERC20.sol/ERC20.json | 319 ----- .../token/ERC20/IERC20.sol/IERC20.dbg.json | 4 - .../token/ERC20/IERC20.sol/IERC20.json | 194 --- .../ERC20Burnable.sol/ERC20Burnable.dbg.json | 4 - .../ERC20Burnable.sol/ERC20Burnable.json | 350 ------ .../IERC20Metadata.dbg.json | 4 - .../IERC20Metadata.sol/IERC20Metadata.json | 233 ---- .../utils/Context.sol/Context.dbg.json | 4 - .../contracts/utils/Context.sol/Context.json | 10 - .../utils/Create2.sol/Create2.dbg.json | 4 - .../contracts/utils/Create2.sol/Create2.json | 37 - .../utils/Strings.sol/Strings.dbg.json | 4 - .../contracts/utils/Strings.sol/Strings.json | 27 - .../cryptography/ECDSA.sol/ECDSA.dbg.json | 4 - .../utils/cryptography/ECDSA.sol/ECDSA.json | 38 - .../MessageHashUtils.dbg.json | 4 - .../MessageHashUtils.json | 10 - .../utils/math/Math.sol/Math.dbg.json | 4 - .../contracts/utils/math/Math.sol/Math.json | 16 - .../math/SignedMath.sol/SignedMath.dbg.json | 4 - .../utils/math/SignedMath.sol/SignedMath.json | 10 - .../EnumerableSet.sol/EnumerableSet.dbg.json | 4 - .../EnumerableSet.sol/EnumerableSet.json | 10 - .../204a69f2da9dec65e0ea77918b488e3d.json | 1 - .../contracts/Bridged.sol/Bridged.dbg.json | 4 - .../contracts/Bridged.sol/Bridged.json | 105 -- .../Collector.sol/Collector.dbg.json | 4 - .../contracts/Collector.sol/Collector.json | 59 - .../ERC20Bridge.sol/BridgedERC20.dbg.json | 4 - .../ERC20Bridge.sol/BridgedERC20.json | 407 ------ .../ERC20Bridge.sol/ERC20Bridge.dbg.json | 4 - .../ERC20Bridge.sol/ERC20Bridge.json | 230 ---- .../ERC20Bridge.sol/MyToken.dbg.json | 4 - .../contracts/ERC20Bridge.sol/MyToken.json | 397 ------ .../contracts/Relayer.sol/Relayer.dbg.json | 4 - .../contracts/Relayer.sol/Relayer.json | 346 ----- .../contracts/Test.sol/Target.dbg.json | 4 - .../artifacts/contracts/Test.sol/Target.json | 30 - .../contracts/Test.sol/Twin.dbg.json | 4 - .../artifacts/contracts/Test.sol/Twin.json | 177 --- .../ValidatorManager.dbg.json | 4 - .../ValidatorManager.json | 199 --- .../hardhat/console.sol/console.dbg.json | 4 - .../hardhat/console.sol/console.json | 10 - .../bridge/cache/solidity-files-cache.json | 1114 ----------------- .../@openzeppelin/contracts/index.ts | 11 - .../draft-IERC6093.sol/IERC1155Errors.ts | 69 - .../draft-IERC6093.sol/IERC20Errors.ts | 69 - .../draft-IERC6093.sol/IERC721Errors.ts | 69 - .../interfaces/draft-IERC6093.sol/index.ts | 6 - .../contracts/interfaces/index.ts | 5 - .../@openzeppelin/contracts/proxy/index.ts | 5 - .../contracts/proxy/utils/Initializable.ts | 105 -- .../contracts/proxy/utils/index.ts | 4 - .../contracts/token/ERC20/ERC20.ts | 286 ----- .../contracts/token/ERC20/IERC20.ts | 262 ---- .../token/ERC20/extensions/ERC20Burnable.ts | 313 ----- .../token/ERC20/extensions/IERC20Metadata.ts | 286 ----- .../contracts/token/ERC20/extensions/index.ts | 5 - .../contracts/token/ERC20/index.ts | 7 - .../@openzeppelin/contracts/token/index.ts | 5 - .../@openzeppelin/contracts/utils/Create2.ts | 69 - .../@openzeppelin/contracts/utils/Strings.ts | 69 - .../contracts/utils/cryptography/ECDSA.ts | 69 - .../contracts/utils/cryptography/index.ts | 4 - .../@openzeppelin/contracts/utils/index.ts | 9 - .../contracts/utils/math/Math.ts | 69 - .../contracts/utils/math/index.ts | 4 - .../typechain-types/@openzeppelin/index.ts | 5 - products/bridge/typechain-types/common.ts | 131 -- .../typechain-types/contracts/Bridged.ts | 162 --- .../typechain-types/contracts/Collector.ts | 131 -- .../contracts/ERC20Bridge.sol/BridgedERC20.ts | 364 ------ .../contracts/ERC20Bridge.sol/ERC20Bridge.ts | 318 ----- .../contracts/ERC20Bridge.sol/MyToken.ts | 364 ------ .../contracts/ERC20Bridge.sol/index.ts | 6 - .../typechain-types/contracts/Relayer.ts | 405 ------ .../contracts/Test.sol/Target.ts | 85 -- .../contracts/Test.sol/Twin.ts | 265 ---- .../contracts/Test.sol/index.ts | 5 - .../contracts/ValidatorManager.ts | 221 ---- .../bridge/typechain-types/contracts/index.ts | 11 - .../@openzeppelin/contracts/index.ts | 7 - .../IERC1155Errors__factory.ts | 127 -- .../IERC20Errors__factory.ts | 111 -- .../IERC721Errors__factory.ts | 128 -- .../interfaces/draft-IERC6093.sol/index.ts | 6 - .../contracts/interfaces/index.ts | 4 - .../@openzeppelin/contracts/proxy/index.ts | 4 - .../proxy/utils/Initializable__factory.ts | 48 - .../contracts/proxy/utils/index.ts | 4 - .../contracts/token/ERC20/ERC20__factory.ts | 330 ----- .../contracts/token/ERC20/IERC20__factory.ts | 205 --- .../extensions/ERC20Burnable__factory.ts | 364 ------ .../extensions/IERC20Metadata__factory.ts | 247 ---- .../contracts/token/ERC20/extensions/index.ts | 5 - .../contracts/token/ERC20/index.ts | 6 - .../@openzeppelin/contracts/token/index.ts | 4 - .../contracts/utils/Create2__factory.ts | 90 -- .../contracts/utils/Strings__factory.ts | 80 -- .../utils/cryptography/ECDSA__factory.ts | 91 -- .../contracts/utils/cryptography/index.ts | 4 - .../@openzeppelin/contracts/utils/index.ts | 7 - .../contracts/utils/math/Math__factory.ts | 69 - .../contracts/utils/math/index.ts | 4 - .../factories/@openzeppelin/index.ts | 4 - .../factories/contracts/Bridged__factory.ts | 113 -- .../factories/contracts/Collector__factory.ts | 118 -- .../ERC20Bridge.sol/BridgedERC20__factory.ts | 476 ------- .../ERC20Bridge.sol/ERC20Bridge__factory.ts | 283 ----- .../ERC20Bridge.sol/MyToken__factory.ts | 459 ------- .../contracts/ERC20Bridge.sol/index.ts | 6 - .../factories/contracts/Relayer__factory.ts | 405 ------ .../contracts/Test.sol/Target__factory.ts | 83 -- .../contracts/Test.sol/Twin__factory.ts | 227 ---- .../factories/contracts/Test.sol/index.ts | 5 - .../contracts/ValidatorManager__factory.ts | 264 ---- .../factories/contracts/index.ts | 9 - .../bridge/typechain-types/factories/index.ts | 5 - products/bridge/typechain-types/hardhat.d.ts | 423 ------- products/bridge/typechain-types/index.ts | 50 - 131 files changed, 13940 deletions(-) delete mode 100644 products/bridge/.npmrc delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json delete mode 100644 products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json delete mode 100644 products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json delete mode 100644 products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json delete mode 100644 products/bridge/artifacts/contracts/Bridged.sol/Bridged.json delete mode 100644 products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json delete mode 100644 products/bridge/artifacts/contracts/Collector.sol/Collector.json delete mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json delete mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json delete mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json delete mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json delete mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json delete mode 100644 products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json delete mode 100644 products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json delete mode 100644 products/bridge/artifacts/contracts/Relayer.sol/Relayer.json delete mode 100644 products/bridge/artifacts/contracts/Test.sol/Target.dbg.json delete mode 100644 products/bridge/artifacts/contracts/Test.sol/Target.json delete mode 100644 products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json delete mode 100644 products/bridge/artifacts/contracts/Test.sol/Twin.json delete mode 100644 products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json delete mode 100644 products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json delete mode 100644 products/bridge/artifacts/hardhat/console.sol/console.dbg.json delete mode 100644 products/bridge/artifacts/hardhat/console.sol/console.json delete mode 100644 products/bridge/cache/solidity-files-cache.json delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts delete mode 100644 products/bridge/typechain-types/@openzeppelin/index.ts delete mode 100644 products/bridge/typechain-types/common.ts delete mode 100644 products/bridge/typechain-types/contracts/Bridged.ts delete mode 100644 products/bridge/typechain-types/contracts/Collector.ts delete mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts delete mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts delete mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts delete mode 100644 products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts delete mode 100644 products/bridge/typechain-types/contracts/Relayer.ts delete mode 100644 products/bridge/typechain-types/contracts/Test.sol/Target.ts delete mode 100644 products/bridge/typechain-types/contracts/Test.sol/Twin.ts delete mode 100644 products/bridge/typechain-types/contracts/Test.sol/index.ts delete mode 100644 products/bridge/typechain-types/contracts/ValidatorManager.ts delete mode 100644 products/bridge/typechain-types/contracts/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts delete mode 100644 products/bridge/typechain-types/factories/@openzeppelin/index.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/Bridged__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/Collector__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/Relayer__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/Test.sol/index.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts delete mode 100644 products/bridge/typechain-types/factories/contracts/index.ts delete mode 100644 products/bridge/typechain-types/factories/index.ts delete mode 100644 products/bridge/typechain-types/hardhat.d.ts delete mode 100644 products/bridge/typechain-types/index.ts diff --git a/products/bridge/.npmrc b/products/bridge/.npmrc deleted file mode 100644 index f87a04434..000000000 --- a/products/bridge/.npmrc +++ /dev/null @@ -1 +0,0 @@ -auto-install-peers=true \ No newline at end of file diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json deleted file mode 100644 index 0f04c9986..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json deleted file mode 100644 index 107d16fe0..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC1155Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC1155InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC1155InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "idsLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "valuesLength", - "type": "uint256" - } - ], - "name": "ERC1155InvalidArrayLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC1155InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC1155InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC1155InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC1155MissingApprovalForAll", - "type": "error" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json deleted file mode 100644 index 0f04c9986..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json deleted file mode 100644 index f77ad64ee..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json deleted file mode 100644 index 0f04c9986..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json b/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json deleted file mode 100644 index 6ccf3a73b..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC721Errors", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721IncorrectOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - }, - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721InsufficientApproval", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC721InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "operator", - "type": "address" - } - ], - "name": "ERC721InvalidOperator", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ERC721InvalidOwner", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC721InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC721InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "tokenId", - "type": "uint256" - } - ], - "name": "ERC721NonexistentToken", - "type": "error" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json b/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json deleted file mode 100644 index a945c51cd..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/proxy/utils/Initializable.sol/Initializable.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Initializable", - "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json deleted file mode 100644 index 81e661fa6..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/ERC20.sol/ERC20.json +++ /dev/null @@ -1,319 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json deleted file mode 100644 index 12e0777f7..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/IERC20.sol/IERC20.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json deleted file mode 100644 index 050e23616..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json deleted file mode 100644 index 6d6b5eaaa..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol/ERC20Burnable.json +++ /dev/null @@ -1,350 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20Burnable", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json deleted file mode 100644 index 050e23616..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json b/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json deleted file mode 100644 index a7d8b6ae3..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol/IERC20Metadata.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "IERC20Metadata", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json deleted file mode 100644 index 0f04c9986..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json deleted file mode 100644 index 8fe86fc78..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/Context.sol/Context.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Context", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "abi": [], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json deleted file mode 100644 index 0f04c9986..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json deleted file mode 100644 index b1d1b3136..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/Create2.sol/Create2.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Create2", - "sourceName": "@openzeppelin/contracts/utils/Create2.sol", - "abi": [ - { - "inputs": [], - "name": "Create2EmptyBytecode", - "type": "error" - }, - { - "inputs": [], - "name": "Create2FailedDeployment", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "Create2InsufficientBalance", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json deleted file mode 100644 index 0f04c9986..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json deleted file mode 100644 index 1b1999932..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/Strings.sol/Strings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Strings", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "StringsInsufficientHexLength", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json deleted file mode 100644 index c6bd23d5d..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/ECDSA.sol/ECDSA.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ECDSA", - "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "abi": [ - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json deleted file mode 100644 index 56155649d..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol/MessageHashUtils.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MessageHashUtils", - "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json deleted file mode 100644 index 3e52ef1d4..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/Math.sol/Math.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Math", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", - "abi": [ - { - "inputs": [], - "name": "MathOverflowedMulDiv", - "type": "error" - } - ], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json deleted file mode 100644 index 8277c9254..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/math/SignedMath.sol/SignedMath.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "SignedMath", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json deleted file mode 100644 index f0467dd7e..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../../../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json b/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json deleted file mode 100644 index 7d2312a5a..000000000 --- a/products/bridge/artifacts/@openzeppelin/contracts/utils/structs/EnumerableSet.sol/EnumerableSet.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "EnumerableSet", - "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json b/products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json deleted file mode 100644 index 74ccae77e..000000000 --- a/products/bridge/artifacts/build-info/204a69f2da9dec65e0ea77918b488e3d.json +++ /dev/null @@ -1 +0,0 @@ -{"id":"204a69f2da9dec65e0ea77918b488e3d","_format":"hh-sol-build-info-1","solcVersion":"0.8.20","solcLongVersion":"0.8.20+commit.a1b79de6","input":{"language":"Solidity","sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/draft-IERC6093.sol)\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard ERC20 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\n */\ninterface IERC20Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC20InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC20InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n * @param allowance Amount of tokens a `spender` is allowed to operate with.\n * @param needed Minimum amount required to perform a transfer.\n */\n error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC20InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n * @param spender Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC20InvalidSpender(address spender);\n}\n\n/**\n * @dev Standard ERC721 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\n */\ninterface IERC721Errors {\n /**\n * @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n * Used in balance queries.\n * @param owner Address of the current owner of a token.\n */\n error ERC721InvalidOwner(address owner);\n\n /**\n * @dev Indicates a `tokenId` whose `owner` is the zero address.\n * @param tokenId Identifier number of a token.\n */\n error ERC721NonexistentToken(uint256 tokenId);\n\n /**\n * @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param tokenId Identifier number of a token.\n * @param owner Address of the current owner of a token.\n */\n error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC721InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC721InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param tokenId Identifier number of a token.\n */\n error ERC721InsufficientApproval(address operator, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC721InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC721InvalidOperator(address operator);\n}\n\n/**\n * @dev Standard ERC1155 Errors\n * Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\n */\ninterface IERC1155Errors {\n /**\n * @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n * @param balance Current balance for the interacting account.\n * @param needed Minimum amount required to perform a transfer.\n * @param tokenId Identifier number of a token.\n */\n error ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId);\n\n /**\n * @dev Indicates a failure with the token `sender`. Used in transfers.\n * @param sender Address whose tokens are being transferred.\n */\n error ERC1155InvalidSender(address sender);\n\n /**\n * @dev Indicates a failure with the token `receiver`. Used in transfers.\n * @param receiver Address to which tokens are being transferred.\n */\n error ERC1155InvalidReceiver(address receiver);\n\n /**\n * @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n * @param owner Address of the current owner of a token.\n */\n error ERC1155MissingApprovalForAll(address operator, address owner);\n\n /**\n * @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n * @param approver Address initiating an approval operation.\n */\n error ERC1155InvalidApprover(address approver);\n\n /**\n * @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n * @param operator Address that may be allowed to operate on tokens without being their owner.\n */\n error ERC1155InvalidOperator(address operator);\n\n /**\n * @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n * Used in batch transfers.\n * @param idsLength Length of the array of token identifiers\n * @param valuesLength Length of the array of token amounts\n */\n error ERC1155InvalidArrayLength(uint256 idsLength, uint256 valuesLength);\n}\n"},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/Initializable.sol)\n\npragma solidity ^0.8.20;\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 proxied contracts do not make use of 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 * The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n * reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n * case an upgrade adds a module that needs to be initialized.\n *\n * For example:\n *\n * [.hljs-theme-light.nopadding]\n * ```solidity\n * contract MyToken is ERC20Upgradeable {\n * function initialize() initializer public {\n * __ERC20_init(\"MyToken\", \"MTK\");\n * }\n * }\n *\n * contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n * function initializeV2() reinitializer(2) public {\n * __ERC20Permit_init(\"MyToken\");\n * }\n * }\n * ```\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 prevent the implementation contract from being used, you should invoke\n * the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n *\n * [.hljs-theme-light.nopadding]\n * ```\n * /// @custom:oz-upgrades-unsafe-allow constructor\n * constructor() {\n * _disableInitializers();\n * }\n * ```\n * ====\n */\nabstract contract Initializable {\n /**\n * @dev Storage of the initializable contract.\n *\n * It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n * when using with upgradeable contracts.\n *\n * @custom:storage-location erc7201:openzeppelin.storage.Initializable\n */\n struct InitializableStorage {\n /**\n * @dev Indicates that the contract has been initialized.\n */\n uint64 _initialized;\n /**\n * @dev Indicates that the contract is in the process of being initialized.\n */\n bool _initializing;\n }\n\n // keccak256(abi.encode(uint256(keccak256(\"openzeppelin.storage.Initializable\")) - 1)) & ~bytes32(uint256(0xff))\n bytes32 private constant INITIALIZABLE_STORAGE = 0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00;\n\n /**\n * @dev The contract is already initialized.\n */\n error InvalidInitialization();\n\n /**\n * @dev The contract is not initializing.\n */\n error NotInitializing();\n\n /**\n * @dev Triggered when the contract has been initialized or reinitialized.\n */\n event Initialized(uint64 version);\n\n /**\n * @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n * `onlyInitializing` functions can be used to initialize parent contracts.\n *\n * Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n * number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n * production.\n *\n * Emits an {Initialized} event.\n */\n modifier initializer() {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n // Cache values to avoid duplicated sloads\n bool isTopLevelCall = !$._initializing;\n uint64 initialized = $._initialized;\n\n // Allowed calls:\n // - initialSetup: the contract is not in the initializing state and no previous version was\n // initialized\n // - construction: the contract is initialized at version 1 (no reininitialization) and the\n // current contract is just being deployed\n bool initialSetup = initialized == 0 && isTopLevelCall;\n bool construction = initialized == 1 && address(this).code.length == 0;\n\n if (!initialSetup && !construction) {\n revert InvalidInitialization();\n }\n $._initialized = 1;\n if (isTopLevelCall) {\n $._initializing = true;\n }\n _;\n if (isTopLevelCall) {\n $._initializing = false;\n emit Initialized(1);\n }\n }\n\n /**\n * @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n * contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n * used to initialize parent contracts.\n *\n * A reinitializer may be used after the original initialization step. This is essential to configure modules that\n * are added through upgrades and that require initialization.\n *\n * When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n * cannot be nested. If one is invoked in the context of another, execution will revert.\n *\n * Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n * a contract, executing them in the right order is up to the developer or operator.\n *\n * WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n *\n * Emits an {Initialized} event.\n */\n modifier reinitializer(uint64 version) {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing || $._initialized >= version) {\n revert InvalidInitialization();\n }\n $._initialized = version;\n $._initializing = true;\n _;\n $._initializing = false;\n emit Initialized(version);\n }\n\n /**\n * @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n * {initializer} and {reinitializer} modifiers, directly or indirectly.\n */\n modifier onlyInitializing() {\n _checkInitializing();\n _;\n }\n\n /**\n * @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}.\n */\n function _checkInitializing() internal view virtual {\n if (!_isInitializing()) {\n revert NotInitializing();\n }\n }\n\n /**\n * @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n * Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n * to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n * through proxies.\n *\n * Emits an {Initialized} event the first time it is successfully executed.\n */\n function _disableInitializers() internal virtual {\n // solhint-disable-next-line var-name-mixedcase\n InitializableStorage storage $ = _getInitializableStorage();\n\n if ($._initializing) {\n revert InvalidInitialization();\n }\n if ($._initialized != type(uint64).max) {\n $._initialized = type(uint64).max;\n emit Initialized(type(uint64).max);\n }\n }\n\n /**\n * @dev Returns the highest version that has been initialized. See {reinitializer}.\n */\n function _getInitializedVersion() internal view returns (uint64) {\n return _getInitializableStorage()._initialized;\n }\n\n /**\n * @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}.\n */\n function _isInitializing() internal view returns (bool) {\n return _getInitializableStorage()._initializing;\n }\n\n /**\n * @dev Returns a pointer to the storage namespace.\n */\n // solhint-disable-next-line var-name-mixedcase\n function _getInitializableStorage() private pure returns (InitializableStorage storage $) {\n assembly {\n $.slot := INITIALIZABLE_STORAGE\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/ERC20.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"./IERC20.sol\";\nimport {IERC20Metadata} from \"./extensions/IERC20Metadata.sol\";\nimport {Context} from \"../../utils/Context.sol\";\nimport {IERC20Errors} from \"../../interfaces/draft-IERC6093.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * The default value of {decimals} is 18. To change this, you should override\n * this function so it returns a different value.\n *\n * We have followed general OpenZeppelin Contracts guidelines: functions revert\n * instead returning `false` on failure. This behavior is nonetheless\n * conventional and does not conflict with the expectations of ERC20\n * applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n */\nabstract contract ERC20 is Context, IERC20, IERC20Metadata, IERC20Errors {\n mapping(address account => uint256) private _balances;\n\n mapping(address account => mapping(address spender => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n string private _name;\n string private _symbol;\n\n /**\n * @dev Sets the values for {name} and {symbol}.\n *\n * All two of these values are immutable: they can only be set once during\n * construction.\n */\n constructor(string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n }\n\n /**\n * @dev Returns the name of the token.\n */\n function name() public view virtual returns (string memory) {\n return _name;\n }\n\n /**\n * @dev Returns the symbol of the token, usually a shorter version of the\n * name.\n */\n function symbol() public view virtual returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev Returns the number of decimals used to get its user representation.\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\n * be displayed to a user as `5.05` (`505 / 10 ** 2`).\n *\n * Tokens usually opt for a value of 18, imitating the relationship between\n * Ether and Wei. This is the default value returned by this function, unless\n * it's overridden.\n *\n * NOTE: This information is only used for _display_ purposes: it in\n * no way affects any of the arithmetic of the contract, including\n * {IERC20-balanceOf} and {IERC20-transfer}.\n */\n function decimals() public view virtual returns (uint8) {\n return 18;\n }\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view virtual returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view virtual returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - the caller must have a balance of at least `value`.\n */\n function transfer(address to, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _transfer(owner, to, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view virtual returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n * `transferFrom`. This is semantically equivalent to an infinite approval.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 value) public virtual returns (bool) {\n address owner = _msgSender();\n _approve(owner, spender, value);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20}.\n *\n * NOTE: Does not update the allowance if the current allowance\n * is the maximum `uint256`.\n *\n * Requirements:\n *\n * - `from` and `to` cannot be the zero address.\n * - `from` must have a balance of at least `value`.\n * - the caller must have allowance for ``from``'s tokens of at least\n * `value`.\n */\n function transferFrom(address from, address to, uint256 value) public virtual returns (bool) {\n address spender = _msgSender();\n _spendAllowance(from, spender, value);\n _transfer(from, to, value);\n return true;\n }\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to`.\n *\n * This internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _transfer(address from, address to, uint256 value) internal {\n if (from == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n if (to == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(from, to, value);\n }\n\n /**\n * @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n * (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n * this function.\n *\n * Emits a {Transfer} event.\n */\n function _update(address from, address to, uint256 value) internal virtual {\n if (from == address(0)) {\n // Overflow check required: The rest of the code assumes that totalSupply never overflows\n _totalSupply += value;\n } else {\n uint256 fromBalance = _balances[from];\n if (fromBalance < value) {\n revert ERC20InsufficientBalance(from, fromBalance, value);\n }\n unchecked {\n // Overflow not possible: value <= fromBalance <= totalSupply.\n _balances[from] = fromBalance - value;\n }\n }\n\n if (to == address(0)) {\n unchecked {\n // Overflow not possible: value <= totalSupply or value <= fromBalance <= totalSupply.\n _totalSupply -= value;\n }\n } else {\n unchecked {\n // Overflow not possible: balance + value is at most totalSupply, which we know fits into a uint256.\n _balances[to] += value;\n }\n }\n\n emit Transfer(from, to, value);\n }\n\n /**\n * @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n * Relies on the `_update` mechanism\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead.\n */\n function _mint(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidReceiver(address(0));\n }\n _update(address(0), account, value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n * Relies on the `_update` mechanism.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * NOTE: This function is not virtual, {_update} should be overridden instead\n */\n function _burn(address account, uint256 value) internal {\n if (account == address(0)) {\n revert ERC20InvalidSender(address(0));\n }\n _update(account, address(0), value);\n }\n\n /**\n * @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n *\n * This internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n *\n * Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument.\n */\n function _approve(address owner, address spender, uint256 value) internal {\n _approve(owner, spender, value, true);\n }\n\n /**\n * @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n *\n * By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n * `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n * `Approval` event during `transferFrom` operations.\n *\n * Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n * true using the following override:\n * ```\n * function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n * super._approve(owner, spender, value, true);\n * }\n * ```\n *\n * Requirements are the same as {_approve}.\n */\n function _approve(address owner, address spender, uint256 value, bool emitEvent) internal virtual {\n if (owner == address(0)) {\n revert ERC20InvalidApprover(address(0));\n }\n if (spender == address(0)) {\n revert ERC20InvalidSpender(address(0));\n }\n _allowances[owner][spender] = value;\n if (emitEvent) {\n emit Approval(owner, spender, value);\n }\n }\n\n /**\n * @dev Updates `owner` s allowance for `spender` based on spent `value`.\n *\n * Does not update the allowance value in case of infinite allowance.\n * Revert if not enough allowance is available.\n *\n * Does not emit an {Approval} event.\n */\n function _spendAllowance(address owner, address spender, uint256 value) internal virtual {\n uint256 currentAllowance = allowance(owner, spender);\n if (currentAllowance != type(uint256).max) {\n if (currentAllowance < value) {\n revert ERC20InsufficientAllowance(spender, currentAllowance, value);\n }\n unchecked {\n _approve(owner, spender, currentAllowance - value, false);\n }\n }\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/ERC20Burnable.sol)\n\npragma solidity ^0.8.20;\n\nimport {ERC20} from \"../ERC20.sol\";\nimport {Context} from \"../../../utils/Context.sol\";\n\n/**\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\n * tokens and those that they have an allowance for, in a way that can be\n * recognized off-chain (via event analysis).\n */\nabstract contract ERC20Burnable is Context, ERC20 {\n /**\n * @dev Destroys a `value` amount of tokens from the caller.\n *\n * See {ERC20-_burn}.\n */\n function burn(uint256 value) public virtual {\n _burn(_msgSender(), value);\n }\n\n /**\n * @dev Destroys a `value` amount of tokens from `account`, deducting from\n * the caller's allowance.\n *\n * See {ERC20-_burn} and {ERC20-allowance}.\n *\n * Requirements:\n *\n * - the caller must have allowance for ``accounts``'s tokens of at least\n * `value`.\n */\n function burnFrom(address account, uint256 value) public virtual {\n _spendAllowance(account, _msgSender(), value);\n _burn(account, value);\n }\n}\n"},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/extensions/IERC20Metadata.sol)\n\npragma solidity ^0.8.20;\n\nimport {IERC20} from \"../IERC20.sol\";\n\n/**\n * @dev Interface for the optional metadata functions from the ERC20 standard.\n */\ninterface IERC20Metadata is IERC20 {\n /**\n * @dev Returns the name of the token.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the symbol of the token.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the decimals places of the token.\n */\n function decimals() external view returns (uint8);\n}\n"},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP.\n */\ninterface IERC20 {\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n\n /**\n * @dev Returns the value of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the value of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves a `value` amount of tokens from the caller's account to `to`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address to, uint256 value) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n * caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 value) external returns (bool);\n\n /**\n * @dev Moves a `value` amount of tokens from `from` to `to` using the\n * allowance mechanism. `value` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 value) external returns (bool);\n}\n"},"@openzeppelin/contracts/utils/Context.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol)\n\npragma solidity ^0.8.20;\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/Create2.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Create2.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n * `CREATE2` can be used to compute in advance the address where a smart\n * contract will be deployed, which allows for interesting new mechanisms known\n * as 'counterfactual interactions'.\n *\n * See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n * information.\n */\nlibrary Create2 {\n /**\n * @dev Not enough balance for performing a CREATE2 deploy.\n */\n error Create2InsufficientBalance(uint256 balance, uint256 needed);\n\n /**\n * @dev There's no code to deploy.\n */\n error Create2EmptyBytecode();\n\n /**\n * @dev The deployment failed.\n */\n error Create2FailedDeployment();\n\n /**\n * @dev Deploys a contract using `CREATE2`. The address where the contract\n * will be deployed can be known in advance via {computeAddress}.\n *\n * The bytecode for a contract can be obtained from Solidity with\n * `type(contractName).creationCode`.\n *\n * Requirements:\n *\n * - `bytecode` must not be empty.\n * - `salt` must have not been used for `bytecode` already.\n * - the factory must have a balance of at least `amount`.\n * - if `amount` is non-zero, `bytecode` must have a `payable` constructor.\n */\n function deploy(uint256 amount, bytes32 salt, bytes memory bytecode) internal returns (address addr) {\n if (address(this).balance < amount) {\n revert Create2InsufficientBalance(address(this).balance, amount);\n }\n if (bytecode.length == 0) {\n revert Create2EmptyBytecode();\n }\n /// @solidity memory-safe-assembly\n assembly {\n addr := create2(amount, add(bytecode, 0x20), mload(bytecode), salt)\n }\n if (addr == address(0)) {\n revert Create2FailedDeployment();\n }\n }\n\n /**\n * @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n * `bytecodeHash` or `salt` will result in a new destination address.\n */\n function computeAddress(bytes32 salt, bytes32 bytecodeHash) internal view returns (address) {\n return computeAddress(salt, bytecodeHash, address(this));\n }\n\n /**\n * @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n * `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}.\n */\n function computeAddress(bytes32 salt, bytes32 bytecodeHash, address deployer) internal pure returns (address addr) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40) // Get free memory pointer\n\n // | | ↓ ptr ... ↓ ptr + 0x0B (start) ... ↓ ptr + 0x20 ... ↓ ptr + 0x40 ... |\n // |-------------------|---------------------------------------------------------------------------|\n // | bytecodeHash | CCCCCCCCCCCCC...CC |\n // | salt | BBBBBBBBBBBBB...BB |\n // | deployer | 000000...0000AAAAAAAAAAAAAAAAAAA...AA |\n // | 0xFF | FF |\n // |-------------------|---------------------------------------------------------------------------|\n // | memory | 000000...00FFAAAAAAAAAAAAAAAAAAA...AABBBBBBBBBBBBB...BBCCCCCCCCCCCCC...CC |\n // | keccak(start, 85) | ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ |\n\n mstore(add(ptr, 0x40), bytecodeHash)\n mstore(add(ptr, 0x20), salt)\n mstore(ptr, deployer) // Right-aligned with 12 preceding garbage bytes\n let start := add(ptr, 0x0b) // The hashed data starts at the final garbage byte which we will set to 0xff\n mstore8(start, 0xff)\n addr := keccak256(start, 85)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/ECDSA.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n enum RecoverError {\n NoError,\n InvalidSignature,\n InvalidSignatureLength,\n InvalidSignatureS\n }\n\n /**\n * @dev The signature derives the `address(0)`.\n */\n error ECDSAInvalidSignature();\n\n /**\n * @dev The signature has an invalid length.\n */\n error ECDSAInvalidSignatureLength(uint256 length);\n\n /**\n * @dev The signature has an S value that is in the upper half order.\n */\n error ECDSAInvalidSignatureS(bytes32 s);\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n * return address(0) without also returning an error description. Errors are documented using an enum (error type)\n * and a bytes32 providing additional information about the error.\n *\n * If no error is returned, then the address can be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n *\n * Documentation for signature generation:\n * - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n * - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]\n */\n function tryRecover(bytes32 hash, bytes memory signature) internal pure returns (address, RecoverError, bytes32) {\n if (signature.length == 65) {\n bytes32 r;\n bytes32 s;\n uint8 v;\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n /// @solidity memory-safe-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n return tryRecover(hash, v, r, s);\n } else {\n return (address(0), RecoverError.InvalidSignatureLength, bytes32(signature.length));\n }\n }\n\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, signature);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n *\n * See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]\n */\n function tryRecover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address, RecoverError, bytes32) {\n unchecked {\n bytes32 s = vs & bytes32(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);\n // We do not check for an overflow here since the shift operation results in 0 or 1.\n uint8 v = uint8((uint256(vs) >> 255) + 27);\n return tryRecover(hash, v, r, s);\n }\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately.\n */\n function recover(bytes32 hash, bytes32 r, bytes32 vs) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, r, vs);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function tryRecover(\n bytes32 hash,\n uint8 v,\n bytes32 r,\n bytes32 s\n ) internal pure returns (address, RecoverError, bytes32) {\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (301): 0 < s < secp256k1n ÷ 2 + 1, and for v in (302): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return (address(0), RecoverError.InvalidSignatureS, s);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n address signer = ecrecover(hash, v, r, s);\n if (signer == address(0)) {\n return (address(0), RecoverError.InvalidSignature, bytes32(0));\n }\n\n return (signer, RecoverError.NoError, bytes32(0));\n }\n\n /**\n * @dev Overload of {ECDSA-recover} that receives the `v`,\n * `r` and `s` signature fields separately.\n */\n function recover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal pure returns (address) {\n (address recovered, RecoverError error, bytes32 errorArg) = tryRecover(hash, v, r, s);\n _throwError(error, errorArg);\n return recovered;\n }\n\n /**\n * @dev Optionally reverts with the corresponding custom error according to the `error` argument provided.\n */\n function _throwError(RecoverError error, bytes32 errorArg) private pure {\n if (error == RecoverError.NoError) {\n return; // no error: do nothing\n } else if (error == RecoverError.InvalidSignature) {\n revert ECDSAInvalidSignature();\n } else if (error == RecoverError.InvalidSignatureLength) {\n revert ECDSAInvalidSignatureLength(uint256(errorArg));\n } else if (error == RecoverError.InvalidSignatureS) {\n revert ECDSAInvalidSignatureS(errorArg);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/cryptography/MessageHashUtils.sol)\n\npragma solidity ^0.8.20;\n\nimport {Strings} from \"../Strings.sol\";\n\n/**\n * @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n *\n * The library provides methods for generating a hash of a message that conforms to the\n * https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n * specifications.\n */\nlibrary MessageHashUtils {\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing a bytes32 `messageHash` with\n * `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n * keccak256, although any bytes32 value can be safely used because the final digest will\n * be re-hashed.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes32 messageHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n mstore(0x00, \"\\x19Ethereum Signed Message:\\n32\") // 32 is the bytes-length of messageHash\n mstore(0x1c, messageHash) // 0x1c (28) is the length of the prefix\n digest := keccak256(0x00, 0x3c) // 0x3c is the length of the prefix (0x1c) + messageHash (0x20)\n }\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x45` (`personal_sign` messages).\n *\n * The digest is calculated by prefixing an arbitrary `message` with\n * `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n * hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n *\n * See {ECDSA-recover}.\n */\n function toEthSignedMessageHash(bytes memory message) internal pure returns (bytes32) {\n return\n keccak256(bytes.concat(\"\\x19Ethereum Signed Message:\\n\", bytes(Strings.toString(message.length)), message));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-191 signed data with version\n * `0x00` (data with intended validator).\n *\n * The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n * `validator` address. Then hashing the result.\n *\n * See {ECDSA-recover}.\n */\n function toDataWithIntendedValidatorHash(address validator, bytes memory data) internal pure returns (bytes32) {\n return keccak256(abi.encodePacked(hex\"19_00\", validator, data));\n }\n\n /**\n * @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n *\n * The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n * `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n * https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n *\n * See {ECDSA-recover}.\n */\n function toTypedDataHash(bytes32 domainSeparator, bytes32 structHash) internal pure returns (bytes32 digest) {\n /// @solidity memory-safe-assembly\n assembly {\n let ptr := mload(0x40)\n mstore(ptr, hex\"19_01\")\n mstore(add(ptr, 0x02), domainSeparator)\n mstore(add(ptr, 0x22), structHash)\n digest := keccak256(ptr, 0x42)\n }\n }\n}\n"},"@openzeppelin/contracts/utils/math/Math.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/Math.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Muldiv operation overflow.\n */\n error MathOverflowedMulDiv();\n\n enum Rounding {\n Floor, // Toward negative infinity\n Ceil, // Toward positive infinity\n Trunc, // Toward zero\n Expand // Away from zero\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, with an overflow flag.\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n unchecked {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n }\n\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow.\n return (a & b) + (a ^ b) / 2;\n }\n\n /**\n * @dev Returns the ceiling of the division of two numbers.\n *\n * This differs from standard division with `/` in that it rounds towards infinity instead\n * of rounding towards zero.\n */\n function ceilDiv(uint256 a, uint256 b) internal pure returns (uint256) {\n if (b == 0) {\n // Guarantee the same behavior as in a regular Solidity division.\n return a / b;\n }\n\n // (a + b - 1) / b can overflow on addition, so we distribute.\n return a == 0 ? 0 : (a - 1) / b + 1;\n }\n\n /**\n * @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n * denominator == 0.\n * @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n * Uniswap Labs also under MIT license.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator) internal pure returns (uint256 result) {\n unchecked {\n // 512-bit multiply [prod1 prod0] = x * y. Compute the product mod 2^256 and mod 2^256 - 1, then use\n // use the Chinese Remainder Theorem to reconstruct the 512 bit result. The result is stored in two 256\n // variables such that product = prod1 * 2^256 + prod0.\n uint256 prod0 = x * y; // Least significant 256 bits of the product\n uint256 prod1; // Most significant 256 bits of the product\n assembly {\n let mm := mulmod(x, y, not(0))\n prod1 := sub(sub(mm, prod0), lt(mm, prod0))\n }\n\n // Handle non-overflow cases, 256 by 256 division.\n if (prod1 == 0) {\n // Solidity will revert if denominator == 0, unlike the div opcode on its own.\n // The surrounding unchecked block does not change this fact.\n // See https://docs.soliditylang.org/en/latest/control-structures.html#checked-or-unchecked-arithmetic.\n return prod0 / denominator;\n }\n\n // Make sure the result is less than 2^256. Also prevents denominator == 0.\n if (denominator <= prod1) {\n revert MathOverflowedMulDiv();\n }\n\n ///////////////////////////////////////////////\n // 512 by 256 division.\n ///////////////////////////////////////////////\n\n // Make division exact by subtracting the remainder from [prod1 prod0].\n uint256 remainder;\n assembly {\n // Compute remainder using mulmod.\n remainder := mulmod(x, y, denominator)\n\n // Subtract 256 bit number from 512 bit number.\n prod1 := sub(prod1, gt(remainder, prod0))\n prod0 := sub(prod0, remainder)\n }\n\n // Factor powers of two out of denominator and compute largest power of two divisor of denominator.\n // Always >= 1. See https://cs.stackexchange.com/q/138556/92363.\n\n uint256 twos = denominator & (0 - denominator);\n assembly {\n // Divide denominator by twos.\n denominator := div(denominator, twos)\n\n // Divide [prod1 prod0] by twos.\n prod0 := div(prod0, twos)\n\n // Flip twos such that it is 2^256 / twos. If twos is zero, then it becomes one.\n twos := add(div(sub(0, twos), twos), 1)\n }\n\n // Shift in bits from prod1 into prod0.\n prod0 |= prod1 * twos;\n\n // Invert denominator mod 2^256. Now that denominator is an odd number, it has an inverse modulo 2^256 such\n // that denominator * inv = 1 mod 2^256. Compute the inverse by starting with a seed that is correct for\n // four bits. That is, denominator * inv = 1 mod 2^4.\n uint256 inverse = (3 * denominator) ^ 2;\n\n // Use the Newton-Raphson iteration to improve the precision. Thanks to Hensel's lifting lemma, this also\n // works in modular arithmetic, doubling the correct bits in each step.\n inverse *= 2 - denominator * inverse; // inverse mod 2^8\n inverse *= 2 - denominator * inverse; // inverse mod 2^16\n inverse *= 2 - denominator * inverse; // inverse mod 2^32\n inverse *= 2 - denominator * inverse; // inverse mod 2^64\n inverse *= 2 - denominator * inverse; // inverse mod 2^128\n inverse *= 2 - denominator * inverse; // inverse mod 2^256\n\n // Because the division is now exact we can divide by multiplying with the modular inverse of denominator.\n // This will give us the correct result modulo 2^256. Since the preconditions guarantee that the outcome is\n // less than 2^256, this is the final result. We don't need to compute the high bits of the result and prod1\n // is no longer required.\n result = prod0 * inverse;\n return result;\n }\n }\n\n /**\n * @notice Calculates x * y / denominator with full precision, following the selected rounding direction.\n */\n function mulDiv(uint256 x, uint256 y, uint256 denominator, Rounding rounding) internal pure returns (uint256) {\n uint256 result = mulDiv(x, y, denominator);\n if (unsignedRoundsUp(rounding) && mulmod(x, y, denominator) > 0) {\n result += 1;\n }\n return result;\n }\n\n /**\n * @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n * towards zero.\n *\n * Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11).\n */\n function sqrt(uint256 a) internal pure returns (uint256) {\n if (a == 0) {\n return 0;\n }\n\n // For our first guess, we get the biggest power of 2 which is smaller than the square root of the target.\n //\n // We know that the \"msb\" (most significant bit) of our target number `a` is a power of 2 such that we have\n // `msb(a) <= a < 2*msb(a)`. This value can be written `msb(a)=2**k` with `k=log2(a)`.\n //\n // This can be rewritten `2**log2(a) <= a < 2**(log2(a) + 1)`\n // → `sqrt(2**k) <= sqrt(a) < sqrt(2**(k+1))`\n // → `2**(k/2) <= sqrt(a) < 2**((k+1)/2) <= 2**(k/2 + 1)`\n //\n // Consequently, `2**(log2(a) / 2)` is a good first approximation of `sqrt(a)` with at least 1 correct bit.\n uint256 result = 1 << (log2(a) >> 1);\n\n // At this point `result` is an estimation with one bit of precision. We know the true value is a uint128,\n // since it is the square root of a uint256. Newton's method converges quadratically (precision doubles at\n // every iteration). We thus need at most 7 iteration to turn our partial result with one bit of precision\n // into the expected uint128 result.\n unchecked {\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n result = (result + a / result) >> 1;\n return min(result, a / result);\n }\n }\n\n /**\n * @notice Calculates sqrt(a), following the selected rounding direction.\n */\n function sqrt(uint256 a, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = sqrt(a);\n return result + (unsignedRoundsUp(rounding) && result * result < a ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 2 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log2(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 128;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 64;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 32;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 16;\n }\n if (value >> 8 > 0) {\n value >>= 8;\n result += 8;\n }\n if (value >> 4 > 0) {\n value >>= 4;\n result += 4;\n }\n if (value >> 2 > 0) {\n value >>= 2;\n result += 2;\n }\n if (value >> 1 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log2(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log2(value);\n return result + (unsignedRoundsUp(rounding) && 1 << result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 10 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n */\n function log10(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >= 10 ** 64) {\n value /= 10 ** 64;\n result += 64;\n }\n if (value >= 10 ** 32) {\n value /= 10 ** 32;\n result += 32;\n }\n if (value >= 10 ** 16) {\n value /= 10 ** 16;\n result += 16;\n }\n if (value >= 10 ** 8) {\n value /= 10 ** 8;\n result += 8;\n }\n if (value >= 10 ** 4) {\n value /= 10 ** 4;\n result += 4;\n }\n if (value >= 10 ** 2) {\n value /= 10 ** 2;\n result += 2;\n }\n if (value >= 10 ** 1) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log10(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log10(value);\n return result + (unsignedRoundsUp(rounding) && 10 ** result < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Return the log in base 256 of a positive value rounded towards zero.\n * Returns 0 if given 0.\n *\n * Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string.\n */\n function log256(uint256 value) internal pure returns (uint256) {\n uint256 result = 0;\n unchecked {\n if (value >> 128 > 0) {\n value >>= 128;\n result += 16;\n }\n if (value >> 64 > 0) {\n value >>= 64;\n result += 8;\n }\n if (value >> 32 > 0) {\n value >>= 32;\n result += 4;\n }\n if (value >> 16 > 0) {\n value >>= 16;\n result += 2;\n }\n if (value >> 8 > 0) {\n result += 1;\n }\n }\n return result;\n }\n\n /**\n * @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n * Returns 0 if given 0.\n */\n function log256(uint256 value, Rounding rounding) internal pure returns (uint256) {\n unchecked {\n uint256 result = log256(value);\n return result + (unsignedRoundsUp(rounding) && 1 << (result << 3) < value ? 1 : 0);\n }\n }\n\n /**\n * @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers.\n */\n function unsignedRoundsUp(Rounding rounding) internal pure returns (bool) {\n return uint8(rounding) % 2 == 1;\n }\n}\n"},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/math/SignedMath.sol)\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Standard signed math utilities missing in the Solidity language.\n */\nlibrary SignedMath {\n /**\n * @dev Returns the largest of two signed numbers.\n */\n function max(int256 a, int256 b) internal pure returns (int256) {\n return a > b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two signed numbers.\n */\n function min(int256 a, int256 b) internal pure returns (int256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two signed numbers without overflow.\n * The result is rounded towards zero.\n */\n function average(int256 a, int256 b) internal pure returns (int256) {\n // Formula from the book \"Hacker's Delight\"\n int256 x = (a & b) + ((a ^ b) >> 1);\n return x + (int256(uint256(x) >> 255) & (a ^ b));\n }\n\n /**\n * @dev Returns the absolute unsigned value of a signed value.\n */\n function abs(int256 n) internal pure returns (uint256) {\n unchecked {\n // must be unchecked in order to support `n = type(int256).min`\n return uint256(n >= 0 ? n : -n);\n }\n }\n}\n"},"@openzeppelin/contracts/utils/Strings.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/Strings.sol)\n\npragma solidity ^0.8.20;\n\nimport {Math} from \"./math/Math.sol\";\nimport {SignedMath} from \"./math/SignedMath.sol\";\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n bytes16 private constant HEX_DIGITS = \"0123456789abcdef\";\n uint8 private constant ADDRESS_LENGTH = 20;\n\n /**\n * @dev The `value` string doesn't fit in the specified `length`.\n */\n error StringsInsufficientHexLength(uint256 value, uint256 length);\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 unchecked {\n uint256 length = Math.log10(value) + 1;\n string memory buffer = new string(length);\n uint256 ptr;\n /// @solidity memory-safe-assembly\n assembly {\n ptr := add(buffer, add(32, length))\n }\n while (true) {\n ptr--;\n /// @solidity memory-safe-assembly\n assembly {\n mstore8(ptr, byte(mod(value, 10), HEX_DIGITS))\n }\n value /= 10;\n if (value == 0) break;\n }\n return buffer;\n }\n }\n\n /**\n * @dev Converts a `int256` to its ASCII `string` decimal representation.\n */\n function toStringSigned(int256 value) internal pure returns (string memory) {\n return string.concat(value < 0 ? \"-\" : \"\", toString(SignedMath.abs(value)));\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 unchecked {\n return toHexString(value, Math.log256(value) + 1);\n }\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 uint256 localValue = value;\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_DIGITS[localValue & 0xf];\n localValue >>= 4;\n }\n if (localValue != 0) {\n revert StringsInsufficientHexLength(value, length);\n }\n return string(buffer);\n }\n\n /**\n * @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n * representation.\n */\n function toHexString(address addr) internal pure returns (string memory) {\n return toHexString(uint256(uint160(addr)), ADDRESS_LENGTH);\n }\n\n /**\n * @dev Returns true if the two strings are equal.\n */\n function equal(string memory a, string memory b) internal pure returns (bool) {\n return bytes(a).length == bytes(b).length && keccak256(bytes(a)) == keccak256(bytes(b));\n }\n}\n"},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"content":"// SPDX-License-Identifier: MIT\n// OpenZeppelin Contracts (last updated v5.0.0) (utils/structs/EnumerableSet.sol)\n// This file was procedurally generated from scripts/generate/templates/EnumerableSet.js.\n\npragma solidity ^0.8.20;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```solidity\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n *\n * [WARNING]\n * ====\n * Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n * unusable.\n * See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n *\n * In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n * array of EnumerableSet.\n * ====\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n // Position is the index of the value in the `values` array plus 1.\n // Position 0 is used to mean a value is not in the set.\n mapping(bytes32 value => uint256) _positions;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._positions[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We cache the value's position to prevent multiple reads from the same storage slot\n uint256 position = set._positions[value];\n\n if (position != 0) {\n // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 valueIndex = position - 1;\n uint256 lastIndex = set._values.length - 1;\n\n if (valueIndex != lastIndex) {\n bytes32 lastValue = set._values[lastIndex];\n\n // Move the lastValue to the index where the value to delete is\n set._values[valueIndex] = lastValue;\n // Update the tracked position of the lastValue (that was just moved)\n set._positions[lastValue] = position;\n }\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the tracked position for the deleted slot\n delete set._positions[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._positions[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n return set._values[index];\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function _values(Set storage set) private view returns (bytes32[] memory) {\n return set._values;\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(Bytes32Set storage set) internal view returns (bytes32[] memory) {\n bytes32[] memory store = _values(set._inner);\n bytes32[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(AddressSet storage set) internal view returns (address[] memory) {\n bytes32[] memory store = _values(set._inner);\n address[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n\n /**\n * @dev Return the entire set in an array\n *\n * WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n * to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n * this function has an unbounded cost, and using it as part of a state-changing function may render the function\n * uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block.\n */\n function values(UintSet storage set) internal view returns (uint256[] memory) {\n bytes32[] memory store = _values(set._inner);\n uint256[] memory result;\n\n /// @solidity memory-safe-assembly\n assembly {\n result := store\n }\n\n return result;\n }\n}\n"},"contracts/Bridged.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"hardhat/console.sol\";\n\nimport \"@openzeppelin/contracts/proxy/utils/Initializable.sol\";\nimport \"./Relayer.sol\";\n\nabstract contract Bridged is Initializable {\n Relayer private _relayer;\n\n function initialize(Relayer relayer) public initializer {\n _relayer = relayer;\n }\n\n modifier onlyRelayer() {\n require(msg.sender == address(_relayer), \"Must be called by relayer\");\n _;\n }\n\n function dispatched(\n address target,\n bytes memory call\n ) public payable onlyRelayer returns (bool success, bytes memory response) {\n console.log(\"dispatched()\");\n (success, response) = target.call{value: msg.value, gas: 100000}(call);\n }\n\n function queried(\n address target,\n bytes memory call\n ) public view onlyRelayer returns (bool success, bytes memory response) {\n console.log(\"queried()\");\n (success, response) = target.staticcall{gas: 100000}(call);\n }\n\n function relay(\n address target,\n bytes memory call,\n bool readonly,\n bytes4 callback\n ) internal returns (uint nonce) {\n nonce = _relayer.relay(target, call, readonly, callback);\n }\n}\n"},"contracts/Collector.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"./ValidatorManager.sol\";\n\ncontract Collector {\n ValidatorManager private validatorManager;\n event Echoed(bytes32 indexed hash, bytes signature);\n\n constructor(ValidatorManager _validatorManager) {\n validatorManager = _validatorManager;\n }\n\n function echo(bytes32 hash, bytes memory signature) public {\n require(\n validatorManager.validateSignature(hash, signature),\n \"Wrong validator\"\n );\n emit Echoed(hash, signature);\n }\n}\n"},"contracts/ERC20Bridge.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n\nimport \"./Bridged.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\";\n\ncontract BridgedERC20 is ERC20, ERC20Burnable {\n address _bridge;\n\n constructor(\n string memory name_,\n string memory symbol_,\n address bridge_\n ) ERC20(name_, symbol_) {\n _bridge = bridge_;\n _mint(msg.sender, 1000);\n }\n\n modifier onlyBridge() {\n require(msg.sender == _bridge, \"Not the bridge\");\n _;\n }\n\n function mint(address to, uint256 amount) public onlyBridge {\n _mint(to, amount);\n }\n\n function burn(address from, uint256 amount) public onlyBridge {\n burnFrom(from, amount);\n }\n}\n\ncontract MyToken is BridgedERC20 {\n constructor(address bridge_) BridgedERC20(\"MyToken\", \"MTK\", bridge_) {}\n}\n\ncontract ERC20Bridge is Bridged {\n event Started(address, address, uint);\n\n function bridge(\n address token,\n address owner,\n uint value\n ) public returns (uint nonce) {\n MyToken(token).transferFrom(owner, address(this), value);\n nonce = relay(\n token,\n abi.encodeWithSignature(\"mint(address,uint256)\", owner, value),\n false,\n this.finish.selector\n );\n emit Started(token, owner, value);\n }\n\n function exit(\n address token,\n address owner,\n uint value\n ) public returns (uint nonce) {\n MyToken(token).burn(owner, value);\n nonce = relay(\n token,\n abi.encodeWithSignature(\"transfer(address,uint256)\", owner, value),\n false,\n this.finish.selector\n );\n emit Started(token, owner, value);\n }\n\n event Succeeded();\n event Failed(string);\n\n function finish(\n bool success,\n bytes calldata res,\n uint nonce\n ) public onlyRelayer {\n if (success) {\n emit Succeeded();\n } else {\n bytes4 sig = bytes4(res[:4]);\n bytes memory err = bytes(res[4:]);\n emit Failed(abi.decode(err, (string)));\n }\n }\n}\n"},"contracts/Relayer.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"hardhat/console.sol\";\n\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\nimport \"@openzeppelin/contracts/utils/Create2.sol\";\nimport \"./ValidatorManager.sol\";\nimport \"./Bridged.sol\";\n\nusing ECDSA for bytes32;\nusing MessageHashUtils for bytes;\n\ncontract Relayer {\n ValidatorManager private validatorManager;\n\n event TwinDeployment(address indexed twin);\n\n function deployTwin(\n bytes32 salt,\n bytes calldata bytecode\n ) public returns (address) {\n address bridgedContract = Create2.deploy(0, salt, bytecode);\n Bridged(bridgedContract).initialize(this);\n emit TwinDeployment(bridgedContract);\n return bridgedContract;\n }\n\n constructor(ValidatorManager _validatorManager) {\n validatorManager = _validatorManager;\n }\n\n mapping(address => uint) nonces;\n mapping(address => mapping(uint => bool)) dispatched;\n mapping(address => mapping(uint => bool)) resumed;\n\n event Relayed(\n address caller,\n address target,\n bytes call,\n bool readonly,\n bytes4 callback,\n uint nonce\n );\n\n function relay(\n address target,\n bytes memory call,\n bool readonly,\n bytes4 callback\n ) public returns (uint) {\n emit Relayed(\n msg.sender,\n target,\n call,\n readonly,\n callback,\n nonces[msg.sender]\n );\n nonces[msg.sender]++;\n return nonces[msg.sender];\n }\n\n event Dispatched(\n address indexed caller,\n bytes4 callback,\n bool success,\n bytes response,\n uint indexed nonce\n );\n\n function validateRequest(\n bytes memory encodedMessage,\n bytes[] memory signatures\n ) private view {\n bytes32 hash = encodedMessage.toEthSignedMessageHash();\n require(\n validatorManager.validateUniqueSignatures(hash, signatures),\n \"Invalid signatures\"\n );\n require(\n validatorManager.hasSupermajority(signatures.length),\n \"No supermajority\"\n );\n }\n\n function dispatch(\n address caller,\n address target,\n bytes memory call,\n bytes4 callback,\n uint nonce,\n bytes[] memory signatures\n ) public {\n require(!dispatched[caller][nonce], \"Already dispatched\");\n\n bytes memory message = abi.encode(\n caller,\n target,\n call,\n false,\n callback,\n nonce\n );\n validateRequest(message, signatures);\n\n require(caller.code.length > 0, \"code length\");\n (bool success, bytes memory response) = Bridged(caller).dispatched(\n target,\n call\n );\n emit Dispatched(caller, callback, success, response, nonce);\n dispatched[caller][nonce] = true;\n }\n\n function query(\n address caller,\n address target,\n bytes memory call\n ) public view returns (bool success, bytes memory response) {\n require(caller.code.length > 0, \"code length\");\n (success, response) = Bridged(caller).queried(target, call);\n }\n\n event Resumed(\n address indexed caller,\n bytes call,\n bool success,\n bytes response,\n uint indexed nonce\n );\n\n // Ensure signatures are submitted in the order of their addresses\n function resume(\n address caller,\n bytes4 callback,\n bool success,\n bytes memory response,\n uint nonce,\n bytes[] memory signatures\n ) public payable {\n require(!resumed[caller][nonce], \"Already resumed\");\n bytes memory message = abi.encode(\n caller,\n callback,\n success,\n response,\n nonce\n );\n validateRequest(message, signatures);\n\n bytes memory call = abi.encodeWithSelector(\n callback,\n success,\n response,\n nonce\n );\n (bool success2, bytes memory response2) = caller.call{\n value: msg.value,\n gas: 100000\n }(call);\n\n emit Resumed(caller, call, success2, response2, nonce);\n resumed[caller][nonce] = true;\n }\n}\n"},"contracts/Test.sol":{"content":"// SPDX-License-Identifier: UNLICENSED\npragma solidity ^0.8.20;\n\nimport \"./Bridged.sol\";\n\ncontract Twin is Bridged {\n function start(address target, uint num, bool readonly) public {\n uint nonce = relay(\n target,\n abi.encodeWithSignature(\"test(uint256)\", num),\n readonly,\n this.finish.selector\n );\n console.log(\"start()\", nonce);\n }\n\n event Succeeded(uint);\n event Failed(string);\n\n function finish(\n bool success,\n bytes calldata res,\n uint nonce\n ) public onlyRelayer {\n console.log(\"finish()\", nonce);\n if (success) {\n uint num = abi.decode(res, (uint));\n emit Succeeded(num);\n } else {\n bytes4 sig = bytes4(res[:4]);\n bytes memory err = bytes(res[4:]);\n emit Failed(abi.decode(err, (string)));\n }\n }\n}\n\ncontract Target {\n function test(uint num) public pure returns (uint) {\n console.log(\"test()\");\n require(num < 1000, \"Too large\");\n return num + 1;\n }\n}\n"},"contracts/ValidatorManager.sol":{"content":"// SPDX-License-Identifier: MIT OR Apache-2.0\npragma solidity ^0.8.20;\n\nimport \"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\";\nimport \"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\";\n\ncontract ValidatorManager {\n using ECDSA for bytes32;\n using MessageHashUtils for bytes;\n using EnumerableSet for EnumerableSet.AddressSet;\n\n EnumerableSet.AddressSet private _validators;\n\n constructor(address[] memory validators) {\n for (uint i = 0; i < validators.length; i++) {\n addValidator(validators[i]);\n }\n }\n\n // TODO: add restriction\n function addValidator(address user) public returns (bool) {\n return _validators.add(user);\n }\n\n // TODO: add restriction\n function removeValidator(address user) public returns (bool) {\n return _validators.remove(user);\n }\n\n // Expensive function, avoid calling on-chain\n function getValidators() public view returns (address[] memory) {\n return _validators.values();\n }\n\n function isValidator(address user) public view returns (bool) {\n return _validators.contains(user);\n }\n\n function validatorsCount() public view returns (uint) {\n return _validators.length();\n }\n\n function validateUniqueSignatures(\n bytes32 ethSignedMessageHash,\n bytes[] memory signatures\n ) public view returns (bool) {\n address lastSigner = address(0);\n\n for (uint i = 0; i < signatures.length; i++) {\n address signer = ethSignedMessageHash.recover(signatures[i]);\n require(\n signer > lastSigner,\n \"Signatures must be unique and in increasing order\"\n );\n if (!isValidator(signer)) {\n return false;\n }\n lastSigner = signer;\n }\n return true;\n }\n\n function hasSupermajority(uint count) public view returns (bool) {\n return count * 3 > validatorsCount() * 2;\n }\n\n function validateSignature(\n bytes32 ethSignedMessageHash,\n bytes memory signature\n ) public view returns (bool) {\n address signer = ethSignedMessageHash.recover(signature);\n return isValidator(signer);\n }\n}\n"},"hardhat/console.sol":{"content":"// SPDX-License-Identifier: MIT\npragma solidity >=0.4.22 <0.9.0;\n\nlibrary console {\n address constant CONSOLE_ADDRESS =\n 0x000000000000000000636F6e736F6c652e6c6f67;\n\n function _sendLogPayloadImplementation(bytes memory payload) internal view {\n address consoleAddress = CONSOLE_ADDRESS;\n /// @solidity memory-safe-assembly\n assembly {\n pop(\n staticcall(\n gas(),\n consoleAddress,\n add(payload, 32),\n mload(payload),\n 0,\n 0\n )\n )\n }\n }\n\n function _castToPure(\n function(bytes memory) internal view fnIn\n ) internal pure returns (function(bytes memory) pure fnOut) {\n assembly {\n fnOut := fnIn\n }\n }\n\n function _sendLogPayload(bytes memory payload) internal pure {\n _castToPure(_sendLogPayloadImplementation)(payload);\n }\n\n function log() internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log()\"));\n }\n function logInt(int256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(int256)\", p0));\n }\n\n function logUint(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function logString(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function logBool(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function logAddress(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function logBytes(bytes memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes)\", p0));\n }\n\n function logBytes1(bytes1 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes1)\", p0));\n }\n\n function logBytes2(bytes2 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes2)\", p0));\n }\n\n function logBytes3(bytes3 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes3)\", p0));\n }\n\n function logBytes4(bytes4 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes4)\", p0));\n }\n\n function logBytes5(bytes5 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes5)\", p0));\n }\n\n function logBytes6(bytes6 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes6)\", p0));\n }\n\n function logBytes7(bytes7 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes7)\", p0));\n }\n\n function logBytes8(bytes8 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes8)\", p0));\n }\n\n function logBytes9(bytes9 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes9)\", p0));\n }\n\n function logBytes10(bytes10 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes10)\", p0));\n }\n\n function logBytes11(bytes11 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes11)\", p0));\n }\n\n function logBytes12(bytes12 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes12)\", p0));\n }\n\n function logBytes13(bytes13 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes13)\", p0));\n }\n\n function logBytes14(bytes14 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes14)\", p0));\n }\n\n function logBytes15(bytes15 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes15)\", p0));\n }\n\n function logBytes16(bytes16 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes16)\", p0));\n }\n\n function logBytes17(bytes17 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes17)\", p0));\n }\n\n function logBytes18(bytes18 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes18)\", p0));\n }\n\n function logBytes19(bytes19 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes19)\", p0));\n }\n\n function logBytes20(bytes20 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes20)\", p0));\n }\n\n function logBytes21(bytes21 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes21)\", p0));\n }\n\n function logBytes22(bytes22 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes22)\", p0));\n }\n\n function logBytes23(bytes23 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes23)\", p0));\n }\n\n function logBytes24(bytes24 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes24)\", p0));\n }\n\n function logBytes25(bytes25 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes25)\", p0));\n }\n\n function logBytes26(bytes26 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes26)\", p0));\n }\n\n function logBytes27(bytes27 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes27)\", p0));\n }\n\n function logBytes28(bytes28 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes28)\", p0));\n }\n\n function logBytes29(bytes29 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes29)\", p0));\n }\n\n function logBytes30(bytes30 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes30)\", p0));\n }\n\n function logBytes31(bytes31 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes31)\", p0));\n }\n\n function logBytes32(bytes32 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bytes32)\", p0));\n }\n\n function log(uint256 p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256)\", p0));\n }\n\n function log(string memory p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string)\", p0));\n }\n\n function log(bool p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool)\", p0));\n }\n\n function log(address p0) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address)\", p0));\n }\n\n function log(uint256 p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256)\", p0, p1));\n }\n\n function log(uint256 p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string)\", p0, p1));\n }\n\n function log(uint256 p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool)\", p0, p1));\n }\n\n function log(uint256 p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address)\", p0, p1));\n }\n\n function log(string memory p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256)\", p0, p1));\n }\n\n function log(string memory p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string)\", p0, p1));\n }\n\n function log(string memory p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool)\", p0, p1));\n }\n\n function log(string memory p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address)\", p0, p1));\n }\n\n function log(bool p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256)\", p0, p1));\n }\n\n function log(bool p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string)\", p0, p1));\n }\n\n function log(bool p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool)\", p0, p1));\n }\n\n function log(bool p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address)\", p0, p1));\n }\n\n function log(address p0, uint256 p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256)\", p0, p1));\n }\n\n function log(address p0, string memory p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string)\", p0, p1));\n }\n\n function log(address p0, bool p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool)\", p0, p1));\n }\n\n function log(address p0, address p1) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address)\", p0, p1));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool)\", p0, p1, p2));\n }\n\n function log(uint256 p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool)\", p0, p1, p2));\n }\n\n function log(string memory p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool)\", p0, p1, p2));\n }\n\n function log(bool p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool)\", p0, p1, p2));\n }\n\n function log(address p0, uint256 p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool)\", p0, p1, p2));\n }\n\n function log(address p0, string memory p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool)\", p0, p1, p2));\n }\n\n function log(address p0, bool p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, uint256 p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, string memory p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, bool p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool)\", p0, p1, p2));\n }\n\n function log(address p0, address p1, address p2) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address)\", p0, p1, p2));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(uint256 p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(uint256,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(string memory p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(string,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(bool p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(bool,address,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, uint256 p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,uint256,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, string memory p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,string,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, bool p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,bool,address,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, uint256 p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,uint256,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, string memory p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,string,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, bool p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,bool,address)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, uint256 p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,uint256)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, string memory p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,string)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, bool p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,bool)\", p0, p1, p2, p3));\n }\n\n function log(address p0, address p1, address p2, address p3) internal pure {\n _sendLogPayload(abi.encodeWithSignature(\"log(address,address,address,address)\", p0, p1, p2, p3));\n }\n\n}\n"}},"settings":{"optimizer":{"enabled":true,"runs":200},"evmVersion":"paris","outputSelection":{"*":{"*":["abi","evm.bytecode","evm.deployedBytecode","evm.methodIdentifiers","metadata"],"":["ast"]}}}},"output":{"errors":[{"component":"general","errorCode":"5667","formattedMessage":"Warning: Unused function parameter. Remove or comment out the variable name to silence this warning.\n --> contracts/ERC20Bridge.sol:78:9:\n |\n78 | uint nonce\n | ^^^^^^^^^^\n\n","message":"Unused function parameter. Remove or comment out the variable name to silence this warning.","severity":"warning","sourceLocation":{"end":1951,"file":"contracts/ERC20Bridge.sol","start":1941},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/ERC20Bridge.sol:83:13:\n |\n83 | bytes4 sig = bytes4(res[:4]);\n | ^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":2071,"file":"contracts/ERC20Bridge.sol","start":2061},"type":"Warning"},{"component":"general","errorCode":"2072","formattedMessage":"Warning: Unused local variable.\n --> contracts/Test.sol:30:13:\n |\n30 | bytes4 sig = bytes4(res[:4]);\n | ^^^^^^^^^^\n\n","message":"Unused local variable.","severity":"warning","sourceLocation":{"end":759,"file":"contracts/Test.sol","start":749},"type":"Warning"}],"sources":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","exportedSymbols":{"IERC1155Errors":[136],"IERC20Errors":[41],"IERC721Errors":[89]},"id":137,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:0"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":2,"nodeType":"StructuredDocumentation","src":"138:139:0","text":" @dev Standard ERC20 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens."},"fullyImplemented":true,"id":41,"linearizedBaseContracts":[41],"name":"IERC20Errors","nameLocation":"288:12:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":3,"nodeType":"StructuredDocumentation","src":"307:309:0","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"e450d38c","id":11,"name":"ERC20InsufficientBalance","nameLocation":"627:24:0","nodeType":"ErrorDefinition","parameters":{"id":10,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5,"mutability":"mutable","name":"sender","nameLocation":"660:6:0","nodeType":"VariableDeclaration","scope":11,"src":"652:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4,"name":"address","nodeType":"ElementaryTypeName","src":"652:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7,"mutability":"mutable","name":"balance","nameLocation":"676:7:0","nodeType":"VariableDeclaration","scope":11,"src":"668:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9,"mutability":"mutable","name":"needed","nameLocation":"693:6:0","nodeType":"VariableDeclaration","scope":11,"src":"685:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8,"name":"uint256","nodeType":"ElementaryTypeName","src":"685:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"651:49:0"},"src":"621:80:0"},{"documentation":{"id":12,"nodeType":"StructuredDocumentation","src":"707:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"96c6fd1e","id":16,"name":"ERC20InvalidSender","nameLocation":"870:18:0","nodeType":"ErrorDefinition","parameters":{"id":15,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14,"mutability":"mutable","name":"sender","nameLocation":"897:6:0","nodeType":"VariableDeclaration","scope":16,"src":"889:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13,"name":"address","nodeType":"ElementaryTypeName","src":"889:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"888:16:0"},"src":"864:41:0"},{"documentation":{"id":17,"nodeType":"StructuredDocumentation","src":"911:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"ec442f05","id":21,"name":"ERC20InvalidReceiver","nameLocation":"1081:20:0","nodeType":"ErrorDefinition","parameters":{"id":20,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19,"mutability":"mutable","name":"receiver","nameLocation":"1110:8:0","nodeType":"VariableDeclaration","scope":21,"src":"1102:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18,"name":"address","nodeType":"ElementaryTypeName","src":"1102:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1101:18:0"},"src":"1075:45:0"},{"documentation":{"id":22,"nodeType":"StructuredDocumentation","src":"1126:345:0","text":" @dev Indicates a failure with the `spender`’s `allowance`. Used in transfers.\n @param spender Address that may be allowed to operate on tokens without being their owner.\n @param allowance Amount of tokens a `spender` is allowed to operate with.\n @param needed Minimum amount required to perform a transfer."},"errorSelector":"fb8f41b2","id":30,"name":"ERC20InsufficientAllowance","nameLocation":"1482:26:0","nodeType":"ErrorDefinition","parameters":{"id":29,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"mutability":"mutable","name":"spender","nameLocation":"1517:7:0","nodeType":"VariableDeclaration","scope":30,"src":"1509:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23,"name":"address","nodeType":"ElementaryTypeName","src":"1509:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":26,"mutability":"mutable","name":"allowance","nameLocation":"1534:9:0","nodeType":"VariableDeclaration","scope":30,"src":"1526:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25,"name":"uint256","nodeType":"ElementaryTypeName","src":"1526:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":28,"mutability":"mutable","name":"needed","nameLocation":"1553:6:0","nodeType":"VariableDeclaration","scope":30,"src":"1545:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":27,"name":"uint256","nodeType":"ElementaryTypeName","src":"1545:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1508:52:0"},"src":"1476:85:0"},{"documentation":{"id":31,"nodeType":"StructuredDocumentation","src":"1567:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"e602df05","id":35,"name":"ERC20InvalidApprover","nameLocation":"1752:20:0","nodeType":"ErrorDefinition","parameters":{"id":34,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33,"mutability":"mutable","name":"approver","nameLocation":"1781:8:0","nodeType":"VariableDeclaration","scope":35,"src":"1773:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":32,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1772:18:0"},"src":"1746:45:0"},{"documentation":{"id":36,"nodeType":"StructuredDocumentation","src":"1797:195:0","text":" @dev Indicates a failure with the `spender` to be approved. Used in approvals.\n @param spender Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"94280d62","id":40,"name":"ERC20InvalidSpender","nameLocation":"2003:19:0","nodeType":"ErrorDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"spender","nameLocation":"2031:7:0","nodeType":"VariableDeclaration","scope":40,"src":"2023:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"2023:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2022:17:0"},"src":"1997:43:0"}],"scope":137,"src":"278:1764:0","usedErrors":[11,16,21,30,35,40],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC721Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":42,"nodeType":"StructuredDocumentation","src":"2044:141:0","text":" @dev Standard ERC721 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens."},"fullyImplemented":true,"id":89,"linearizedBaseContracts":[89],"name":"IERC721Errors","nameLocation":"2196:13:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":43,"nodeType":"StructuredDocumentation","src":"2216:219:0","text":" @dev Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20.\n Used in balance queries.\n @param owner Address of the current owner of a token."},"errorSelector":"89c62b64","id":47,"name":"ERC721InvalidOwner","nameLocation":"2446:18:0","nodeType":"ErrorDefinition","parameters":{"id":46,"nodeType":"ParameterList","parameters":[{"constant":false,"id":45,"mutability":"mutable","name":"owner","nameLocation":"2473:5:0","nodeType":"VariableDeclaration","scope":47,"src":"2465:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":44,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2464:15:0"},"src":"2440:40:0"},{"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"2486:132:0","text":" @dev Indicates a `tokenId` whose `owner` is the zero address.\n @param tokenId Identifier number of a token."},"errorSelector":"7e273289","id":52,"name":"ERC721NonexistentToken","nameLocation":"2629:22:0","nodeType":"ErrorDefinition","parameters":{"id":51,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"mutability":"mutable","name":"tokenId","nameLocation":"2660:7:0","nodeType":"VariableDeclaration","scope":52,"src":"2652:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":49,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2651:17:0"},"src":"2623:46:0"},{"documentation":{"id":53,"nodeType":"StructuredDocumentation","src":"2675:289:0","text":" @dev Indicates an error related to the ownership over a particular token. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param tokenId Identifier number of a token.\n @param owner Address of the current owner of a token."},"errorSelector":"64283d7b","id":61,"name":"ERC721IncorrectOwner","nameLocation":"2975:20:0","nodeType":"ErrorDefinition","parameters":{"id":60,"nodeType":"ParameterList","parameters":[{"constant":false,"id":55,"mutability":"mutable","name":"sender","nameLocation":"3004:6:0","nodeType":"VariableDeclaration","scope":61,"src":"2996:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":54,"name":"address","nodeType":"ElementaryTypeName","src":"2996:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57,"mutability":"mutable","name":"tokenId","nameLocation":"3020:7:0","nodeType":"VariableDeclaration","scope":61,"src":"3012:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56,"name":"uint256","nodeType":"ElementaryTypeName","src":"3012:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":59,"mutability":"mutable","name":"owner","nameLocation":"3037:5:0","nodeType":"VariableDeclaration","scope":61,"src":"3029:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":58,"name":"address","nodeType":"ElementaryTypeName","src":"3029:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2995:48:0"},"src":"2969:75:0"},{"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"3050:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"73c6ac6e","id":66,"name":"ERC721InvalidSender","nameLocation":"3213:19:0","nodeType":"ErrorDefinition","parameters":{"id":65,"nodeType":"ParameterList","parameters":[{"constant":false,"id":64,"mutability":"mutable","name":"sender","nameLocation":"3241:6:0","nodeType":"VariableDeclaration","scope":66,"src":"3233:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":63,"name":"address","nodeType":"ElementaryTypeName","src":"3233:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3232:16:0"},"src":"3207:42:0"},{"documentation":{"id":67,"nodeType":"StructuredDocumentation","src":"3255:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"64a0ae92","id":71,"name":"ERC721InvalidReceiver","nameLocation":"3425:21:0","nodeType":"ErrorDefinition","parameters":{"id":70,"nodeType":"ParameterList","parameters":[{"constant":false,"id":69,"mutability":"mutable","name":"receiver","nameLocation":"3455:8:0","nodeType":"VariableDeclaration","scope":71,"src":"3447:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"3447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3446:18:0"},"src":"3419:46:0"},{"documentation":{"id":72,"nodeType":"StructuredDocumentation","src":"3471:247:0","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param tokenId Identifier number of a token."},"errorSelector":"177e802f","id":78,"name":"ERC721InsufficientApproval","nameLocation":"3729:26:0","nodeType":"ErrorDefinition","parameters":{"id":77,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74,"mutability":"mutable","name":"operator","nameLocation":"3764:8:0","nodeType":"VariableDeclaration","scope":78,"src":"3756:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73,"name":"address","nodeType":"ElementaryTypeName","src":"3756:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76,"mutability":"mutable","name":"tokenId","nameLocation":"3782:7:0","nodeType":"VariableDeclaration","scope":78,"src":"3774:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75,"name":"uint256","nodeType":"ElementaryTypeName","src":"3774:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3755:35:0"},"src":"3723:68:0"},{"documentation":{"id":79,"nodeType":"StructuredDocumentation","src":"3797:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"a9fbf51f","id":83,"name":"ERC721InvalidApprover","nameLocation":"3982:21:0","nodeType":"ErrorDefinition","parameters":{"id":82,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81,"mutability":"mutable","name":"approver","nameLocation":"4012:8:0","nodeType":"VariableDeclaration","scope":83,"src":"4004:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80,"name":"address","nodeType":"ElementaryTypeName","src":"4004:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4003:18:0"},"src":"3976:46:0"},{"documentation":{"id":84,"nodeType":"StructuredDocumentation","src":"4028:197:0","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"5b08ba18","id":88,"name":"ERC721InvalidOperator","nameLocation":"4236:21:0","nodeType":"ErrorDefinition","parameters":{"id":87,"nodeType":"ParameterList","parameters":[{"constant":false,"id":86,"mutability":"mutable","name":"operator","nameLocation":"4266:8:0","nodeType":"VariableDeclaration","scope":88,"src":"4258:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":85,"name":"address","nodeType":"ElementaryTypeName","src":"4258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4257:18:0"},"src":"4230:46:0"}],"scope":137,"src":"2186:2092:0","usedErrors":[47,52,61,66,71,78,83,88],"usedEvents":[]},{"abstract":false,"baseContracts":[],"canonicalName":"IERC1155Errors","contractDependencies":[],"contractKind":"interface","documentation":{"id":90,"nodeType":"StructuredDocumentation","src":"4280:143:0","text":" @dev Standard ERC1155 Errors\n Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens."},"fullyImplemented":true,"id":136,"linearizedBaseContracts":[136],"name":"IERC1155Errors","nameLocation":"4434:14:0","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":91,"nodeType":"StructuredDocumentation","src":"4455:361:0","text":" @dev Indicates an error related to the current `balance` of a `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred.\n @param balance Current balance for the interacting account.\n @param needed Minimum amount required to perform a transfer.\n @param tokenId Identifier number of a token."},"errorSelector":"03dee4c5","id":101,"name":"ERC1155InsufficientBalance","nameLocation":"4827:26:0","nodeType":"ErrorDefinition","parameters":{"id":100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"mutability":"mutable","name":"sender","nameLocation":"4862:6:0","nodeType":"VariableDeclaration","scope":101,"src":"4854:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"4854:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":95,"mutability":"mutable","name":"balance","nameLocation":"4878:7:0","nodeType":"VariableDeclaration","scope":101,"src":"4870:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":94,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":97,"mutability":"mutable","name":"needed","nameLocation":"4895:6:0","nodeType":"VariableDeclaration","scope":101,"src":"4887:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"4887:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":99,"mutability":"mutable","name":"tokenId","nameLocation":"4911:7:0","nodeType":"VariableDeclaration","scope":101,"src":"4903:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":98,"name":"uint256","nodeType":"ElementaryTypeName","src":"4903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4853:66:0"},"src":"4821:99:0"},{"documentation":{"id":102,"nodeType":"StructuredDocumentation","src":"4926:152:0","text":" @dev Indicates a failure with the token `sender`. Used in transfers.\n @param sender Address whose tokens are being transferred."},"errorSelector":"01a83514","id":106,"name":"ERC1155InvalidSender","nameLocation":"5089:20:0","nodeType":"ErrorDefinition","parameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"sender","nameLocation":"5118:6:0","nodeType":"VariableDeclaration","scope":106,"src":"5110:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":103,"name":"address","nodeType":"ElementaryTypeName","src":"5110:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5109:16:0"},"src":"5083:43:0"},{"documentation":{"id":107,"nodeType":"StructuredDocumentation","src":"5132:159:0","text":" @dev Indicates a failure with the token `receiver`. Used in transfers.\n @param receiver Address to which tokens are being transferred."},"errorSelector":"57f447ce","id":111,"name":"ERC1155InvalidReceiver","nameLocation":"5302:22:0","nodeType":"ErrorDefinition","parameters":{"id":110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":109,"mutability":"mutable","name":"receiver","nameLocation":"5333:8:0","nodeType":"VariableDeclaration","scope":111,"src":"5325:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":108,"name":"address","nodeType":"ElementaryTypeName","src":"5325:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5324:18:0"},"src":"5296:47:0"},{"documentation":{"id":112,"nodeType":"StructuredDocumentation","src":"5349:256:0","text":" @dev Indicates a failure with the `operator`’s approval. Used in transfers.\n @param operator Address that may be allowed to operate on tokens without being their owner.\n @param owner Address of the current owner of a token."},"errorSelector":"e237d922","id":118,"name":"ERC1155MissingApprovalForAll","nameLocation":"5616:28:0","nodeType":"ErrorDefinition","parameters":{"id":117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":114,"mutability":"mutable","name":"operator","nameLocation":"5653:8:0","nodeType":"VariableDeclaration","scope":118,"src":"5645:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":113,"name":"address","nodeType":"ElementaryTypeName","src":"5645:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":116,"mutability":"mutable","name":"owner","nameLocation":"5671:5:0","nodeType":"VariableDeclaration","scope":118,"src":"5663:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":115,"name":"address","nodeType":"ElementaryTypeName","src":"5663:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5644:33:0"},"src":"5610:68:0"},{"documentation":{"id":119,"nodeType":"StructuredDocumentation","src":"5684:174:0","text":" @dev Indicates a failure with the `approver` of a token to be approved. Used in approvals.\n @param approver Address initiating an approval operation."},"errorSelector":"3e31884e","id":123,"name":"ERC1155InvalidApprover","nameLocation":"5869:22:0","nodeType":"ErrorDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":121,"mutability":"mutable","name":"approver","nameLocation":"5900:8:0","nodeType":"VariableDeclaration","scope":123,"src":"5892:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":120,"name":"address","nodeType":"ElementaryTypeName","src":"5892:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5891:18:0"},"src":"5863:47:0"},{"documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"5916:197:0","text":" @dev Indicates a failure with the `operator` to be approved. Used in approvals.\n @param operator Address that may be allowed to operate on tokens without being their owner."},"errorSelector":"ced3e100","id":128,"name":"ERC1155InvalidOperator","nameLocation":"6124:22:0","nodeType":"ErrorDefinition","parameters":{"id":127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"operator","nameLocation":"6155:8:0","nodeType":"VariableDeclaration","scope":128,"src":"6147:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"6147:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6146:18:0"},"src":"6118:47:0"},{"documentation":{"id":129,"nodeType":"StructuredDocumentation","src":"6171:280:0","text":" @dev Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation.\n Used in batch transfers.\n @param idsLength Length of the array of token identifiers\n @param valuesLength Length of the array of token amounts"},"errorSelector":"5b059991","id":135,"name":"ERC1155InvalidArrayLength","nameLocation":"6462:25:0","nodeType":"ErrorDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":131,"mutability":"mutable","name":"idsLength","nameLocation":"6496:9:0","nodeType":"VariableDeclaration","scope":135,"src":"6488:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":130,"name":"uint256","nodeType":"ElementaryTypeName","src":"6488:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"valuesLength","nameLocation":"6515:12:0","nodeType":"VariableDeclaration","scope":135,"src":"6507:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":132,"name":"uint256","nodeType":"ElementaryTypeName","src":"6507:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6487:41:0"},"src":"6456:73:0"}],"scope":137,"src":"4424:2107:0","usedErrors":[101,106,111,118,123,128,135],"usedEvents":[]}],"src":"112:6420:0"},"id":0},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","exportedSymbols":{"Initializable":[390]},"id":391,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":138,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"113:24:1"},{"abstract":true,"baseContracts":[],"canonicalName":"Initializable","contractDependencies":[],"contractKind":"contract","documentation":{"id":139,"nodeType":"StructuredDocumentation","src":"139:2209:1","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 proxied contracts do not make use of 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 The initialization functions use a version number. Once a version number is used, it is consumed and cannot be\n reused. This mechanism prevents re-execution of each \"step\" but allows the creation of new initialization steps in\n case an upgrade adds a module that needs to be initialized.\n For example:\n [.hljs-theme-light.nopadding]\n ```solidity\n contract MyToken is ERC20Upgradeable {\n function initialize() initializer public {\n __ERC20_init(\"MyToken\", \"MTK\");\n }\n }\n contract MyTokenV2 is MyToken, ERC20PermitUpgradeable {\n function initializeV2() reinitializer(2) public {\n __ERC20Permit_init(\"MyToken\");\n }\n }\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 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 prevent the implementation contract from being used, you should invoke\n the {_disableInitializers} function in the constructor to automatically lock it when it is deployed:\n [.hljs-theme-light.nopadding]\n ```\n /// @custom:oz-upgrades-unsafe-allow constructor\n constructor() {\n _disableInitializers();\n }\n ```\n ===="},"fullyImplemented":true,"id":390,"linearizedBaseContracts":[390],"name":"Initializable","nameLocation":"2367:13:1","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Initializable.InitializableStorage","documentation":{"id":140,"nodeType":"StructuredDocumentation","src":"2387:293:1","text":" @dev Storage of the initializable contract.\n It's implemented on a custom ERC-7201 namespace to reduce the risk of storage collisions\n when using with upgradeable contracts.\n @custom:storage-location erc7201:openzeppelin.storage.Initializable"},"id":147,"members":[{"constant":false,"id":143,"mutability":"mutable","name":"_initialized","nameLocation":"2820:12:1","nodeType":"VariableDeclaration","scope":147,"src":"2813:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":142,"name":"uint64","nodeType":"ElementaryTypeName","src":"2813:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"},{"constant":false,"id":146,"mutability":"mutable","name":"_initializing","nameLocation":"2955:13:1","nodeType":"VariableDeclaration","scope":147,"src":"2950:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":145,"name":"bool","nodeType":"ElementaryTypeName","src":"2950:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"InitializableStorage","nameLocation":"2692:20:1","nodeType":"StructDefinition","scope":390,"src":"2685:290:1","visibility":"public"},{"constant":true,"id":150,"mutability":"constant","name":"INITIALIZABLE_STORAGE","nameLocation":"3123:21:1","nodeType":"VariableDeclaration","scope":390,"src":"3098:115:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3098:7:1","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"hexValue":"307866306335376531363834306466303430663135303838646332663831666533393163333932336265633733653233613936363265666339633232396336613030","id":149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3147:66:1","typeDescriptions":{"typeIdentifier":"t_rational_108904022758810753673719992590105913556127789646572562039383141376366747609600_by_1","typeString":"int_const 1089...(70 digits omitted)...9600"},"value":"0xf0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00"},"visibility":"private"},{"documentation":{"id":151,"nodeType":"StructuredDocumentation","src":"3220:60:1","text":" @dev The contract is already initialized."},"errorSelector":"f92ee8a9","id":153,"name":"InvalidInitialization","nameLocation":"3291:21:1","nodeType":"ErrorDefinition","parameters":{"id":152,"nodeType":"ParameterList","parameters":[],"src":"3312:2:1"},"src":"3285:30:1"},{"documentation":{"id":154,"nodeType":"StructuredDocumentation","src":"3321:57:1","text":" @dev The contract is not initializing."},"errorSelector":"d7e6bcf8","id":156,"name":"NotInitializing","nameLocation":"3389:15:1","nodeType":"ErrorDefinition","parameters":{"id":155,"nodeType":"ParameterList","parameters":[],"src":"3404:2:1"},"src":"3383:24:1"},{"anonymous":false,"documentation":{"id":157,"nodeType":"StructuredDocumentation","src":"3413:90:1","text":" @dev Triggered when the contract has been initialized or reinitialized."},"eventSelector":"c7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2","id":161,"name":"Initialized","nameLocation":"3514:11:1","nodeType":"EventDefinition","parameters":{"id":160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":159,"indexed":false,"mutability":"mutable","name":"version","nameLocation":"3533:7:1","nodeType":"VariableDeclaration","scope":161,"src":"3526:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":158,"name":"uint64","nodeType":"ElementaryTypeName","src":"3526:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"3525:16:1"},"src":"3508:34:1"},{"body":{"id":243,"nodeType":"Block","src":"4092:1081:1","statements":[{"assignments":[166],"declarations":[{"constant":false,"id":166,"mutability":"mutable","name":"$","nameLocation":"4187:1:1","nodeType":"VariableDeclaration","scope":243,"src":"4158:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":165,"nodeType":"UserDefinedTypeName","pathNode":{"id":164,"name":"InitializableStorage","nameLocations":["4158:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"4158:20:1"},"referencedDeclaration":147,"src":"4158:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":169,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":167,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"4191:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4191:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"4158:59:1"},{"assignments":[171],"declarations":[{"constant":false,"id":171,"mutability":"mutable","name":"isTopLevelCall","nameLocation":"4284:14:1","nodeType":"VariableDeclaration","scope":243,"src":"4279:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"4279:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":175,"initialValue":{"id":174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4301:16:1","subExpression":{"expression":{"id":172,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"4302:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4304:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"4302:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4279:38:1"},{"assignments":[177],"declarations":[{"constant":false,"id":177,"mutability":"mutable","name":"initialized","nameLocation":"4334:11:1","nodeType":"VariableDeclaration","scope":243,"src":"4327:18:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":176,"name":"uint64","nodeType":"ElementaryTypeName","src":"4327:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"id":180,"initialValue":{"expression":{"id":178,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"4348:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4350:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"4348:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"VariableDeclarationStatement","src":"4327:35:1"},{"assignments":[182],"declarations":[{"constant":false,"id":182,"mutability":"mutable","name":"initialSetup","nameLocation":"4711:12:1","nodeType":"VariableDeclaration","scope":243,"src":"4706:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":181,"name":"bool","nodeType":"ElementaryTypeName","src":"4706:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":188,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":183,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177,"src":"4726:11:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4741:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4726:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":186,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"4746:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4726:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4706:54:1"},{"assignments":[190],"declarations":[{"constant":false,"id":190,"mutability":"mutable","name":"construction","nameLocation":"4775:12:1","nodeType":"VariableDeclaration","scope":243,"src":"4770:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":189,"name":"bool","nodeType":"ElementaryTypeName","src":"4770:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":203,"initialValue":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":191,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":177,"src":"4790:11:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4805:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4790:16:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"arguments":[{"id":196,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"4818:4:1","typeDescriptions":{"typeIdentifier":"t_contract$_Initializable_$390","typeString":"contract Initializable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Initializable_$390","typeString":"contract Initializable"}],"id":195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4810:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":194,"name":"address","nodeType":"ElementaryTypeName","src":"4810:7:1","typeDescriptions":{}}},"id":197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4810:13:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4824:4:1","memberName":"code","nodeType":"MemberAccess","src":"4810:18:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4829:6:1","memberName":"length","nodeType":"MemberAccess","src":"4810:25:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":200,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4839:1:1","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4810:30:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4790:50:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"4770:70:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4855:13:1","subExpression":{"id":204,"name":"initialSetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"4856:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4872:13:1","subExpression":{"id":206,"name":"construction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"4873:12:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4855:30:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":213,"nodeType":"IfStatement","src":"4851:91:1","trueBody":{"id":212,"nodeType":"Block","src":"4887:55:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":209,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"4908:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4908:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"RevertStatement","src":"4901:30:1"}]}},{"expression":{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":214,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"4951:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"4953:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"4951:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"31","id":217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4968:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4951:18:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":219,"nodeType":"ExpressionStatement","src":"4951:18:1"},{"condition":{"id":220,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"4983:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":228,"nodeType":"IfStatement","src":"4979:67:1","trueBody":{"id":227,"nodeType":"Block","src":"4999:47:1","statements":[{"expression":{"id":225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":221,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"5013:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5015:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"5013:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5031:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"5013:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":226,"nodeType":"ExpressionStatement","src":"5013:22:1"}]}},{"id":229,"nodeType":"PlaceholderStatement","src":"5055:1:1"},{"condition":{"id":230,"name":"isTopLevelCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"5070:14:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":242,"nodeType":"IfStatement","src":"5066:101:1","trueBody":{"id":241,"nodeType":"Block","src":"5086:81:1","statements":[{"expression":{"id":235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":231,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"5100:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"5102:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"5100:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5118:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"5100:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":236,"nodeType":"ExpressionStatement","src":"5100:23:1"},{"eventCall":{"arguments":[{"hexValue":"31","id":238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5154:1:1","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":237,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"5142:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5142:14:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"EmitStatement","src":"5137:19:1"}]}}]},"documentation":{"id":162,"nodeType":"StructuredDocumentation","src":"3548:516:1","text":" @dev A modifier that defines a protected initializer function that can be invoked at most once. In its scope,\n `onlyInitializing` functions can be used to initialize parent contracts.\n Similar to `reinitializer(1)`, except that in the context of a constructor an `initializer` may be invoked any\n number of times. This behavior in the constructor can be useful during testing and is not expected to be used in\n production.\n Emits an {Initialized} event."},"id":244,"name":"initializer","nameLocation":"4078:11:1","nodeType":"ModifierDefinition","parameters":{"id":163,"nodeType":"ParameterList","parameters":[],"src":"4089:2:1"},"src":"4069:1104:1","virtual":false,"visibility":"internal"},{"body":{"id":290,"nodeType":"Block","src":"6291:392:1","statements":[{"assignments":[251],"declarations":[{"constant":false,"id":251,"mutability":"mutable","name":"$","nameLocation":"6386:1:1","nodeType":"VariableDeclaration","scope":290,"src":"6357:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":250,"nodeType":"UserDefinedTypeName","pathNode":{"id":249,"name":"InitializableStorage","nameLocations":["6357:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"6357:20:1"},"referencedDeclaration":147,"src":"6357:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":254,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"6390:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6390:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"6357:59:1"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":255,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6431:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6433:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6431:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":257,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6450:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6452:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"6450:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":259,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"6468:7:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6450:25:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6431:44:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":266,"nodeType":"IfStatement","src":"6427:105:1","trueBody":{"id":265,"nodeType":"Block","src":"6477:55:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":262,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"6498:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6498:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":264,"nodeType":"RevertStatement","src":"6491:30:1"}]}},{"expression":{"id":271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":267,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6541:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6543:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"6541:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":270,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"6558:7:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"6541:24:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":272,"nodeType":"ExpressionStatement","src":"6541:24:1"},{"expression":{"id":277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":273,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6575:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6577:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6575:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6593:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"6575:22:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":278,"nodeType":"ExpressionStatement","src":"6575:22:1"},{"id":279,"nodeType":"PlaceholderStatement","src":"6607:1:1"},{"expression":{"id":284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":280,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":251,"src":"6618:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"6620:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"6618:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6636:5:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"6618:23:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":285,"nodeType":"ExpressionStatement","src":"6618:23:1"},{"eventCall":{"arguments":[{"id":287,"name":"version","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"6668:7:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":286,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"6656:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6656:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":289,"nodeType":"EmitStatement","src":"6651:25:1"}]},"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"5179:1068:1","text":" @dev A modifier that defines a protected reinitializer function that can be invoked at most once, and only if the\n contract hasn't been initialized to a greater version before. In its scope, `onlyInitializing` functions can be\n used to initialize parent contracts.\n A reinitializer may be used after the original initialization step. This is essential to configure modules that\n are added through upgrades and that require initialization.\n When `version` is 1, this modifier is similar to `initializer`, except that functions marked with `reinitializer`\n cannot be nested. If one is invoked in the context of another, execution will revert.\n Note that versions can jump in increments greater than 1; this implies that if multiple reinitializers coexist in\n a contract, executing them in the right order is up to the developer or operator.\n WARNING: Setting the version to 2**64 - 1 will prevent any future reinitialization.\n Emits an {Initialized} event."},"id":291,"name":"reinitializer","nameLocation":"6261:13:1","nodeType":"ModifierDefinition","parameters":{"id":248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"version","nameLocation":"6282:7:1","nodeType":"VariableDeclaration","scope":291,"src":"6275:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":246,"name":"uint64","nodeType":"ElementaryTypeName","src":"6275:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"6274:16:1"},"src":"6252:431:1","virtual":false,"visibility":"internal"},{"body":{"id":298,"nodeType":"Block","src":"6921:48:1","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":294,"name":"_checkInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":312,"src":"6931:18:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6931:20:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":296,"nodeType":"ExpressionStatement","src":"6931:20:1"},{"id":297,"nodeType":"PlaceholderStatement","src":"6961:1:1"}]},"documentation":{"id":292,"nodeType":"StructuredDocumentation","src":"6689:199:1","text":" @dev Modifier to protect an initialization function so that it can only be invoked by functions with the\n {initializer} and {reinitializer} modifiers, directly or indirectly."},"id":299,"name":"onlyInitializing","nameLocation":"6902:16:1","nodeType":"ModifierDefinition","parameters":{"id":293,"nodeType":"ParameterList","parameters":[],"src":"6918:2:1"},"src":"6893:76:1","virtual":false,"visibility":"internal"},{"body":{"id":311,"nodeType":"Block","src":"7136:89:1","statements":[{"condition":{"id":305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7150:18:1","subExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":303,"name":"_isInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":380,"src":"7151:15:1","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7151:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":310,"nodeType":"IfStatement","src":"7146:73:1","trueBody":{"id":309,"nodeType":"Block","src":"7170:49:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":306,"name":"NotInitializing","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":156,"src":"7191:15:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7191:17:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":308,"nodeType":"RevertStatement","src":"7184:24:1"}]}}]},"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"6975:104:1","text":" @dev Reverts if the contract is not in an initializing state. See {onlyInitializing}."},"id":312,"implemented":true,"kind":"function","modifiers":[],"name":"_checkInitializing","nameLocation":"7093:18:1","nodeType":"FunctionDefinition","parameters":{"id":301,"nodeType":"ParameterList","parameters":[],"src":"7111:2:1"},"returnParameters":{"id":302,"nodeType":"ParameterList","parameters":[],"src":"7136:0:1"},"scope":390,"src":"7084:141:1","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":357,"nodeType":"Block","src":"7760:373:1","statements":[{"assignments":[318],"declarations":[{"constant":false,"id":318,"mutability":"mutable","name":"$","nameLocation":"7855:1:1","nodeType":"VariableDeclaration","scope":357,"src":"7826:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":317,"nodeType":"UserDefinedTypeName","pathNode":{"id":316,"name":"InitializableStorage","nameLocations":["7826:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"7826:20:1"},"referencedDeclaration":147,"src":"7826:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"id":321,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":319,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"7859:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7859:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"7826:59:1"},{"condition":{"expression":{"id":322,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"7900:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7902:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"7900:15:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":328,"nodeType":"IfStatement","src":"7896:76:1","trueBody":{"id":327,"nodeType":"Block","src":"7917:55:1","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":324,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"7938:21:1","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7938:23:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":326,"nodeType":"RevertStatement","src":"7931:30:1"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint64","typeString":"uint64"},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":329,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"7985:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7987:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"7985:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8008:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":332,"name":"uint64","nodeType":"ElementaryTypeName","src":"8008:6:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":331,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8003:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8003:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8016:3:1","memberName":"max","nodeType":"MemberAccess","src":"8003:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"7985:34:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":356,"nodeType":"IfStatement","src":"7981:146:1","trueBody":{"id":355,"nodeType":"Block","src":"8021:106:1","statements":[{"expression":{"id":345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":337,"name":"$","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":318,"src":"8035:1:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"8037:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"8035:14:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8057:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":341,"name":"uint64","nodeType":"ElementaryTypeName","src":"8057:6:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":340,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8052:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8052:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":344,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8065:3:1","memberName":"max","nodeType":"MemberAccess","src":"8052:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"src":"8035:33:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"id":346,"nodeType":"ExpressionStatement","src":"8035:33:1"},{"eventCall":{"arguments":[{"expression":{"arguments":[{"id":350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8104:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"},"typeName":{"id":349,"name":"uint64","nodeType":"ElementaryTypeName","src":"8104:6:1","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint64_$","typeString":"type(uint64)"}],"id":348,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"8099:4:1","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8099:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint64","typeString":"type(uint64)"}},"id":352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8112:3:1","memberName":"max","nodeType":"MemberAccess","src":"8099:16:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint64","typeString":"uint64"}],"id":347,"name":"Initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":161,"src":"8087:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint64_$returns$__$","typeString":"function (uint64)"}},"id":353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8087:29:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":354,"nodeType":"EmitStatement","src":"8082:34:1"}]}}]},"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"7231:475:1","text":" @dev Locks the contract, preventing any future reinitialization. This cannot be part of an initializer call.\n Calling this in the constructor of a contract will prevent that contract from being initialized or reinitialized\n to any version. It is recommended to use this to lock implementation contracts that are designed to be called\n through proxies.\n Emits an {Initialized} event the first time it is successfully executed."},"id":358,"implemented":true,"kind":"function","modifiers":[],"name":"_disableInitializers","nameLocation":"7720:20:1","nodeType":"FunctionDefinition","parameters":{"id":314,"nodeType":"ParameterList","parameters":[],"src":"7740:2:1"},"returnParameters":{"id":315,"nodeType":"ParameterList","parameters":[],"src":"7760:0:1"},"scope":390,"src":"7711:422:1","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":368,"nodeType":"Block","src":"8308:63:1","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":364,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"8325:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8325:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8352:12:1","memberName":"_initialized","nodeType":"MemberAccess","referencedDeclaration":143,"src":"8325:39:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"functionReturnParameters":363,"id":367,"nodeType":"Return","src":"8318:46:1"}]},"documentation":{"id":359,"nodeType":"StructuredDocumentation","src":"8139:99:1","text":" @dev Returns the highest version that has been initialized. See {reinitializer}."},"id":369,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializedVersion","nameLocation":"8252:22:1","nodeType":"FunctionDefinition","parameters":{"id":360,"nodeType":"ParameterList","parameters":[],"src":"8274:2:1"},"returnParameters":{"id":363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":362,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":369,"src":"8300:6:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"},"typeName":{"id":361,"name":"uint64","nodeType":"ElementaryTypeName","src":"8300:6:1","typeDescriptions":{"typeIdentifier":"t_uint64","typeString":"uint64"}},"visibility":"internal"}],"src":"8299:8:1"},"scope":390,"src":"8243:128:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":379,"nodeType":"Block","src":"8543:64:1","statements":[{"expression":{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":375,"name":"_getInitializableStorage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":389,"src":"8560:24:1","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_struct$_InitializableStorage_$147_storage_ptr_$","typeString":"function () pure returns (struct Initializable.InitializableStorage storage pointer)"}},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8560:26:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage storage pointer"}},"id":377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8587:13:1","memberName":"_initializing","nodeType":"MemberAccess","referencedDeclaration":146,"src":"8560:40:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":374,"id":378,"nodeType":"Return","src":"8553:47:1"}]},"documentation":{"id":370,"nodeType":"StructuredDocumentation","src":"8377:105:1","text":" @dev Returns `true` if the contract is currently initializing. See {onlyInitializing}."},"id":380,"implemented":true,"kind":"function","modifiers":[],"name":"_isInitializing","nameLocation":"8496:15:1","nodeType":"FunctionDefinition","parameters":{"id":371,"nodeType":"ParameterList","parameters":[],"src":"8511:2:1"},"returnParameters":{"id":374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":380,"src":"8537:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":372,"name":"bool","nodeType":"ElementaryTypeName","src":"8537:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8536:6:1"},"scope":390,"src":"8487:120:1","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":388,"nodeType":"Block","src":"8827:80:1","statements":[{"AST":{"nodeType":"YulBlock","src":"8846:55:1","statements":[{"nodeType":"YulAssignment","src":"8860:31:1","value":{"name":"INITIALIZABLE_STORAGE","nodeType":"YulIdentifier","src":"8870:21:1"},"variableNames":[{"name":"$.slot","nodeType":"YulIdentifier","src":"8860:6:1"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":385,"isOffset":false,"isSlot":true,"src":"8860:6:1","suffix":"slot","valueSize":1},{"declaration":150,"isOffset":false,"isSlot":false,"src":"8870:21:1","valueSize":1}],"id":387,"nodeType":"InlineAssembly","src":"8837:64:1"}]},"documentation":{"id":381,"nodeType":"StructuredDocumentation","src":"8613:67:1","text":" @dev Returns a pointer to the storage namespace."},"id":389,"implemented":true,"kind":"function","modifiers":[],"name":"_getInitializableStorage","nameLocation":"8746:24:1","nodeType":"FunctionDefinition","parameters":{"id":382,"nodeType":"ParameterList","parameters":[],"src":"8770:2:1"},"returnParameters":{"id":386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":385,"mutability":"mutable","name":"$","nameLocation":"8824:1:1","nodeType":"VariableDeclaration","scope":389,"src":"8795:30:1","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"},"typeName":{"id":384,"nodeType":"UserDefinedTypeName","pathNode":{"id":383,"name":"InitializableStorage","nameLocations":["8795:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":147,"src":"8795:20:1"},"referencedDeclaration":147,"src":"8795:20:1","typeDescriptions":{"typeIdentifier":"t_struct$_InitializableStorage_$147_storage_ptr","typeString":"struct Initializable.InitializableStorage"}},"visibility":"internal"}],"src":"8794:32:1"},"scope":390,"src":"8737:170:1","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":391,"src":"2349:6560:1","usedErrors":[153,156],"usedEvents":[161]}],"src":"113:8797:1"},"id":1},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"Context":[1077],"ERC20":[905],"IERC20":[983],"IERC20Errors":[41],"IERC20Metadata":[1055]},"id":906,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":392,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"105:24:2"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":394,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":984,"src":"131:36:2","symbolAliases":[{"foreign":{"id":393,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":983,"src":"139:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","id":396,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":1056,"src":"168:63:2","symbolAliases":[{"foreign":{"id":395,"name":"IERC20Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1055,"src":"176:14:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../utils/Context.sol","id":398,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":1078,"src":"232:48:2","symbolAliases":[{"foreign":{"id":397,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"240:7:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/interfaces/draft-IERC6093.sol","file":"../../interfaces/draft-IERC6093.sol","id":400,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":906,"sourceUnit":137,"src":"281:65:2","symbolAliases":[{"foreign":{"id":399,"name":"IERC20Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41,"src":"289:12:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":402,"name":"Context","nameLocations":["1428:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":1077,"src":"1428:7:2"},"id":403,"nodeType":"InheritanceSpecifier","src":"1428:7:2"},{"baseName":{"id":404,"name":"IERC20","nameLocations":["1437:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":983,"src":"1437:6:2"},"id":405,"nodeType":"InheritanceSpecifier","src":"1437:6:2"},{"baseName":{"id":406,"name":"IERC20Metadata","nameLocations":["1445:14:2"],"nodeType":"IdentifierPath","referencedDeclaration":1055,"src":"1445:14:2"},"id":407,"nodeType":"InheritanceSpecifier","src":"1445:14:2"},{"baseName":{"id":408,"name":"IERC20Errors","nameLocations":["1461:12:2"],"nodeType":"IdentifierPath","referencedDeclaration":41,"src":"1461:12:2"},"id":409,"nodeType":"InheritanceSpecifier","src":"1461:12:2"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":401,"nodeType":"StructuredDocumentation","src":"348:1052:2","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification."},"fullyImplemented":true,"id":905,"linearizedBaseContracts":[905,41,1055,983,1077],"name":"ERC20","nameLocation":"1419:5:2","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":413,"mutability":"mutable","name":"_balances","nameLocation":"1524:9:2","nodeType":"VariableDeclaration","scope":905,"src":"1480:53:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":412,"keyName":"account","keyNameLocation":"1496:7:2","keyType":{"id":410,"name":"address","nodeType":"ElementaryTypeName","src":"1488:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1480:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1507:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"constant":false,"id":419,"mutability":"mutable","name":"_allowances","nameLocation":"1612:11:2","nodeType":"VariableDeclaration","scope":905,"src":"1540:83:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":418,"keyName":"account","keyNameLocation":"1556:7:2","keyType":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1540:63:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":417,"keyName":"spender","keyNameLocation":"1583:7:2","keyType":{"id":415,"name":"address","nodeType":"ElementaryTypeName","src":"1575:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1567:35:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":416,"name":"uint256","nodeType":"ElementaryTypeName","src":"1594:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"constant":false,"id":421,"mutability":"mutable","name":"_totalSupply","nameLocation":"1646:12:2","nodeType":"VariableDeclaration","scope":905,"src":"1630:28:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":420,"name":"uint256","nodeType":"ElementaryTypeName","src":"1630:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":false,"id":423,"mutability":"mutable","name":"_name","nameLocation":"1680:5:2","nodeType":"VariableDeclaration","scope":905,"src":"1665:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":422,"name":"string","nodeType":"ElementaryTypeName","src":"1665:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"constant":false,"id":425,"mutability":"mutable","name":"_symbol","nameLocation":"1706:7:2","nodeType":"VariableDeclaration","scope":905,"src":"1691:22:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":424,"name":"string","nodeType":"ElementaryTypeName","src":"1691:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"body":{"id":441,"nodeType":"Block","src":"1952:57:2","statements":[{"expression":{"id":435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":433,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"1962:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":434,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":428,"src":"1970:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1962:13:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":436,"nodeType":"ExpressionStatement","src":"1962:13:2"},{"expression":{"id":439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":437,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"1985:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":438,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":430,"src":"1995:7:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1985:17:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":440,"nodeType":"ExpressionStatement","src":"1985:17:2"}]},"documentation":{"id":426,"nodeType":"StructuredDocumentation","src":"1720:171:2","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"id":442,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":428,"mutability":"mutable","name":"name_","nameLocation":"1922:5:2","nodeType":"VariableDeclaration","scope":442,"src":"1908:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":427,"name":"string","nodeType":"ElementaryTypeName","src":"1908:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":430,"mutability":"mutable","name":"symbol_","nameLocation":"1943:7:2","nodeType":"VariableDeclaration","scope":442,"src":"1929:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":429,"name":"string","nodeType":"ElementaryTypeName","src":"1929:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1907:44:2"},"returnParameters":{"id":432,"nodeType":"ParameterList","parameters":[],"src":"1952:0:2"},"scope":905,"src":"1896:113:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"baseFunctions":[1042],"body":{"id":450,"nodeType":"Block","src":"2134:29:2","statements":[{"expression":{"id":448,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"2151:5:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":447,"id":449,"nodeType":"Return","src":"2144:12:2"}]},"documentation":{"id":443,"nodeType":"StructuredDocumentation","src":"2015:54:2","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":451,"implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2083:4:2","nodeType":"FunctionDefinition","parameters":{"id":444,"nodeType":"ParameterList","parameters":[],"src":"2087:2:2"},"returnParameters":{"id":447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":446,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":451,"src":"2119:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":445,"name":"string","nodeType":"ElementaryTypeName","src":"2119:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2118:15:2"},"scope":905,"src":"2074:89:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1048],"body":{"id":459,"nodeType":"Block","src":"2338:31:2","statements":[{"expression":{"id":457,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":425,"src":"2355:7:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":456,"id":458,"nodeType":"Return","src":"2348:14:2"}]},"documentation":{"id":452,"nodeType":"StructuredDocumentation","src":"2169:102:2","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","id":460,"implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2285:6:2","nodeType":"FunctionDefinition","parameters":{"id":453,"nodeType":"ParameterList","parameters":[],"src":"2291:2:2"},"returnParameters":{"id":456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":455,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":460,"src":"2323:13:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":454,"name":"string","nodeType":"ElementaryTypeName","src":"2323:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2322:15:2"},"scope":905,"src":"2276:93:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[1054],"body":{"id":468,"nodeType":"Block","src":"3058:26:2","statements":[{"expression":{"hexValue":"3138","id":466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3075:2:2","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":465,"id":467,"nodeType":"Return","src":"3068:9:2"}]},"documentation":{"id":461,"nodeType":"StructuredDocumentation","src":"2375:622:2","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","id":469,"implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3011:8:2","nodeType":"FunctionDefinition","parameters":{"id":462,"nodeType":"ParameterList","parameters":[],"src":"3019:2:2"},"returnParameters":{"id":465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":469,"src":"3051:5:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":463,"name":"uint8","nodeType":"ElementaryTypeName","src":"3051:5:2","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3050:7:2"},"scope":905,"src":"3002:82:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[932],"body":{"id":477,"nodeType":"Block","src":"3205:36:2","statements":[{"expression":{"id":475,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"3222:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":474,"id":476,"nodeType":"Return","src":"3215:19:2"}]},"documentation":{"id":470,"nodeType":"StructuredDocumentation","src":"3090:49:2","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","id":478,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3153:11:2","nodeType":"FunctionDefinition","parameters":{"id":471,"nodeType":"ParameterList","parameters":[],"src":"3164:2:2"},"returnParameters":{"id":474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":478,"src":"3196:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":472,"name":"uint256","nodeType":"ElementaryTypeName","src":"3196:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3195:9:2"},"scope":905,"src":"3144:97:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[940],"body":{"id":490,"nodeType":"Block","src":"3373:42:2","statements":[{"expression":{"baseExpression":{"id":486,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"3390:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":488,"indexExpression":{"id":487,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"3400:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3390:18:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":485,"id":489,"nodeType":"Return","src":"3383:25:2"}]},"documentation":{"id":479,"nodeType":"StructuredDocumentation","src":"3247:47:2","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","id":491,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3308:9:2","nodeType":"FunctionDefinition","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":481,"mutability":"mutable","name":"account","nameLocation":"3326:7:2","nodeType":"VariableDeclaration","scope":491,"src":"3318:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":480,"name":"address","nodeType":"ElementaryTypeName","src":"3318:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3317:17:2"},"returnParameters":{"id":485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":491,"src":"3364:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":483,"name":"uint256","nodeType":"ElementaryTypeName","src":"3364:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3363:9:2"},"scope":905,"src":"3299:116:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[950],"body":{"id":514,"nodeType":"Block","src":"3685:103:2","statements":[{"assignments":[502],"declarations":[{"constant":false,"id":502,"mutability":"mutable","name":"owner","nameLocation":"3703:5:2","nodeType":"VariableDeclaration","scope":514,"src":"3695:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":501,"name":"address","nodeType":"ElementaryTypeName","src":"3695:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":505,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":503,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"3711:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3711:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3695:28:2"},{"expression":{"arguments":[{"id":507,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":502,"src":"3743:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":508,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":494,"src":"3750:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":509,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":496,"src":"3754:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":506,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"3733:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3733:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":511,"nodeType":"ExpressionStatement","src":"3733:27:2"},{"expression":{"hexValue":"74727565","id":512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3777:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":500,"id":513,"nodeType":"Return","src":"3770:11:2"}]},"documentation":{"id":492,"nodeType":"StructuredDocumentation","src":"3421:184:2","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `value`."},"functionSelector":"a9059cbb","id":515,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3619:8:2","nodeType":"FunctionDefinition","parameters":{"id":497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":494,"mutability":"mutable","name":"to","nameLocation":"3636:2:2","nodeType":"VariableDeclaration","scope":515,"src":"3628:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":493,"name":"address","nodeType":"ElementaryTypeName","src":"3628:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":496,"mutability":"mutable","name":"value","nameLocation":"3648:5:2","nodeType":"VariableDeclaration","scope":515,"src":"3640:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":495,"name":"uint256","nodeType":"ElementaryTypeName","src":"3640:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3627:27:2"},"returnParameters":{"id":500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":499,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":515,"src":"3679:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":498,"name":"bool","nodeType":"ElementaryTypeName","src":"3679:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3678:6:2"},"scope":905,"src":"3610:178:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[960],"body":{"id":531,"nodeType":"Block","src":"3935:51:2","statements":[{"expression":{"baseExpression":{"baseExpression":{"id":525,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"3952:11:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":527,"indexExpression":{"id":526,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":518,"src":"3964:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3952:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":529,"indexExpression":{"id":528,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":520,"src":"3971:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3952:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":524,"id":530,"nodeType":"Return","src":"3945:34:2"}]},"documentation":{"id":516,"nodeType":"StructuredDocumentation","src":"3794:47:2","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","id":532,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3855:9:2","nodeType":"FunctionDefinition","parameters":{"id":521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":518,"mutability":"mutable","name":"owner","nameLocation":"3873:5:2","nodeType":"VariableDeclaration","scope":532,"src":"3865:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":517,"name":"address","nodeType":"ElementaryTypeName","src":"3865:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":520,"mutability":"mutable","name":"spender","nameLocation":"3888:7:2","nodeType":"VariableDeclaration","scope":532,"src":"3880:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":519,"name":"address","nodeType":"ElementaryTypeName","src":"3880:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3864:32:2"},"returnParameters":{"id":524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":523,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":532,"src":"3926:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":522,"name":"uint256","nodeType":"ElementaryTypeName","src":"3926:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3925:9:2"},"scope":905,"src":"3846:140:2","stateMutability":"view","virtual":true,"visibility":"public"},{"baseFunctions":[970],"body":{"id":555,"nodeType":"Block","src":"4372:107:2","statements":[{"assignments":[543],"declarations":[{"constant":false,"id":543,"mutability":"mutable","name":"owner","nameLocation":"4390:5:2","nodeType":"VariableDeclaration","scope":555,"src":"4382:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":542,"name":"address","nodeType":"ElementaryTypeName","src":"4382:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":546,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":544,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"4398:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4398:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4382:28:2"},{"expression":{"arguments":[{"id":548,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":543,"src":"4429:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":549,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":535,"src":"4436:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":550,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":537,"src":"4445:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":547,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[796,856],"referencedDeclaration":796,"src":"4420:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4420:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":552,"nodeType":"ExpressionStatement","src":"4420:31:2"},{"expression":{"hexValue":"74727565","id":553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4468:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":541,"id":554,"nodeType":"Return","src":"4461:11:2"}]},"documentation":{"id":533,"nodeType":"StructuredDocumentation","src":"3992:296:2","text":" @dev See {IERC20-approve}.\n NOTE: If `value` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","id":556,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4302:7:2","nodeType":"FunctionDefinition","parameters":{"id":538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":535,"mutability":"mutable","name":"spender","nameLocation":"4318:7:2","nodeType":"VariableDeclaration","scope":556,"src":"4310:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":534,"name":"address","nodeType":"ElementaryTypeName","src":"4310:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":537,"mutability":"mutable","name":"value","nameLocation":"4335:5:2","nodeType":"VariableDeclaration","scope":556,"src":"4327:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":536,"name":"uint256","nodeType":"ElementaryTypeName","src":"4327:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4309:32:2"},"returnParameters":{"id":541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":540,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":556,"src":"4366:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":539,"name":"bool","nodeType":"ElementaryTypeName","src":"4366:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4365:6:2"},"scope":905,"src":"4293:186:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"baseFunctions":[982],"body":{"id":587,"nodeType":"Block","src":"5132:151:2","statements":[{"assignments":[569],"declarations":[{"constant":false,"id":569,"mutability":"mutable","name":"spender","nameLocation":"5150:7:2","nodeType":"VariableDeclaration","scope":587,"src":"5142:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":568,"name":"address","nodeType":"ElementaryTypeName","src":"5142:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":572,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":570,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"5160:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5160:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5142:30:2"},{"expression":{"arguments":[{"id":574,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"5198:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":575,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":569,"src":"5204:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":576,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"5213:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":573,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"5182:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5182:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":578,"nodeType":"ExpressionStatement","src":"5182:37:2"},{"expression":{"arguments":[{"id":580,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"5239:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":581,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":561,"src":"5245:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":582,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":563,"src":"5249:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":579,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":635,"src":"5229:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5229:26:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":584,"nodeType":"ExpressionStatement","src":"5229:26:2"},{"expression":{"hexValue":"74727565","id":585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5272:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":567,"id":586,"nodeType":"Return","src":"5265:11:2"}]},"documentation":{"id":557,"nodeType":"StructuredDocumentation","src":"4485:549:2","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `value`.\n - the caller must have allowance for ``from``'s tokens of at least\n `value`."},"functionSelector":"23b872dd","id":588,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5048:12:2","nodeType":"FunctionDefinition","parameters":{"id":564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":559,"mutability":"mutable","name":"from","nameLocation":"5069:4:2","nodeType":"VariableDeclaration","scope":588,"src":"5061:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":558,"name":"address","nodeType":"ElementaryTypeName","src":"5061:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":561,"mutability":"mutable","name":"to","nameLocation":"5083:2:2","nodeType":"VariableDeclaration","scope":588,"src":"5075:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":560,"name":"address","nodeType":"ElementaryTypeName","src":"5075:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":563,"mutability":"mutable","name":"value","nameLocation":"5095:5:2","nodeType":"VariableDeclaration","scope":588,"src":"5087:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":562,"name":"uint256","nodeType":"ElementaryTypeName","src":"5087:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5060:41:2"},"returnParameters":{"id":567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":588,"src":"5126:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":565,"name":"bool","nodeType":"ElementaryTypeName","src":"5126:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5125:6:2"},"scope":905,"src":"5039:244:2","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":634,"nodeType":"Block","src":"5725:231:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":598,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"5739:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5755:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5747:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":599,"name":"address","nodeType":"ElementaryTypeName","src":"5747:7:2","typeDescriptions":{}}},"id":602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5747:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5739:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":612,"nodeType":"IfStatement","src":"5735:86:2","trueBody":{"id":611,"nodeType":"Block","src":"5759:62:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5807:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5799:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":605,"name":"address","nodeType":"ElementaryTypeName","src":"5799:7:2","typeDescriptions":{}}},"id":608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5799:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":604,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16,"src":"5780:18:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5780:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":610,"nodeType":"RevertStatement","src":"5773:37:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":613,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"5834:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5848:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5840:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":614,"name":"address","nodeType":"ElementaryTypeName","src":"5840:7:2","typeDescriptions":{}}},"id":617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5840:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5834:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":627,"nodeType":"IfStatement","src":"5830:86:2","trueBody":{"id":626,"nodeType":"Block","src":"5852:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5902:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5894:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":620,"name":"address","nodeType":"ElementaryTypeName","src":"5894:7:2","typeDescriptions":{}}},"id":623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5894:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":619,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"5873:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5873:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":625,"nodeType":"RevertStatement","src":"5866:39:2"}]}},{"expression":{"arguments":[{"id":629,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"5933:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":630,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"5939:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":595,"src":"5943:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":628,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"5925:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5925:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":633,"nodeType":"ExpressionStatement","src":"5925:24:2"}]},"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"5289:362:2","text":" @dev Moves a `value` amount of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":635,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"5665:9:2","nodeType":"FunctionDefinition","parameters":{"id":596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"from","nameLocation":"5683:4:2","nodeType":"VariableDeclaration","scope":635,"src":"5675:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":590,"name":"address","nodeType":"ElementaryTypeName","src":"5675:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"to","nameLocation":"5697:2:2","nodeType":"VariableDeclaration","scope":635,"src":"5689:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":592,"name":"address","nodeType":"ElementaryTypeName","src":"5689:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":595,"mutability":"mutable","name":"value","nameLocation":"5709:5:2","nodeType":"VariableDeclaration","scope":635,"src":"5701:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":594,"name":"uint256","nodeType":"ElementaryTypeName","src":"5701:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5674:41:2"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[],"src":"5725:0:2"},"scope":905,"src":"5656:300:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":711,"nodeType":"Block","src":"6346:1032:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":650,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":645,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6360:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":648,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6376:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6368:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":646,"name":"address","nodeType":"ElementaryTypeName","src":"6368:7:2","typeDescriptions":{}}},"id":649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6368:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6360:18:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":682,"nodeType":"Block","src":"6534:362:2","statements":[{"assignments":[657],"declarations":[{"constant":false,"id":657,"mutability":"mutable","name":"fromBalance","nameLocation":"6556:11:2","nodeType":"VariableDeclaration","scope":682,"src":"6548:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":656,"name":"uint256","nodeType":"ElementaryTypeName","src":"6548:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":661,"initialValue":{"baseExpression":{"id":658,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"6570:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":660,"indexExpression":{"id":659,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6580:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6570:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6548:37:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":662,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"6603:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":663,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6617:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6603:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":672,"nodeType":"IfStatement","src":"6599:115:2","trueBody":{"id":671,"nodeType":"Block","src":"6624:90:2","statements":[{"errorCall":{"arguments":[{"id":666,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6674:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":667,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"6680:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":668,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6693:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":665,"name":"ERC20InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11,"src":"6649:24:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6649:50:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":670,"nodeType":"RevertStatement","src":"6642:57:2"}]}},{"id":681,"nodeType":"UncheckedBlock","src":"6727:159:2","statements":[{"expression":{"id":679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":673,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"6834:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":675,"indexExpression":{"id":674,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"6844:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6834:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":676,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"6852:11:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":677,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6866:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6852:19:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6834:37:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":680,"nodeType":"ExpressionStatement","src":"6834:37:2"}]}]},"id":683,"nodeType":"IfStatement","src":"6356:540:2","trueBody":{"id":655,"nodeType":"Block","src":"6380:148:2","statements":[{"expression":{"id":653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":651,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"6496:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":652,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"6512:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6496:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":654,"nodeType":"ExpressionStatement","src":"6496:21:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":684,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"6910:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6924:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6916:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":685,"name":"address","nodeType":"ElementaryTypeName","src":"6916:7:2","typeDescriptions":{}}},"id":688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6916:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6910:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":703,"nodeType":"Block","src":"7125:206:2","statements":[{"id":702,"nodeType":"UncheckedBlock","src":"7139:182:2","statements":[{"expression":{"id":700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":696,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"7284:9:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":698,"indexExpression":{"id":697,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"7294:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7284:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":699,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7301:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7284:22:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":701,"nodeType":"ExpressionStatement","src":"7284:22:2"}]}]},"id":704,"nodeType":"IfStatement","src":"6906:425:2","trueBody":{"id":695,"nodeType":"Block","src":"6928:191:2","statements":[{"id":694,"nodeType":"UncheckedBlock","src":"6942:167:2","statements":[{"expression":{"id":692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":690,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"7073:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":691,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7089:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7073:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":693,"nodeType":"ExpressionStatement","src":"7073:21:2"}]}]}},{"eventCall":{"arguments":[{"id":706,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":638,"src":"7355:4:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":707,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":640,"src":"7361:2:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":708,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":642,"src":"7365:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":705,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":917,"src":"7346:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7346:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":710,"nodeType":"EmitStatement","src":"7341:30:2"}]},"documentation":{"id":636,"nodeType":"StructuredDocumentation","src":"5962:304:2","text":" @dev Transfers a `value` amount of tokens from `from` to `to`, or alternatively mints (or burns) if `from`\n (or `to`) is the zero address. All customizations to transfers, mints, and burns should be done by overriding\n this function.\n Emits a {Transfer} event."},"id":712,"implemented":true,"kind":"function","modifiers":[],"name":"_update","nameLocation":"6280:7:2","nodeType":"FunctionDefinition","parameters":{"id":643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":638,"mutability":"mutable","name":"from","nameLocation":"6296:4:2","nodeType":"VariableDeclaration","scope":712,"src":"6288:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":637,"name":"address","nodeType":"ElementaryTypeName","src":"6288:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":640,"mutability":"mutable","name":"to","nameLocation":"6310:2:2","nodeType":"VariableDeclaration","scope":712,"src":"6302:10:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":639,"name":"address","nodeType":"ElementaryTypeName","src":"6302:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":642,"mutability":"mutable","name":"value","nameLocation":"6322:5:2","nodeType":"VariableDeclaration","scope":712,"src":"6314:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":641,"name":"uint256","nodeType":"ElementaryTypeName","src":"6314:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6287:41:2"},"returnParameters":{"id":644,"nodeType":"ParameterList","parameters":[],"src":"6346:0:2"},"scope":905,"src":"6271:1107:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":744,"nodeType":"Block","src":"7777:152:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":720,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"7791:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7810:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7802:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":721,"name":"address","nodeType":"ElementaryTypeName","src":"7802:7:2","typeDescriptions":{}}},"id":724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7802:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7791:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":734,"nodeType":"IfStatement","src":"7787:91:2","trueBody":{"id":733,"nodeType":"Block","src":"7814:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":729,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7864:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":728,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7856:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":727,"name":"address","nodeType":"ElementaryTypeName","src":"7856:7:2","typeDescriptions":{}}},"id":730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7856:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":726,"name":"ERC20InvalidReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"7835:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7835:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":732,"nodeType":"RevertStatement","src":"7828:39:2"}]}},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7903:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7895:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":736,"name":"address","nodeType":"ElementaryTypeName","src":"7895:7:2","typeDescriptions":{}}},"id":739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7895:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":740,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":715,"src":"7907:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":741,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":717,"src":"7916:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":735,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"7887:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":742,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7887:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":743,"nodeType":"ExpressionStatement","src":"7887:35:2"}]},"documentation":{"id":713,"nodeType":"StructuredDocumentation","src":"7384:332:2","text":" @dev Creates a `value` amount of tokens and assigns them to `account`, by transferring it from address(0).\n Relies on the `_update` mechanism\n Emits a {Transfer} event with `from` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead."},"id":745,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"7730:5:2","nodeType":"FunctionDefinition","parameters":{"id":718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":715,"mutability":"mutable","name":"account","nameLocation":"7744:7:2","nodeType":"VariableDeclaration","scope":745,"src":"7736:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":714,"name":"address","nodeType":"ElementaryTypeName","src":"7736:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":717,"mutability":"mutable","name":"value","nameLocation":"7761:5:2","nodeType":"VariableDeclaration","scope":745,"src":"7753:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":716,"name":"uint256","nodeType":"ElementaryTypeName","src":"7753:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7735:32:2"},"returnParameters":{"id":719,"nodeType":"ParameterList","parameters":[],"src":"7777:0:2"},"scope":905,"src":"7721:208:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":777,"nodeType":"Block","src":"8303:150:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":753,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"8317:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8336:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8328:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":754,"name":"address","nodeType":"ElementaryTypeName","src":"8328:7:2","typeDescriptions":{}}},"id":757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8328:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8317:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":767,"nodeType":"IfStatement","src":"8313:89:2","trueBody":{"id":766,"nodeType":"Block","src":"8340:62:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8388:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8380:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":760,"name":"address","nodeType":"ElementaryTypeName","src":"8380:7:2","typeDescriptions":{}}},"id":763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8380:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":759,"name":"ERC20InvalidSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16,"src":"8361:18:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8361:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":765,"nodeType":"RevertStatement","src":"8354:37:2"}]}},{"expression":{"arguments":[{"id":769,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":748,"src":"8419:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":772,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8436:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":771,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8428:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":770,"name":"address","nodeType":"ElementaryTypeName","src":"8428:7:2","typeDescriptions":{}}},"id":773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8428:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":774,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"8440:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":768,"name":"_update","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":712,"src":"8411:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8411:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":776,"nodeType":"ExpressionStatement","src":"8411:35:2"}]},"documentation":{"id":746,"nodeType":"StructuredDocumentation","src":"7935:307:2","text":" @dev Destroys a `value` amount of tokens from `account`, lowering the total supply.\n Relies on the `_update` mechanism.\n Emits a {Transfer} event with `to` set to the zero address.\n NOTE: This function is not virtual, {_update} should be overridden instead"},"id":778,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"8256:5:2","nodeType":"FunctionDefinition","parameters":{"id":751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":748,"mutability":"mutable","name":"account","nameLocation":"8270:7:2","nodeType":"VariableDeclaration","scope":778,"src":"8262:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":747,"name":"address","nodeType":"ElementaryTypeName","src":"8262:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":750,"mutability":"mutable","name":"value","nameLocation":"8287:5:2","nodeType":"VariableDeclaration","scope":778,"src":"8279:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":749,"name":"uint256","nodeType":"ElementaryTypeName","src":"8279:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8261:32:2"},"returnParameters":{"id":752,"nodeType":"ParameterList","parameters":[],"src":"8303:0:2"},"scope":905,"src":"8247:206:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":795,"nodeType":"Block","src":"9063:54:2","statements":[{"expression":{"arguments":[{"id":789,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":781,"src":"9082:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":790,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":783,"src":"9089:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":791,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":785,"src":"9098:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"74727565","id":792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9105:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":788,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[796,856],"referencedDeclaration":856,"src":"9073:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9073:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"ExpressionStatement","src":"9073:37:2"}]},"documentation":{"id":779,"nodeType":"StructuredDocumentation","src":"8459:525:2","text":" @dev Sets `value` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address.\n Overrides to this logic should be done to the variant with an additional `bool emitEvent` argument."},"id":796,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"8998:8:2","nodeType":"FunctionDefinition","parameters":{"id":786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":781,"mutability":"mutable","name":"owner","nameLocation":"9015:5:2","nodeType":"VariableDeclaration","scope":796,"src":"9007:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":780,"name":"address","nodeType":"ElementaryTypeName","src":"9007:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":783,"mutability":"mutable","name":"spender","nameLocation":"9030:7:2","nodeType":"VariableDeclaration","scope":796,"src":"9022:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":782,"name":"address","nodeType":"ElementaryTypeName","src":"9022:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":785,"mutability":"mutable","name":"value","nameLocation":"9047:5:2","nodeType":"VariableDeclaration","scope":796,"src":"9039:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":784,"name":"uint256","nodeType":"ElementaryTypeName","src":"9039:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9006:47:2"},"returnParameters":{"id":787,"nodeType":"ParameterList","parameters":[],"src":"9063:0:2"},"scope":905,"src":"8989:128:2","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":855,"nodeType":"Block","src":"10047:334:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":808,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"10061:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10078:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10070:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":809,"name":"address","nodeType":"ElementaryTypeName","src":"10070:7:2","typeDescriptions":{}}},"id":812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10070:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10061:19:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":822,"nodeType":"IfStatement","src":"10057:89:2","trueBody":{"id":821,"nodeType":"Block","src":"10082:64:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10132:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10124:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":815,"name":"address","nodeType":"ElementaryTypeName","src":"10124:7:2","typeDescriptions":{}}},"id":818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10124:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":814,"name":"ERC20InvalidApprover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":35,"src":"10103:20:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10103:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":820,"nodeType":"RevertStatement","src":"10096:39:2"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":823,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"10159:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10178:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10170:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":824,"name":"address","nodeType":"ElementaryTypeName","src":"10170:7:2","typeDescriptions":{}}},"id":827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10170:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10159:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":837,"nodeType":"IfStatement","src":"10155:90:2","trueBody":{"id":836,"nodeType":"Block","src":"10182:63:2","statements":[{"errorCall":{"arguments":[{"arguments":[{"hexValue":"30","id":832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10231:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10223:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":830,"name":"address","nodeType":"ElementaryTypeName","src":"10223:7:2","typeDescriptions":{}}},"id":833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10223:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":829,"name":"ERC20InvalidSpender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"10203:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10203:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":835,"nodeType":"RevertStatement","src":"10196:38:2"}]}},{"expression":{"id":844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":838,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":419,"src":"10254:11:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":841,"indexExpression":{"id":839,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"10266:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10254:18:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":842,"indexExpression":{"id":840,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"10273:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10254:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":843,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10284:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10254:35:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":845,"nodeType":"ExpressionStatement","src":"10254:35:2"},{"condition":{"id":846,"name":"emitEvent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":805,"src":"10303:9:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":854,"nodeType":"IfStatement","src":"10299:76:2","trueBody":{"id":853,"nodeType":"Block","src":"10314:61:2","statements":[{"eventCall":{"arguments":[{"id":848,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":799,"src":"10342:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":849,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":801,"src":"10349:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":850,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":803,"src":"10358:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":847,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":926,"src":"10333:8:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10333:31:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":852,"nodeType":"EmitStatement","src":"10328:36:2"}]}}]},"documentation":{"id":797,"nodeType":"StructuredDocumentation","src":"9123:821:2","text":" @dev Variant of {_approve} with an optional flag to enable or disable the {Approval} event.\n By default (when calling {_approve}) the flag is set to true. On the other hand, approval changes made by\n `_spendAllowance` during the `transferFrom` operation set the flag to false. This saves gas by not emitting any\n `Approval` event during `transferFrom` operations.\n Anyone who wishes to continue emitting `Approval` events on the`transferFrom` operation can force the flag to\n true using the following override:\n ```\n function _approve(address owner, address spender, uint256 value, bool) internal virtual override {\n super._approve(owner, spender, value, true);\n }\n ```\n Requirements are the same as {_approve}."},"id":856,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"9958:8:2","nodeType":"FunctionDefinition","parameters":{"id":806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":799,"mutability":"mutable","name":"owner","nameLocation":"9975:5:2","nodeType":"VariableDeclaration","scope":856,"src":"9967:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":798,"name":"address","nodeType":"ElementaryTypeName","src":"9967:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":801,"mutability":"mutable","name":"spender","nameLocation":"9990:7:2","nodeType":"VariableDeclaration","scope":856,"src":"9982:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":800,"name":"address","nodeType":"ElementaryTypeName","src":"9982:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":803,"mutability":"mutable","name":"value","nameLocation":"10007:5:2","nodeType":"VariableDeclaration","scope":856,"src":"9999:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":802,"name":"uint256","nodeType":"ElementaryTypeName","src":"9999:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":805,"mutability":"mutable","name":"emitEvent","nameLocation":"10019:9:2","nodeType":"VariableDeclaration","scope":856,"src":"10014:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":804,"name":"bool","nodeType":"ElementaryTypeName","src":"10014:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9966:63:2"},"returnParameters":{"id":807,"nodeType":"ParameterList","parameters":[],"src":"10047:0:2"},"scope":905,"src":"9949:432:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"body":{"id":903,"nodeType":"Block","src":"10752:388:2","statements":[{"assignments":[867],"declarations":[{"constant":false,"id":867,"mutability":"mutable","name":"currentAllowance","nameLocation":"10770:16:2","nodeType":"VariableDeclaration","scope":903,"src":"10762:24:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":866,"name":"uint256","nodeType":"ElementaryTypeName","src":"10762:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":872,"initialValue":{"arguments":[{"id":869,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"10799:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":870,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"10806:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":868,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":532,"src":"10789:9:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10789:25:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10762:52:2"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":873,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"10828:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":876,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10853:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":875,"name":"uint256","nodeType":"ElementaryTypeName","src":"10853:7:2","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":874,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"10848:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10848:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10862:3:2","memberName":"max","nodeType":"MemberAccess","src":"10848:17:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10828:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":902,"nodeType":"IfStatement","src":"10824:310:2","trueBody":{"id":901,"nodeType":"Block","src":"10867:267:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":880,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"10885:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":881,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"10904:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10885:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":890,"nodeType":"IfStatement","src":"10881:130:2","trueBody":{"id":889,"nodeType":"Block","src":"10911:100:2","statements":[{"errorCall":{"arguments":[{"id":884,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"10963:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":885,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"10972:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":886,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"10990:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":883,"name":"ERC20InsufficientAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":30,"src":"10936:26:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256) pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10936:60:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"RevertStatement","src":"10929:67:2"}]}},{"id":900,"nodeType":"UncheckedBlock","src":"11024:100:2","statements":[{"expression":{"arguments":[{"id":892,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":859,"src":"11061:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":893,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":861,"src":"11068:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":894,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":867,"src":"11077:16:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":895,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":863,"src":"11096:5:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11077:24:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"66616c7365","id":897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11103:5:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":891,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[796,856],"referencedDeclaration":856,"src":"11052:8:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,address,uint256,bool)"}},"id":898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11052:57:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":899,"nodeType":"ExpressionStatement","src":"11052:57:2"}]}]}}]},"documentation":{"id":857,"nodeType":"StructuredDocumentation","src":"10387:271:2","text":" @dev Updates `owner` s allowance for `spender` based on spent `value`.\n Does not update the allowance value in case of infinite allowance.\n Revert if not enough allowance is available.\n Does not emit an {Approval} event."},"id":904,"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"10672:15:2","nodeType":"FunctionDefinition","parameters":{"id":864,"nodeType":"ParameterList","parameters":[{"constant":false,"id":859,"mutability":"mutable","name":"owner","nameLocation":"10696:5:2","nodeType":"VariableDeclaration","scope":904,"src":"10688:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":858,"name":"address","nodeType":"ElementaryTypeName","src":"10688:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":861,"mutability":"mutable","name":"spender","nameLocation":"10711:7:2","nodeType":"VariableDeclaration","scope":904,"src":"10703:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":860,"name":"address","nodeType":"ElementaryTypeName","src":"10703:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":863,"mutability":"mutable","name":"value","nameLocation":"10728:5:2","nodeType":"VariableDeclaration","scope":904,"src":"10720:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":862,"name":"uint256","nodeType":"ElementaryTypeName","src":"10720:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10687:47:2"},"returnParameters":{"id":865,"nodeType":"ParameterList","parameters":[],"src":"10752:0:2"},"scope":905,"src":"10663:477:2","stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"scope":906,"src":"1401:9741:2","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]}],"src":"105:11038:2"},"id":2},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[983]},"id":984,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":907,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"106:24:3"},{"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":908,"nodeType":"StructuredDocumentation","src":"132:70:3","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"id":983,"linearizedBaseContracts":[983],"name":"IERC20","nameLocation":"213:6:3","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":{"id":909,"nodeType":"StructuredDocumentation","src":"226:158:3","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","id":917,"name":"Transfer","nameLocation":"395:8:3","nodeType":"EventDefinition","parameters":{"id":916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":911,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"420:4:3","nodeType":"VariableDeclaration","scope":917,"src":"404:20:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":910,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":913,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"442:2:3","nodeType":"VariableDeclaration","scope":917,"src":"426:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":912,"name":"address","nodeType":"ElementaryTypeName","src":"426:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":915,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"454:5:3","nodeType":"VariableDeclaration","scope":917,"src":"446:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":914,"name":"uint256","nodeType":"ElementaryTypeName","src":"446:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"403:57:3"},"src":"389:72:3"},{"anonymous":false,"documentation":{"id":918,"nodeType":"StructuredDocumentation","src":"467:148:3","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","id":926,"name":"Approval","nameLocation":"626:8:3","nodeType":"EventDefinition","parameters":{"id":925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":920,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"651:5:3","nodeType":"VariableDeclaration","scope":926,"src":"635:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":919,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":922,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"674:7:3","nodeType":"VariableDeclaration","scope":926,"src":"658:23:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":921,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":924,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"691:5:3","nodeType":"VariableDeclaration","scope":926,"src":"683:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":923,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"634:63:3"},"src":"620:78:3"},{"documentation":{"id":927,"nodeType":"StructuredDocumentation","src":"704:65:3","text":" @dev Returns the value of tokens in existence."},"functionSelector":"18160ddd","id":932,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:3","nodeType":"FunctionDefinition","parameters":{"id":928,"nodeType":"ParameterList","parameters":[],"src":"794:2:3"},"returnParameters":{"id":931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":930,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":932,"src":"820:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":929,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:3"},"scope":983,"src":"774:55:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":933,"nodeType":"StructuredDocumentation","src":"835:71:3","text":" @dev Returns the value of tokens owned by `account`."},"functionSelector":"70a08231","id":940,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"920:9:3","nodeType":"FunctionDefinition","parameters":{"id":936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":935,"mutability":"mutable","name":"account","nameLocation":"938:7:3","nodeType":"VariableDeclaration","scope":940,"src":"930:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":934,"name":"address","nodeType":"ElementaryTypeName","src":"930:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"929:17:3"},"returnParameters":{"id":939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":940,"src":"970:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":937,"name":"uint256","nodeType":"ElementaryTypeName","src":"970:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"969:9:3"},"scope":983,"src":"911:68:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":941,"nodeType":"StructuredDocumentation","src":"985:213:3","text":" @dev Moves a `value` amount of tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","id":950,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1212:8:3","nodeType":"FunctionDefinition","parameters":{"id":946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":943,"mutability":"mutable","name":"to","nameLocation":"1229:2:3","nodeType":"VariableDeclaration","scope":950,"src":"1221:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":942,"name":"address","nodeType":"ElementaryTypeName","src":"1221:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":945,"mutability":"mutable","name":"value","nameLocation":"1241:5:3","nodeType":"VariableDeclaration","scope":950,"src":"1233:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":944,"name":"uint256","nodeType":"ElementaryTypeName","src":"1233:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1220:27:3"},"returnParameters":{"id":949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":950,"src":"1266:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":947,"name":"bool","nodeType":"ElementaryTypeName","src":"1266:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1265:6:3"},"scope":983,"src":"1203:69:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":951,"nodeType":"StructuredDocumentation","src":"1278:264:3","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","id":960,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1556:9:3","nodeType":"FunctionDefinition","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":953,"mutability":"mutable","name":"owner","nameLocation":"1574:5:3","nodeType":"VariableDeclaration","scope":960,"src":"1566:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":952,"name":"address","nodeType":"ElementaryTypeName","src":"1566:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":955,"mutability":"mutable","name":"spender","nameLocation":"1589:7:3","nodeType":"VariableDeclaration","scope":960,"src":"1581:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":954,"name":"address","nodeType":"ElementaryTypeName","src":"1581:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1565:32:3"},"returnParameters":{"id":959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":960,"src":"1621:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":957,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1620:9:3"},"scope":983,"src":"1547:83:3","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":961,"nodeType":"StructuredDocumentation","src":"1636:667:3","text":" @dev Sets a `value` amount of tokens as the allowance of `spender` over the\n caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","id":970,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2317:7:3","nodeType":"FunctionDefinition","parameters":{"id":966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":963,"mutability":"mutable","name":"spender","nameLocation":"2333:7:3","nodeType":"VariableDeclaration","scope":970,"src":"2325:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":962,"name":"address","nodeType":"ElementaryTypeName","src":"2325:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":965,"mutability":"mutable","name":"value","nameLocation":"2350:5:3","nodeType":"VariableDeclaration","scope":970,"src":"2342:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":964,"name":"uint256","nodeType":"ElementaryTypeName","src":"2342:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2324:32:3"},"returnParameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":970,"src":"2375:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":967,"name":"bool","nodeType":"ElementaryTypeName","src":"2375:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2374:6:3"},"scope":983,"src":"2308:73:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"documentation":{"id":971,"nodeType":"StructuredDocumentation","src":"2387:297:3","text":" @dev Moves a `value` amount of tokens from `from` to `to` using the\n allowance mechanism. `value` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","id":982,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2698:12:3","nodeType":"FunctionDefinition","parameters":{"id":978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":973,"mutability":"mutable","name":"from","nameLocation":"2719:4:3","nodeType":"VariableDeclaration","scope":982,"src":"2711:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":972,"name":"address","nodeType":"ElementaryTypeName","src":"2711:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":975,"mutability":"mutable","name":"to","nameLocation":"2733:2:3","nodeType":"VariableDeclaration","scope":982,"src":"2725:10:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":974,"name":"address","nodeType":"ElementaryTypeName","src":"2725:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":977,"mutability":"mutable","name":"value","nameLocation":"2745:5:3","nodeType":"VariableDeclaration","scope":982,"src":"2737:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":976,"name":"uint256","nodeType":"ElementaryTypeName","src":"2737:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2710:41:3"},"returnParameters":{"id":981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":982,"src":"2770:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":979,"name":"bool","nodeType":"ElementaryTypeName","src":"2770:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2769:6:3"},"scope":983,"src":"2689:87:3","stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"scope":984,"src":"203:2575:3","usedErrors":[],"usedEvents":[917,926]}],"src":"106:2673:3"},"id":3},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","exportedSymbols":{"Context":[1077],"ERC20":[905],"ERC20Burnable":[1029]},"id":1030,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":985,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"124:24:4"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"../ERC20.sol","id":987,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1030,"sourceUnit":906,"src":"150:35:4","symbolAliases":[{"foreign":{"id":986,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":905,"src":"158:5:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","file":"../../../utils/Context.sol","id":989,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1030,"sourceUnit":1078,"src":"186:51:4","symbolAliases":[{"foreign":{"id":988,"name":"Context","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1077,"src":"194:7:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":991,"name":"Context","nameLocations":["483:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":1077,"src":"483:7:4"},"id":992,"nodeType":"InheritanceSpecifier","src":"483:7:4"},{"baseName":{"id":993,"name":"ERC20","nameLocations":["492:5:4"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"492:5:4"},"id":994,"nodeType":"InheritanceSpecifier","src":"492:5:4"}],"canonicalName":"ERC20Burnable","contractDependencies":[],"contractKind":"contract","documentation":{"id":990,"nodeType":"StructuredDocumentation","src":"239:208:4","text":" @dev Extension of {ERC20} that allows token holders to destroy both their own\n tokens and those that they have an allowance for, in a way that can be\n recognized off-chain (via event analysis)."},"fullyImplemented":true,"id":1029,"linearizedBaseContracts":[1029,905,41,1055,983,1077],"name":"ERC20Burnable","nameLocation":"466:13:4","nodeType":"ContractDefinition","nodes":[{"body":{"id":1006,"nodeType":"Block","src":"662:43:4","statements":[{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":1001,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"678:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"678:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1003,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":997,"src":"692:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1000,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"672:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"672:26:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1005,"nodeType":"ExpressionStatement","src":"672:26:4"}]},"documentation":{"id":995,"nodeType":"StructuredDocumentation","src":"504:109:4","text":" @dev Destroys a `value` amount of tokens from the caller.\n See {ERC20-_burn}."},"functionSelector":"42966c68","id":1007,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"627:4:4","nodeType":"FunctionDefinition","parameters":{"id":998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":997,"mutability":"mutable","name":"value","nameLocation":"640:5:4","nodeType":"VariableDeclaration","scope":1007,"src":"632:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":996,"name":"uint256","nodeType":"ElementaryTypeName","src":"632:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"631:15:4"},"returnParameters":{"id":999,"nodeType":"ParameterList","parameters":[],"src":"662:0:4"},"scope":1029,"src":"618:87:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"body":{"id":1027,"nodeType":"Block","src":"1086:93:4","statements":[{"expression":{"arguments":[{"id":1016,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"1112:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":1017,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1067,"src":"1121:10:4","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1121:12:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1019,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1012,"src":"1135:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1015,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":904,"src":"1096:15:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1096:45:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1021,"nodeType":"ExpressionStatement","src":"1096:45:4"},{"expression":{"arguments":[{"id":1023,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1010,"src":"1157:7:4","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1024,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1012,"src":"1166:5:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1022,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":778,"src":"1151:5:4","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1151:21:4","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1026,"nodeType":"ExpressionStatement","src":"1151:21:4"}]},"documentation":{"id":1008,"nodeType":"StructuredDocumentation","src":"711:305:4","text":" @dev Destroys a `value` amount of tokens from `account`, deducting from\n the caller's allowance.\n See {ERC20-_burn} and {ERC20-allowance}.\n Requirements:\n - the caller must have allowance for ``accounts``'s tokens of at least\n `value`."},"functionSelector":"79cc6790","id":1028,"implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nameLocation":"1030:8:4","nodeType":"FunctionDefinition","parameters":{"id":1013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1010,"mutability":"mutable","name":"account","nameLocation":"1047:7:4","nodeType":"VariableDeclaration","scope":1028,"src":"1039:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1009,"name":"address","nodeType":"ElementaryTypeName","src":"1039:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1012,"mutability":"mutable","name":"value","nameLocation":"1064:5:4","nodeType":"VariableDeclaration","scope":1028,"src":"1056:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1011,"name":"uint256","nodeType":"ElementaryTypeName","src":"1056:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1038:32:4"},"returnParameters":{"id":1014,"nodeType":"ParameterList","parameters":[],"src":"1086:0:4"},"scope":1029,"src":"1021:158:4","stateMutability":"nonpayable","virtual":true,"visibility":"public"}],"scope":1030,"src":"448:733:4","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]}],"src":"124:1058:4"},"id":4},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol","exportedSymbols":{"IERC20":[983],"IERC20Metadata":[1055]},"id":1056,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1031,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"125:24:5"},{"absolutePath":"@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","id":1033,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1056,"sourceUnit":984,"src":"151:37:5","symbolAliases":[{"foreign":{"id":1032,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":983,"src":"159:6:5","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":1035,"name":"IERC20","nameLocations":["305:6:5"],"nodeType":"IdentifierPath","referencedDeclaration":983,"src":"305:6:5"},"id":1036,"nodeType":"InheritanceSpecifier","src":"305:6:5"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":1034,"nodeType":"StructuredDocumentation","src":"190:86:5","text":" @dev Interface for the optional metadata functions from the ERC20 standard."},"fullyImplemented":false,"id":1055,"linearizedBaseContracts":[1055,983],"name":"IERC20Metadata","nameLocation":"287:14:5","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1037,"nodeType":"StructuredDocumentation","src":"318:54:5","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","id":1042,"implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:5","nodeType":"FunctionDefinition","parameters":{"id":1038,"nodeType":"ParameterList","parameters":[],"src":"390:2:5"},"returnParameters":{"id":1041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1042,"src":"416:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1039,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:5"},"scope":1055,"src":"377:54:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1043,"nodeType":"StructuredDocumentation","src":"437:56:5","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","id":1048,"implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:5","nodeType":"FunctionDefinition","parameters":{"id":1044,"nodeType":"ParameterList","parameters":[],"src":"513:2:5"},"returnParameters":{"id":1047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1046,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1048,"src":"539:13:5","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1045,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:5","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:5"},"scope":1055,"src":"498:56:5","stateMutability":"view","virtual":false,"visibility":"external"},{"documentation":{"id":1049,"nodeType":"StructuredDocumentation","src":"560:65:5","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","id":1054,"implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:5","nodeType":"FunctionDefinition","parameters":{"id":1050,"nodeType":"ParameterList","parameters":[],"src":"647:2:5"},"returnParameters":{"id":1053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1054,"src":"673:5:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1051,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:5","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:5"},"scope":1055,"src":"630:50:5","stateMutability":"view","virtual":false,"visibility":"external"}],"scope":1056,"src":"277:405:5","usedErrors":[],"usedEvents":[917,926]}],"src":"125:558:5"},"id":5},"@openzeppelin/contracts/utils/Context.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Context.sol","exportedSymbols":{"Context":[1077]},"id":1078,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1057,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:6"},{"abstract":true,"baseContracts":[],"canonicalName":"Context","contractDependencies":[],"contractKind":"contract","documentation":{"id":1058,"nodeType":"StructuredDocumentation","src":"127:496:6","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":1077,"linearizedBaseContracts":[1077],"name":"Context","nameLocation":"642:7:6","nodeType":"ContractDefinition","nodes":[{"body":{"id":1066,"nodeType":"Block","src":"718:34:6","statements":[{"expression":{"expression":{"id":1063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"735:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"739:6:6","memberName":"sender","nodeType":"MemberAccess","src":"735:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1062,"id":1065,"nodeType":"Return","src":"728:17:6"}]},"id":1067,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nameLocation":"665:10:6","nodeType":"FunctionDefinition","parameters":{"id":1059,"nodeType":"ParameterList","parameters":[],"src":"675:2:6"},"returnParameters":{"id":1062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1061,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1067,"src":"709:7:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1060,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"708:9:6"},"scope":1077,"src":"656:96:6","stateMutability":"view","virtual":true,"visibility":"internal"},{"body":{"id":1075,"nodeType":"Block","src":"825:32:6","statements":[{"expression":{"expression":{"id":1072,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"842:3:6","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1073,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"846:4:6","memberName":"data","nodeType":"MemberAccess","src":"842:8:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":1071,"id":1074,"nodeType":"Return","src":"835:15:6"}]},"id":1076,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nameLocation":"767:8:6","nodeType":"FunctionDefinition","parameters":{"id":1068,"nodeType":"ParameterList","parameters":[],"src":"775:2:6"},"returnParameters":{"id":1071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1076,"src":"809:14:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1069,"name":"bytes","nodeType":"ElementaryTypeName","src":"809:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"808:16:6"},"scope":1077,"src":"758:99:6","stateMutability":"view","virtual":true,"visibility":"internal"}],"scope":1078,"src":"624:235:6","usedErrors":[],"usedEvents":[]}],"src":"101:759:6"},"id":6},"@openzeppelin/contracts/utils/Create2.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","exportedSymbols":{"Create2":[1180]},"id":1181,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1079,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:7"},{"abstract":false,"baseContracts":[],"canonicalName":"Create2","contractDependencies":[],"contractKind":"library","documentation":{"id":1080,"nodeType":"StructuredDocumentation","src":"127:367:7","text":" @dev Helper to make usage of the `CREATE2` EVM opcode easier and safer.\n `CREATE2` can be used to compute in advance the address where a smart\n contract will be deployed, which allows for interesting new mechanisms known\n as 'counterfactual interactions'.\n See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more\n information."},"fullyImplemented":true,"id":1180,"linearizedBaseContracts":[1180],"name":"Create2","nameLocation":"503:7:7","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1081,"nodeType":"StructuredDocumentation","src":"517:75:7","text":" @dev Not enough balance for performing a CREATE2 deploy."},"errorSelector":"e4bbecac","id":1087,"name":"Create2InsufficientBalance","nameLocation":"603:26:7","nodeType":"ErrorDefinition","parameters":{"id":1086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1083,"mutability":"mutable","name":"balance","nameLocation":"638:7:7","nodeType":"VariableDeclaration","scope":1087,"src":"630:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1082,"name":"uint256","nodeType":"ElementaryTypeName","src":"630:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1085,"mutability":"mutable","name":"needed","nameLocation":"655:6:7","nodeType":"VariableDeclaration","scope":1087,"src":"647:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1084,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"629:33:7"},"src":"597:66:7"},{"documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"669:50:7","text":" @dev There's no code to deploy."},"errorSelector":"4ca249dc","id":1090,"name":"Create2EmptyBytecode","nameLocation":"730:20:7","nodeType":"ErrorDefinition","parameters":{"id":1089,"nodeType":"ParameterList","parameters":[],"src":"750:2:7"},"src":"724:29:7"},{"documentation":{"id":1091,"nodeType":"StructuredDocumentation","src":"759:46:7","text":" @dev The deployment failed."},"errorSelector":"741752c2","id":1093,"name":"Create2FailedDeployment","nameLocation":"816:23:7","nodeType":"ErrorDefinition","parameters":{"id":1092,"nodeType":"ParameterList","parameters":[],"src":"839:2:7"},"src":"810:32:7"},{"body":{"id":1144,"nodeType":"Block","src":"1514:472:7","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1107,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1536:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}],"id":1106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1105,"name":"address","nodeType":"ElementaryTypeName","src":"1528:7:7","typeDescriptions":{}}},"id":1108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1542:7:7","memberName":"balance","nodeType":"MemberAccess","src":"1528:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1110,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"1552:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1528:30:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1122,"nodeType":"IfStatement","src":"1524:125:7","trueBody":{"id":1121,"nodeType":"Block","src":"1560:89:7","statements":[{"errorCall":{"arguments":[{"expression":{"arguments":[{"id":1115,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1616:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}],"id":1114,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1608:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1113,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:7","typeDescriptions":{}}},"id":1116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1608:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1622:7:7","memberName":"balance","nodeType":"MemberAccess","src":"1608:21:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1118,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1096,"src":"1631:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1112,"name":"Create2InsufficientBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"1581:26:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1581:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1120,"nodeType":"RevertStatement","src":"1574:64:7"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1123,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1100,"src":"1662:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1671:6:7","memberName":"length","nodeType":"MemberAccess","src":"1662:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1681:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1662:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1131,"nodeType":"IfStatement","src":"1658:80:7","trueBody":{"id":1130,"nodeType":"Block","src":"1684:54:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1127,"name":"Create2EmptyBytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1090,"src":"1705:20:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1705:22:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1129,"nodeType":"RevertStatement","src":"1698:29:7"}]}},{"AST":{"nodeType":"YulBlock","src":"1799:91:7","statements":[{"nodeType":"YulAssignment","src":"1813:67:7","value":{"arguments":[{"name":"amount","nodeType":"YulIdentifier","src":"1829:6:7"},{"arguments":[{"name":"bytecode","nodeType":"YulIdentifier","src":"1841:8:7"},{"kind":"number","nodeType":"YulLiteral","src":"1851:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1837:3:7"},"nodeType":"YulFunctionCall","src":"1837:19:7"},{"arguments":[{"name":"bytecode","nodeType":"YulIdentifier","src":"1864:8:7"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1858:5:7"},"nodeType":"YulFunctionCall","src":"1858:15:7"},{"name":"salt","nodeType":"YulIdentifier","src":"1875:4:7"}],"functionName":{"name":"create2","nodeType":"YulIdentifier","src":"1821:7:7"},"nodeType":"YulFunctionCall","src":"1821:59:7"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"1813:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1103,"isOffset":false,"isSlot":false,"src":"1813:4:7","valueSize":1},{"declaration":1096,"isOffset":false,"isSlot":false,"src":"1829:6:7","valueSize":1},{"declaration":1100,"isOffset":false,"isSlot":false,"src":"1841:8:7","valueSize":1},{"declaration":1100,"isOffset":false,"isSlot":false,"src":"1864:8:7","valueSize":1},{"declaration":1098,"isOffset":false,"isSlot":false,"src":"1875:4:7","valueSize":1}],"id":1132,"nodeType":"InlineAssembly","src":"1790:100:7"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1133,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1103,"src":"1903:4:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1919:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1911:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1134,"name":"address","nodeType":"ElementaryTypeName","src":"1911:7:7","typeDescriptions":{}}},"id":1137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1911:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1903:18:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1143,"nodeType":"IfStatement","src":"1899:81:7","trueBody":{"id":1142,"nodeType":"Block","src":"1923:57:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1139,"name":"Create2FailedDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"1944:23:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:25:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1141,"nodeType":"RevertStatement","src":"1937:32:7"}]}}]},"documentation":{"id":1094,"nodeType":"StructuredDocumentation","src":"848:560:7","text":" @dev Deploys a contract using `CREATE2`. The address where the contract\n will be deployed can be known in advance via {computeAddress}.\n The bytecode for a contract can be obtained from Solidity with\n `type(contractName).creationCode`.\n Requirements:\n - `bytecode` must not be empty.\n - `salt` must have not been used for `bytecode` already.\n - the factory must have a balance of at least `amount`.\n - if `amount` is non-zero, `bytecode` must have a `payable` constructor."},"id":1145,"implemented":true,"kind":"function","modifiers":[],"name":"deploy","nameLocation":"1422:6:7","nodeType":"FunctionDefinition","parameters":{"id":1101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1096,"mutability":"mutable","name":"amount","nameLocation":"1437:6:7","nodeType":"VariableDeclaration","scope":1145,"src":"1429:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1095,"name":"uint256","nodeType":"ElementaryTypeName","src":"1429:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1098,"mutability":"mutable","name":"salt","nameLocation":"1453:4:7","nodeType":"VariableDeclaration","scope":1145,"src":"1445:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1097,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1445:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1100,"mutability":"mutable","name":"bytecode","nameLocation":"1472:8:7","nodeType":"VariableDeclaration","scope":1145,"src":"1459:21:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1099,"name":"bytes","nodeType":"ElementaryTypeName","src":"1459:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1428:53:7"},"returnParameters":{"id":1104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1103,"mutability":"mutable","name":"addr","nameLocation":"1508:4:7","nodeType":"VariableDeclaration","scope":1145,"src":"1500:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1102,"name":"address","nodeType":"ElementaryTypeName","src":"1500:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1499:14:7"},"scope":1180,"src":"1413:573:7","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":1164,"nodeType":"Block","src":"2282:73:7","statements":[{"expression":{"arguments":[{"id":1156,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1148,"src":"2314:4:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1157,"name":"bytecodeHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1150,"src":"2320:12:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":1160,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2342:4:7","typeDescriptions":{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Create2_$1180","typeString":"library Create2"}],"id":1159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2334:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"2334:7:7","typeDescriptions":{}}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2334:13:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1155,"name":"computeAddress","nodeType":"Identifier","overloadedDeclarations":[1165,1179],"referencedDeclaration":1179,"src":"2299:14:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,bytes32,address) pure returns (address)"}},"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2299:49:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1154,"id":1163,"nodeType":"Return","src":"2292:56:7"}]},"documentation":{"id":1146,"nodeType":"StructuredDocumentation","src":"1992:193:7","text":" @dev Returns the address where a contract will be stored if deployed via {deploy}. Any change in the\n `bytecodeHash` or `salt` will result in a new destination address."},"id":1165,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"2199:14:7","nodeType":"FunctionDefinition","parameters":{"id":1151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1148,"mutability":"mutable","name":"salt","nameLocation":"2222:4:7","nodeType":"VariableDeclaration","scope":1165,"src":"2214:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1147,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2214:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1150,"mutability":"mutable","name":"bytecodeHash","nameLocation":"2236:12:7","nodeType":"VariableDeclaration","scope":1165,"src":"2228:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2228:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2213:36:7"},"returnParameters":{"id":1154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1153,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1165,"src":"2273:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1152,"name":"address","nodeType":"ElementaryTypeName","src":"2273:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2272:9:7"},"scope":1180,"src":"2190:165:7","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":1178,"nodeType":"Block","src":"2713:1657:7","statements":[{"AST":{"nodeType":"YulBlock","src":"2775:1589:7","statements":[{"nodeType":"YulVariableDeclaration","src":"2789:22:7","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2806:4:7","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2800:5:7"},"nodeType":"YulFunctionCall","src":"2800:11:7"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"2793:3:7","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4013:3:7"},{"kind":"number","nodeType":"YulLiteral","src":"4018:4:7","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4009:3:7"},"nodeType":"YulFunctionCall","src":"4009:14:7"},{"name":"bytecodeHash","nodeType":"YulIdentifier","src":"4025:12:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4002:6:7"},"nodeType":"YulFunctionCall","src":"4002:36:7"},"nodeType":"YulExpressionStatement","src":"4002:36:7"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4062:3:7"},{"kind":"number","nodeType":"YulLiteral","src":"4067:4:7","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4058:3:7"},"nodeType":"YulFunctionCall","src":"4058:14:7"},{"name":"salt","nodeType":"YulIdentifier","src":"4074:4:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4051:6:7"},"nodeType":"YulFunctionCall","src":"4051:28:7"},"nodeType":"YulExpressionStatement","src":"4051:28:7"},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4099:3:7"},{"name":"deployer","nodeType":"YulIdentifier","src":"4104:8:7"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4092:6:7"},"nodeType":"YulFunctionCall","src":"4092:21:7"},"nodeType":"YulExpressionStatement","src":"4092:21:7"},{"nodeType":"YulVariableDeclaration","src":"4175:27:7","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"4192:3:7"},{"kind":"number","nodeType":"YulLiteral","src":"4197:4:7","type":"","value":"0x0b"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4188:3:7"},"nodeType":"YulFunctionCall","src":"4188:14:7"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"4179:5:7","type":""}]},{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"4301:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4308:4:7","type":"","value":"0xff"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"4293:7:7"},"nodeType":"YulFunctionCall","src":"4293:20:7"},"nodeType":"YulExpressionStatement","src":"4293:20:7"},{"nodeType":"YulAssignment","src":"4326:28:7","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"4344:5:7"},{"kind":"number","nodeType":"YulLiteral","src":"4351:2:7","type":"","value":"85"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"4334:9:7"},"nodeType":"YulFunctionCall","src":"4334:20:7"},"variableNames":[{"name":"addr","nodeType":"YulIdentifier","src":"4326:4:7"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1175,"isOffset":false,"isSlot":false,"src":"4326:4:7","valueSize":1},{"declaration":1170,"isOffset":false,"isSlot":false,"src":"4025:12:7","valueSize":1},{"declaration":1172,"isOffset":false,"isSlot":false,"src":"4104:8:7","valueSize":1},{"declaration":1168,"isOffset":false,"isSlot":false,"src":"4074:4:7","valueSize":1}],"id":1177,"nodeType":"InlineAssembly","src":"2766:1598:7"}]},"documentation":{"id":1166,"nodeType":"StructuredDocumentation","src":"2361:232:7","text":" @dev Returns the address where a contract will be stored if deployed via {deploy} from a contract located at\n `deployer`. If `deployer` is this contract's address, returns the same value as {computeAddress}."},"id":1179,"implemented":true,"kind":"function","modifiers":[],"name":"computeAddress","nameLocation":"2607:14:7","nodeType":"FunctionDefinition","parameters":{"id":1173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1168,"mutability":"mutable","name":"salt","nameLocation":"2630:4:7","nodeType":"VariableDeclaration","scope":1179,"src":"2622:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2622:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1170,"mutability":"mutable","name":"bytecodeHash","nameLocation":"2644:12:7","nodeType":"VariableDeclaration","scope":1179,"src":"2636:20:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1169,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2636:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1172,"mutability":"mutable","name":"deployer","nameLocation":"2666:8:7","nodeType":"VariableDeclaration","scope":1179,"src":"2658:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1171,"name":"address","nodeType":"ElementaryTypeName","src":"2658:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2621:54:7"},"returnParameters":{"id":1176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1175,"mutability":"mutable","name":"addr","nameLocation":"2707:4:7","nodeType":"VariableDeclaration","scope":1179,"src":"2699:12:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1174,"name":"address","nodeType":"ElementaryTypeName","src":"2699:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2698:14:7"},"scope":1180,"src":"2598:1772:7","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1181,"src":"495:3877:7","usedErrors":[1087,1090,1093],"usedEvents":[]}],"src":"101:4272:7"},"id":7},"@openzeppelin/contracts/utils/Strings.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","exportedSymbols":{"Math":[2911],"SignedMath":[3016],"Strings":[1435]},"id":1436,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1182,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"101:24:8"},{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","file":"./math/Math.sol","id":1184,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1436,"sourceUnit":2912,"src":"127:37:8","symbolAliases":[{"foreign":{"id":1183,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"135:4:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","file":"./math/SignedMath.sol","id":1186,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1436,"sourceUnit":3017,"src":"165:49:8","symbolAliases":[{"foreign":{"id":1185,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"173:10:8","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Strings","contractDependencies":[],"contractKind":"library","documentation":{"id":1187,"nodeType":"StructuredDocumentation","src":"216:34:8","text":" @dev String operations."},"fullyImplemented":true,"id":1435,"linearizedBaseContracts":[1435],"name":"Strings","nameLocation":"259:7:8","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":1190,"mutability":"constant","name":"HEX_DIGITS","nameLocation":"298:10:8","nodeType":"VariableDeclaration","scope":1435,"src":"273:56:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":1188,"name":"bytes16","nodeType":"ElementaryTypeName","src":"273:7:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"value":{"hexValue":"30313233343536373839616263646566","id":1189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"311:18:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_cb29997ed99ead0db59ce4d12b7d3723198c827273e5796737c926d78019c39f","typeString":"literal_string \"0123456789abcdef\""},"value":"0123456789abcdef"},"visibility":"private"},{"constant":true,"id":1193,"mutability":"constant","name":"ADDRESS_LENGTH","nameLocation":"358:14:8","nodeType":"VariableDeclaration","scope":1435,"src":"335:42:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1191,"name":"uint8","nodeType":"ElementaryTypeName","src":"335:5:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"hexValue":"3230","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"375:2:8","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"},"visibility":"private"},{"documentation":{"id":1194,"nodeType":"StructuredDocumentation","src":"384:81:8","text":" @dev The `value` string doesn't fit in the specified `length`."},"errorSelector":"e22e27eb","id":1200,"name":"StringsInsufficientHexLength","nameLocation":"476:28:8","nodeType":"ErrorDefinition","parameters":{"id":1199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1196,"mutability":"mutable","name":"value","nameLocation":"513:5:8","nodeType":"VariableDeclaration","scope":1200,"src":"505:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1195,"name":"uint256","nodeType":"ElementaryTypeName","src":"505:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1198,"mutability":"mutable","name":"length","nameLocation":"528:6:8","nodeType":"VariableDeclaration","scope":1200,"src":"520:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1197,"name":"uint256","nodeType":"ElementaryTypeName","src":"520:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"504:31:8"},"src":"470:66:8"},{"body":{"id":1247,"nodeType":"Block","src":"708:627:8","statements":[{"id":1246,"nodeType":"UncheckedBlock","src":"718:611:8","statements":[{"assignments":[1209],"declarations":[{"constant":false,"id":1209,"mutability":"mutable","name":"length","nameLocation":"750:6:8","nodeType":"VariableDeclaration","scope":1246,"src":"742:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1208,"name":"uint256","nodeType":"ElementaryTypeName","src":"742:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1216,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1212,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"770:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1210,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"759:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2911_$","typeString":"type(library Math)"}},"id":1211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"764:5:8","memberName":"log10","nodeType":"MemberAccess","referencedDeclaration":2731,"src":"759:10:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"759:17:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"779:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"759:21:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"742:38:8"},{"assignments":[1218],"declarations":[{"constant":false,"id":1218,"mutability":"mutable","name":"buffer","nameLocation":"808:6:8","nodeType":"VariableDeclaration","scope":1246,"src":"794:20:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1217,"name":"string","nodeType":"ElementaryTypeName","src":"794:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"id":1223,"initialValue":{"arguments":[{"id":1221,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"828:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"817:10:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"},"typeName":{"id":1219,"name":"string","nodeType":"ElementaryTypeName","src":"821:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}}},"id":1222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"817:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"nodeType":"VariableDeclarationStatement","src":"794:41:8"},{"assignments":[1225],"declarations":[{"constant":false,"id":1225,"mutability":"mutable","name":"ptr","nameLocation":"857:3:8","nodeType":"VariableDeclaration","scope":1246,"src":"849:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"849:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1226,"nodeType":"VariableDeclarationStatement","src":"849:11:8"},{"AST":{"nodeType":"YulBlock","src":"930:67:8","statements":[{"nodeType":"YulAssignment","src":"948:35:8","value":{"arguments":[{"name":"buffer","nodeType":"YulIdentifier","src":"959:6:8"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"971:2:8","type":"","value":"32"},{"name":"length","nodeType":"YulIdentifier","src":"975:6:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"967:3:8"},"nodeType":"YulFunctionCall","src":"967:15:8"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"955:3:8"},"nodeType":"YulFunctionCall","src":"955:28:8"},"variableNames":[{"name":"ptr","nodeType":"YulIdentifier","src":"948:3:8"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1218,"isOffset":false,"isSlot":false,"src":"959:6:8","valueSize":1},{"declaration":1209,"isOffset":false,"isSlot":false,"src":"975:6:8","valueSize":1},{"declaration":1225,"isOffset":false,"isSlot":false,"src":"948:3:8","valueSize":1}],"id":1227,"nodeType":"InlineAssembly","src":"921:76:8"},{"body":{"id":1242,"nodeType":"Block","src":"1023:269:8","statements":[{"expression":{"id":1230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"1041:5:8","subExpression":{"id":1229,"name":"ptr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1225,"src":"1041:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1231,"nodeType":"ExpressionStatement","src":"1041:5:8"},{"AST":{"nodeType":"YulBlock","src":"1124:86:8","statements":[{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"1154:3:8"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1168:5:8"},{"kind":"number","nodeType":"YulLiteral","src":"1175:2:8","type":"","value":"10"}],"functionName":{"name":"mod","nodeType":"YulIdentifier","src":"1164:3:8"},"nodeType":"YulFunctionCall","src":"1164:14:8"},{"name":"HEX_DIGITS","nodeType":"YulIdentifier","src":"1180:10:8"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"1159:4:8"},"nodeType":"YulFunctionCall","src":"1159:32:8"}],"functionName":{"name":"mstore8","nodeType":"YulIdentifier","src":"1146:7:8"},"nodeType":"YulFunctionCall","src":"1146:46:8"},"nodeType":"YulExpressionStatement","src":"1146:46:8"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1190,"isOffset":false,"isSlot":false,"src":"1180:10:8","valueSize":1},{"declaration":1225,"isOffset":false,"isSlot":false,"src":"1154:3:8","valueSize":1},{"declaration":1203,"isOffset":false,"isSlot":false,"src":"1168:5:8","valueSize":1}],"id":1232,"nodeType":"InlineAssembly","src":"1115:95:8"},{"expression":{"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"1227:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"hexValue":"3130","id":1234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1236:2:8","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"1227:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1236,"nodeType":"ExpressionStatement","src":"1227:11:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1237,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1203,"src":"1260:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1269:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1260:10:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1241,"nodeType":"IfStatement","src":"1256:21:8","trueBody":{"id":1240,"nodeType":"Break","src":"1272:5:8"}}]},"condition":{"hexValue":"74727565","id":1228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1017:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":1243,"nodeType":"WhileStatement","src":"1010:282:8"},{"expression":{"id":1244,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1218,"src":"1312:6:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1207,"id":1245,"nodeType":"Return","src":"1305:13:8"}]}]},"documentation":{"id":1201,"nodeType":"StructuredDocumentation","src":"542:90:8","text":" @dev Converts a `uint256` to its ASCII `string` decimal representation."},"id":1248,"implemented":true,"kind":"function","modifiers":[],"name":"toString","nameLocation":"646:8:8","nodeType":"FunctionDefinition","parameters":{"id":1204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1203,"mutability":"mutable","name":"value","nameLocation":"663:5:8","nodeType":"VariableDeclaration","scope":1248,"src":"655:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1202,"name":"uint256","nodeType":"ElementaryTypeName","src":"655:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"654:15:8"},"returnParameters":{"id":1207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1206,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1248,"src":"693:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1205,"name":"string","nodeType":"ElementaryTypeName","src":"693:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"692:15:8"},"scope":1435,"src":"637:698:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1273,"nodeType":"Block","src":"1511:92:8","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1259,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"1542:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":1260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1550:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1542:9:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"","id":1263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1560:2:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1542:20:8","trueExpression":{"hexValue":"2d","id":1262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1554:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_d3b8281179950f98149eefdb158d0e1acb56f56e8e343aa9fefafa7e36959561","typeString":"literal_string \"-\""},"value":"-"},"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"arguments":[{"arguments":[{"id":1268,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1251,"src":"1588:5:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":1266,"name":"SignedMath","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3016,"src":"1573:10:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_SignedMath_$3016_$","typeString":"type(library SignedMath)"}},"id":1267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1584:3:8","memberName":"abs","nodeType":"MemberAccess","referencedDeclaration":3015,"src":"1573:14:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$returns$_t_uint256_$","typeString":"function (int256) pure returns (uint256)"}},"id":1269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1573:21:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1265,"name":"toString","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1248,"src":"1564:8:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1564:31:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":1257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1528:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1256,"name":"string","nodeType":"ElementaryTypeName","src":"1528:6:8","typeDescriptions":{}}},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1535:6:8","memberName":"concat","nodeType":"MemberAccess","src":"1528:13:8","typeDescriptions":{"typeIdentifier":"t_function_stringconcat_pure$__$returns$_t_string_memory_ptr_$","typeString":"function () pure returns (string memory)"}},"id":1271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1528:68:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1255,"id":1272,"nodeType":"Return","src":"1521:75:8"}]},"documentation":{"id":1249,"nodeType":"StructuredDocumentation","src":"1341:89:8","text":" @dev Converts a `int256` to its ASCII `string` decimal representation."},"id":1274,"implemented":true,"kind":"function","modifiers":[],"name":"toStringSigned","nameLocation":"1444:14:8","nodeType":"FunctionDefinition","parameters":{"id":1252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1251,"mutability":"mutable","name":"value","nameLocation":"1466:5:8","nodeType":"VariableDeclaration","scope":1274,"src":"1459:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":1250,"name":"int256","nodeType":"ElementaryTypeName","src":"1459:6:8","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1458:14:8"},"returnParameters":{"id":1255,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1254,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1274,"src":"1496:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1253,"name":"string","nodeType":"ElementaryTypeName","src":"1496:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1495:15:8"},"scope":1435,"src":"1435:168:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1293,"nodeType":"Block","src":"1782:100:8","statements":[{"id":1292,"nodeType":"UncheckedBlock","src":"1792:84:8","statements":[{"expression":{"arguments":[{"id":1283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"1835:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1286,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1277,"src":"1854:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1284,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2911,"src":"1842:4:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$2911_$","typeString":"type(library Math)"}},"id":1285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1847:6:8","memberName":"log256","nodeType":"MemberAccess","referencedDeclaration":2853,"src":"1842:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1842:18:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1863:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1842:22:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1282,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1294,1377,1397],"referencedDeclaration":1377,"src":"1823:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1823:42:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1281,"id":1291,"nodeType":"Return","src":"1816:49:8"}]}]},"documentation":{"id":1275,"nodeType":"StructuredDocumentation","src":"1609:94:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation."},"id":1294,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"1717:11:8","nodeType":"FunctionDefinition","parameters":{"id":1278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1277,"mutability":"mutable","name":"value","nameLocation":"1737:5:8","nodeType":"VariableDeclaration","scope":1294,"src":"1729:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1276,"name":"uint256","nodeType":"ElementaryTypeName","src":"1729:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1728:15:8"},"returnParameters":{"id":1281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1294,"src":"1767:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1279,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1766:15:8"},"scope":1435,"src":"1708:174:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1376,"nodeType":"Block","src":"2095:435:8","statements":[{"assignments":[1305],"declarations":[{"constant":false,"id":1305,"mutability":"mutable","name":"localValue","nameLocation":"2113:10:8","nodeType":"VariableDeclaration","scope":1376,"src":"2105:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1304,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1307,"initialValue":{"id":1306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2126:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2105:26:8"},{"assignments":[1309],"declarations":[{"constant":false,"id":1309,"mutability":"mutable","name":"buffer","nameLocation":"2154:6:8","nodeType":"VariableDeclaration","scope":1376,"src":"2141:19:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1308,"name":"bytes","nodeType":"ElementaryTypeName","src":"2141:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":1318,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2173:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1313,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2177:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2173:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":1315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2186:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2173:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1311,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"2163:9:8","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$","typeString":"function (uint256) pure returns (bytes memory)"},"typeName":{"id":1310,"name":"bytes","nodeType":"ElementaryTypeName","src":"2167:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},"id":1317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2163:25:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2141:47:8"},{"expression":{"id":1323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1319,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2198:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1321,"indexExpression":{"hexValue":"30","id":1320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2205:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2198:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":1322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2210:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d","typeString":"literal_string \"0\""},"value":"0"},"src":"2198:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1324,"nodeType":"ExpressionStatement","src":"2198:15:8"},{"expression":{"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1325,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2223:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1327,"indexExpression":{"hexValue":"31","id":1326,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2230:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2223:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"78","id":1328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2235:3:8","typeDescriptions":{"typeIdentifier":"t_stringliteral_7521d1cadbcfa91eec65aa16715b94ffc1c9654ba57ea2ef1a2127bca1127a83","typeString":"literal_string \"x\""},"value":"x"},"src":"2223:15:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1330,"nodeType":"ExpressionStatement","src":"2223:15:8"},{"body":{"id":1359,"nodeType":"Block","src":"2293:95:8","statements":[{"expression":{"id":1353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1345,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2307:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1347,"indexExpression":{"id":1346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2314:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2307:9:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":1348,"name":"HEX_DIGITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"2319:10:8","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"id":1352,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1349,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"2330:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"307866","id":1350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2343:3:8","typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"0xf"},"src":"2330:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2319:28:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"src":"2307:40:8","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"id":1354,"nodeType":"ExpressionStatement","src":"2307:40:8"},{"expression":{"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1355,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"2361:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":1356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2376:1:8","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"2361:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1358,"nodeType":"ExpressionStatement","src":"2361:16:8"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1339,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2281:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31","id":1340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2281:5:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1360,"initializationExpression":{"assignments":[1332],"declarations":[{"constant":false,"id":1332,"mutability":"mutable","name":"i","nameLocation":"2261:1:8","nodeType":"VariableDeclaration","scope":1360,"src":"2253:9:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1331,"name":"uint256","nodeType":"ElementaryTypeName","src":"2253:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1338,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":1333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2265:1:8","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1334,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2269:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2265:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":1336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2278:1:8","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2265:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2253:26:8"},"loopExpression":{"expression":{"id":1343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":true,"src":"2288:3:8","subExpression":{"id":1342,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1332,"src":"2290:1:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1344,"nodeType":"ExpressionStatement","src":"2288:3:8"},"nodeType":"ForStatement","src":"2248:140:8"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1361,"name":"localValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1305,"src":"2401:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":1362,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2415:1:8","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2401:15:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1370,"nodeType":"IfStatement","src":"2397:96:8","trueBody":{"id":1369,"nodeType":"Block","src":"2418:75:8","statements":[{"errorCall":{"arguments":[{"id":1365,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"2468:5:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1366,"name":"length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1299,"src":"2475:6:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1364,"name":"StringsInsufficientHexLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1200,"src":"2439:28:8","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":1367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2439:43:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1368,"nodeType":"RevertStatement","src":"2432:50:8"}]}},{"expression":{"arguments":[{"id":1373,"name":"buffer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1309,"src":"2516:6:8","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2509:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":1371,"name":"string","nodeType":"ElementaryTypeName","src":"2509:6:8","typeDescriptions":{}}},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2509:14:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1303,"id":1375,"nodeType":"Return","src":"2502:21:8"}]},"documentation":{"id":1295,"nodeType":"StructuredDocumentation","src":"1888:112:8","text":" @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length."},"id":1377,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2014:11:8","nodeType":"FunctionDefinition","parameters":{"id":1300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1297,"mutability":"mutable","name":"value","nameLocation":"2034:5:8","nodeType":"VariableDeclaration","scope":1377,"src":"2026:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1296,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1299,"mutability":"mutable","name":"length","nameLocation":"2049:6:8","nodeType":"VariableDeclaration","scope":1377,"src":"2041:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1298,"name":"uint256","nodeType":"ElementaryTypeName","src":"2041:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2025:31:8"},"returnParameters":{"id":1303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1302,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1377,"src":"2080:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1301,"name":"string","nodeType":"ElementaryTypeName","src":"2080:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2079:15:8"},"scope":1435,"src":"2005:525:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1396,"nodeType":"Block","src":"2762:75:8","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"id":1390,"name":"addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1380,"src":"2807:4:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2799:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":1388,"name":"uint160","nodeType":"ElementaryTypeName","src":"2799:7:8","typeDescriptions":{}}},"id":1391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:13:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":1387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2791:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1386,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:8","typeDescriptions":{}}},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2791:22:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1393,"name":"ADDRESS_LENGTH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1193,"src":"2815:14:8","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":1385,"name":"toHexString","nodeType":"Identifier","overloadedDeclarations":[1294,1377,1397],"referencedDeclaration":1377,"src":"2779:11:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":1394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:51:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":1384,"id":1395,"nodeType":"Return","src":"2772:58:8"}]},"documentation":{"id":1378,"nodeType":"StructuredDocumentation","src":"2536:148:8","text":" @dev Converts an `address` with fixed length of 20 bytes to its not checksummed ASCII `string` hexadecimal\n representation."},"id":1397,"implemented":true,"kind":"function","modifiers":[],"name":"toHexString","nameLocation":"2698:11:8","nodeType":"FunctionDefinition","parameters":{"id":1381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1380,"mutability":"mutable","name":"addr","nameLocation":"2718:4:8","nodeType":"VariableDeclaration","scope":1397,"src":"2710:12:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1379,"name":"address","nodeType":"ElementaryTypeName","src":"2710:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2709:14:8"},"returnParameters":{"id":1384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1383,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1397,"src":"2747:13:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1382,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2746:15:8"},"scope":1435,"src":"2689:148:8","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1433,"nodeType":"Block","src":"2992:104:8","statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"arguments":[{"id":1409,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"3015:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3009:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1407,"name":"bytes","nodeType":"ElementaryTypeName","src":"3009:5:8","typeDescriptions":{}}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3018:6:8","memberName":"length","nodeType":"MemberAccess","src":"3009:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":1414,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"3034:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3028:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1412,"name":"bytes","nodeType":"ElementaryTypeName","src":"3028:5:8","typeDescriptions":{}}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3028:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3037:6:8","memberName":"length","nodeType":"MemberAccess","src":"3028:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3009:34:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":1421,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1400,"src":"3063:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1420,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3057:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1419,"name":"bytes","nodeType":"ElementaryTypeName","src":"3057:5:8","typeDescriptions":{}}},"id":1422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3057:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1418,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3047:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3047:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"arguments":[{"id":1427,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1402,"src":"3086:1:8","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3080:5:8","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1425,"name":"bytes","nodeType":"ElementaryTypeName","src":"3080:5:8","typeDescriptions":{}}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3080:8:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1424,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"3070:9:8","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3070:19:8","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3047:42:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3009:80:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1406,"id":1432,"nodeType":"Return","src":"3002:87:8"}]},"documentation":{"id":1398,"nodeType":"StructuredDocumentation","src":"2843:66:8","text":" @dev Returns true if the two strings are equal."},"id":1434,"implemented":true,"kind":"function","modifiers":[],"name":"equal","nameLocation":"2923:5:8","nodeType":"FunctionDefinition","parameters":{"id":1403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1400,"mutability":"mutable","name":"a","nameLocation":"2943:1:8","nodeType":"VariableDeclaration","scope":1434,"src":"2929:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1399,"name":"string","nodeType":"ElementaryTypeName","src":"2929:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1402,"mutability":"mutable","name":"b","nameLocation":"2960:1:8","nodeType":"VariableDeclaration","scope":1434,"src":"2946:15:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1401,"name":"string","nodeType":"ElementaryTypeName","src":"2946:6:8","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2928:34:8"},"returnParameters":{"id":1406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1434,"src":"2986:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1404,"name":"bool","nodeType":"ElementaryTypeName","src":"2986:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2985:6:8"},"scope":1435,"src":"2914:182:8","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1436,"src":"251:2847:8","usedErrors":[1200],"usedEvents":[]}],"src":"101:2998:8"},"id":8},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[1783]},"id":1784,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1437,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"112:24:9"},{"abstract":false,"baseContracts":[],"canonicalName":"ECDSA","contractDependencies":[],"contractKind":"library","documentation":{"id":1438,"nodeType":"StructuredDocumentation","src":"138:205:9","text":" @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n These functions can be used to verify that a message was signed by the holder\n of the private keys of a given address."},"fullyImplemented":true,"id":1783,"linearizedBaseContracts":[1783],"name":"ECDSA","nameLocation":"352:5:9","nodeType":"ContractDefinition","nodes":[{"canonicalName":"ECDSA.RecoverError","id":1443,"members":[{"id":1439,"name":"NoError","nameLocation":"392:7:9","nodeType":"EnumValue","src":"392:7:9"},{"id":1440,"name":"InvalidSignature","nameLocation":"409:16:9","nodeType":"EnumValue","src":"409:16:9"},{"id":1441,"name":"InvalidSignatureLength","nameLocation":"435:22:9","nodeType":"EnumValue","src":"435:22:9"},{"id":1442,"name":"InvalidSignatureS","nameLocation":"467:17:9","nodeType":"EnumValue","src":"467:17:9"}],"name":"RecoverError","nameLocation":"369:12:9","nodeType":"EnumDefinition","src":"364:126:9"},{"documentation":{"id":1444,"nodeType":"StructuredDocumentation","src":"496:63:9","text":" @dev The signature derives the `address(0)`."},"errorSelector":"f645eedf","id":1446,"name":"ECDSAInvalidSignature","nameLocation":"570:21:9","nodeType":"ErrorDefinition","parameters":{"id":1445,"nodeType":"ParameterList","parameters":[],"src":"591:2:9"},"src":"564:30:9"},{"documentation":{"id":1447,"nodeType":"StructuredDocumentation","src":"600:60:9","text":" @dev The signature has an invalid length."},"errorSelector":"fce698f7","id":1451,"name":"ECDSAInvalidSignatureLength","nameLocation":"671:27:9","nodeType":"ErrorDefinition","parameters":{"id":1450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1449,"mutability":"mutable","name":"length","nameLocation":"707:6:9","nodeType":"VariableDeclaration","scope":1451,"src":"699:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1448,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"698:16:9"},"src":"665:50:9"},{"documentation":{"id":1452,"nodeType":"StructuredDocumentation","src":"721:85:9","text":" @dev The signature has an S value that is in the upper half order."},"errorSelector":"d78bce0c","id":1456,"name":"ECDSAInvalidSignatureS","nameLocation":"817:22:9","nodeType":"ErrorDefinition","parameters":{"id":1455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1454,"mutability":"mutable","name":"s","nameLocation":"848:1:9","nodeType":"VariableDeclaration","scope":1456,"src":"840:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1453,"name":"bytes32","nodeType":"ElementaryTypeName","src":"840:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"839:11:9"},"src":"811:40:9"},{"body":{"id":1508,"nodeType":"Block","src":"2242:653:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1471,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"2256:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2266:6:9","memberName":"length","nodeType":"MemberAccess","src":"2256:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"3635","id":1473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2276:2:9","typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"2256:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1506,"nodeType":"Block","src":"2781:108:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2811:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2803:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1493,"name":"address","nodeType":"ElementaryTypeName","src":"2803:7:9","typeDescriptions":{}}},"id":1496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2803:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1497,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"2815:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2828:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":1441,"src":"2815:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"expression":{"id":1501,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1461,"src":"2860:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2870:6:9","memberName":"length","nodeType":"MemberAccess","src":"2860:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1500,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2852:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2852:7:9","typeDescriptions":{}}},"id":1503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2852:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1504,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2802:76:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1470,"id":1505,"nodeType":"Return","src":"2795:83:9"}]},"id":1507,"nodeType":"IfStatement","src":"2252:637:9","trueBody":{"id":1492,"nodeType":"Block","src":"2280:495:9","statements":[{"assignments":[1476],"declarations":[{"constant":false,"id":1476,"mutability":"mutable","name":"r","nameLocation":"2302:1:9","nodeType":"VariableDeclaration","scope":1492,"src":"2294:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2294:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1477,"nodeType":"VariableDeclarationStatement","src":"2294:9:9"},{"assignments":[1479],"declarations":[{"constant":false,"id":1479,"mutability":"mutable","name":"s","nameLocation":"2325:1:9","nodeType":"VariableDeclaration","scope":1492,"src":"2317:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1478,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2317:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1480,"nodeType":"VariableDeclarationStatement","src":"2317:9:9"},{"assignments":[1482],"declarations":[{"constant":false,"id":1482,"mutability":"mutable","name":"v","nameLocation":"2346:1:9","nodeType":"VariableDeclaration","scope":1492,"src":"2340:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1481,"name":"uint8","nodeType":"ElementaryTypeName","src":"2340:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1483,"nodeType":"VariableDeclarationStatement","src":"2340:7:9"},{"AST":{"nodeType":"YulBlock","src":"2548:171:9","statements":[{"nodeType":"YulAssignment","src":"2566:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2581:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2592:4:9","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2577:3:9"},"nodeType":"YulFunctionCall","src":"2577:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2571:5:9"},"nodeType":"YulFunctionCall","src":"2571:27:9"},"variableNames":[{"name":"r","nodeType":"YulIdentifier","src":"2566:1:9"}]},{"nodeType":"YulAssignment","src":"2615:32:9","value":{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2630:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2641:4:9","type":"","value":"0x40"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2626:3:9"},"nodeType":"YulFunctionCall","src":"2626:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2620:5:9"},"nodeType":"YulFunctionCall","src":"2620:27:9"},"variableNames":[{"name":"s","nodeType":"YulIdentifier","src":"2615:1:9"}]},{"nodeType":"YulAssignment","src":"2664:41:9","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2674:1:9","type":"","value":"0"},{"arguments":[{"arguments":[{"name":"signature","nodeType":"YulIdentifier","src":"2687:9:9"},{"kind":"number","nodeType":"YulLiteral","src":"2698:4:9","type":"","value":"0x60"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2683:3:9"},"nodeType":"YulFunctionCall","src":"2683:20:9"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2677:5:9"},"nodeType":"YulFunctionCall","src":"2677:27:9"}],"functionName":{"name":"byte","nodeType":"YulIdentifier","src":"2669:4:9"},"nodeType":"YulFunctionCall","src":"2669:36:9"},"variableNames":[{"name":"v","nodeType":"YulIdentifier","src":"2664:1:9"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1476,"isOffset":false,"isSlot":false,"src":"2566:1:9","valueSize":1},{"declaration":1479,"isOffset":false,"isSlot":false,"src":"2615:1:9","valueSize":1},{"declaration":1461,"isOffset":false,"isSlot":false,"src":"2581:9:9","valueSize":1},{"declaration":1461,"isOffset":false,"isSlot":false,"src":"2630:9:9","valueSize":1},{"declaration":1461,"isOffset":false,"isSlot":false,"src":"2687:9:9","valueSize":1},{"declaration":1482,"isOffset":false,"isSlot":false,"src":"2664:1:9","valueSize":1}],"id":1484,"nodeType":"InlineAssembly","src":"2539:180:9"},{"expression":{"arguments":[{"id":1486,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1459,"src":"2750:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1487,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"2756:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1488,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1476,"src":"2759:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1489,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"2762:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1485,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1697,"src":"2739:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2739:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1470,"id":1491,"nodeType":"Return","src":"2732:32:9"}]}}]},"documentation":{"id":1457,"nodeType":"StructuredDocumentation","src":"857:1267:9","text":" @dev Returns the address that signed a hashed message (`hash`) with `signature` or an error. This will not\n return address(0) without also returning an error description. Errors are documented using an enum (error type)\n and a bytes32 providing additional information about the error.\n If no error is returned, then the address can be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it.\n Documentation for signature generation:\n - with https://web3js.readthedocs.io/en/v1.3.4/web3-eth-accounts.html#sign[Web3.js]\n - with https://docs.ethers.io/v5/api/signer/#Signer-signMessage[ethers]"},"id":1509,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"2138:10:9","nodeType":"FunctionDefinition","parameters":{"id":1462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1459,"mutability":"mutable","name":"hash","nameLocation":"2157:4:9","nodeType":"VariableDeclaration","scope":1509,"src":"2149:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1458,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2149:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1461,"mutability":"mutable","name":"signature","nameLocation":"2176:9:9","nodeType":"VariableDeclaration","scope":1509,"src":"2163:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1460,"name":"bytes","nodeType":"ElementaryTypeName","src":"2163:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2148:38:9"},"returnParameters":{"id":1470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1464,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"2210:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1463,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"2219:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1466,"nodeType":"UserDefinedTypeName","pathNode":{"id":1465,"name":"RecoverError","nameLocations":["2219:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"2219:12:9"},"referencedDeclaration":1443,"src":"2219:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1469,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1509,"src":"2233:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1468,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2233:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2209:32:9"},"scope":1783,"src":"2129:766:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1538,"nodeType":"Block","src":"3789:168:9","statements":[{"assignments":[1520,1523,1525],"declarations":[{"constant":false,"id":1520,"mutability":"mutable","name":"recovered","nameLocation":"3808:9:9","nodeType":"VariableDeclaration","scope":1538,"src":"3800:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1519,"name":"address","nodeType":"ElementaryTypeName","src":"3800:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1523,"mutability":"mutable","name":"error","nameLocation":"3832:5:9","nodeType":"VariableDeclaration","scope":1538,"src":"3819:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1522,"nodeType":"UserDefinedTypeName","pathNode":{"id":1521,"name":"RecoverError","nameLocations":["3819:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"3819:12:9"},"referencedDeclaration":1443,"src":"3819:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1525,"mutability":"mutable","name":"errorArg","nameLocation":"3847:8:9","nodeType":"VariableDeclaration","scope":1538,"src":"3839:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3839:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1530,"initialValue":{"arguments":[{"id":1527,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1512,"src":"3870:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1528,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1514,"src":"3876:9:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1526,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1509,"src":"3859:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3859:27:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"3799:87:9"},{"expression":{"arguments":[{"id":1532,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"3908:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1533,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"3915:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1531,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"3896:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1443_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":1534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3896:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1535,"nodeType":"ExpressionStatement","src":"3896:28:9"},{"expression":{"id":1536,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1520,"src":"3941:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1518,"id":1537,"nodeType":"Return","src":"3934:16:9"}]},"documentation":{"id":1510,"nodeType":"StructuredDocumentation","src":"2901:796:9","text":" @dev Returns the address that signed a hashed message (`hash`) with\n `signature`. This address can then be used for verification purposes.\n The `ecrecover` EVM precompile allows for malleable (non-unique) signatures:\n this function rejects them by requiring the `s` value to be in the lower\n half order, and the `v` value to be either 27 or 28.\n IMPORTANT: `hash` _must_ be the result of a hash operation for the\n verification to be secure: it is possible to craft signatures that\n recover to arbitrary addresses for non-hashed data. A safe way to ensure\n this is by receiving a hash of the original message (which may otherwise\n be too long), and then calling {MessageHashUtils-toEthSignedMessageHash} on it."},"id":1539,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"3711:7:9","nodeType":"FunctionDefinition","parameters":{"id":1515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"hash","nameLocation":"3727:4:9","nodeType":"VariableDeclaration","scope":1539,"src":"3719:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1511,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3719:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1514,"mutability":"mutable","name":"signature","nameLocation":"3746:9:9","nodeType":"VariableDeclaration","scope":1539,"src":"3733:22:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1513,"name":"bytes","nodeType":"ElementaryTypeName","src":"3733:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3718:38:9"},"returnParameters":{"id":1518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1517,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1539,"src":"3780:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1516,"name":"address","nodeType":"ElementaryTypeName","src":"3780:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3779:9:9"},"scope":1783,"src":"3702:255:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1588,"nodeType":"Block","src":"4285:342:9","statements":[{"id":1587,"nodeType":"UncheckedBlock","src":"4295:326:9","statements":[{"assignments":[1557],"declarations":[{"constant":false,"id":1557,"mutability":"mutable","name":"s","nameLocation":"4327:1:9","nodeType":"VariableDeclaration","scope":1587,"src":"4319:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1556,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4319:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1564,"initialValue":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":1563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1558,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"4331:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"arguments":[{"hexValue":"307837666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666","id":1561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4344:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"},"value":"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_57896044618658097711785492504343953926634992332820282019728792003956564819967_by_1","typeString":"int_const 5789...(69 digits omitted)...9967"}],"id":1560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1559,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4336:7:9","typeDescriptions":{}}},"id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4336:75:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4331:80:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4319:92:9"},{"assignments":[1566],"declarations":[{"constant":false,"id":1566,"mutability":"mutable","name":"v","nameLocation":"4528:1:9","nodeType":"VariableDeclaration","scope":1587,"src":"4522:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1565,"name":"uint8","nodeType":"ElementaryTypeName","src":"4522:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"id":1579,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1571,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1546,"src":"4547:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4539:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1569,"name":"uint256","nodeType":"ElementaryTypeName","src":"4539:7:9","typeDescriptions":{}}},"id":1572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4539:11:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":1573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4554:3:9","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"4539:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1575,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4538:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"3237","id":1576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4561:2:9","typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"4538:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4532:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":1567,"name":"uint8","nodeType":"ElementaryTypeName","src":"4532:5:9","typeDescriptions":{}}},"id":1578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"VariableDeclarationStatement","src":"4522:42:9"},{"expression":{"arguments":[{"id":1581,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"4596:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1582,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1566,"src":"4602:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1583,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1544,"src":"4605:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1584,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"4608:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1580,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1697,"src":"4585:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1555,"id":1586,"nodeType":"Return","src":"4578:32:9"}]}]},"documentation":{"id":1540,"nodeType":"StructuredDocumentation","src":"3963:205:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `r` and `vs` short-signature fields separately.\n See https://eips.ethereum.org/EIPS/eip-2098[EIP-2098 short signatures]"},"id":1589,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"4182:10:9","nodeType":"FunctionDefinition","parameters":{"id":1547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1542,"mutability":"mutable","name":"hash","nameLocation":"4201:4:9","nodeType":"VariableDeclaration","scope":1589,"src":"4193:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4193:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1544,"mutability":"mutable","name":"r","nameLocation":"4215:1:9","nodeType":"VariableDeclaration","scope":1589,"src":"4207:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1543,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4207:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1546,"mutability":"mutable","name":"vs","nameLocation":"4226:2:9","nodeType":"VariableDeclaration","scope":1589,"src":"4218:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1545,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4218:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4192:37:9"},"returnParameters":{"id":1555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1549,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1589,"src":"4253:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1548,"name":"address","nodeType":"ElementaryTypeName","src":"4253:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1589,"src":"4262:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1551,"nodeType":"UserDefinedTypeName","pathNode":{"id":1550,"name":"RecoverError","nameLocations":["4262:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"4262:12:9"},"referencedDeclaration":1443,"src":"4262:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1554,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1589,"src":"4276:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4276:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4252:32:9"},"scope":1783,"src":"4173:454:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1621,"nodeType":"Block","src":"4840:164:9","statements":[{"assignments":[1602,1605,1607],"declarations":[{"constant":false,"id":1602,"mutability":"mutable","name":"recovered","nameLocation":"4859:9:9","nodeType":"VariableDeclaration","scope":1621,"src":"4851:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1601,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1605,"mutability":"mutable","name":"error","nameLocation":"4883:5:9","nodeType":"VariableDeclaration","scope":1621,"src":"4870:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1604,"nodeType":"UserDefinedTypeName","pathNode":{"id":1603,"name":"RecoverError","nameLocations":["4870:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"4870:12:9"},"referencedDeclaration":1443,"src":"4870:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1607,"mutability":"mutable","name":"errorArg","nameLocation":"4898:8:9","nodeType":"VariableDeclaration","scope":1621,"src":"4890:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1606,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4890:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1613,"initialValue":{"arguments":[{"id":1609,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1592,"src":"4921:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1610,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1594,"src":"4927:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1611,"name":"vs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"4930:2:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1608,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1589,"src":"4910:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4910:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"4850:83:9"},{"expression":{"arguments":[{"id":1615,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1605,"src":"4955:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1616,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1607,"src":"4962:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1614,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"4943:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1443_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":1617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1618,"nodeType":"ExpressionStatement","src":"4943:28:9"},{"expression":{"id":1619,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"4988:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1600,"id":1620,"nodeType":"Return","src":"4981:16:9"}]},"documentation":{"id":1590,"nodeType":"StructuredDocumentation","src":"4633:116:9","text":" @dev Overload of {ECDSA-recover} that receives the `r and `vs` short-signature fields separately."},"id":1622,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"4763:7:9","nodeType":"FunctionDefinition","parameters":{"id":1597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1592,"mutability":"mutable","name":"hash","nameLocation":"4779:4:9","nodeType":"VariableDeclaration","scope":1622,"src":"4771:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1591,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4771:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1594,"mutability":"mutable","name":"r","nameLocation":"4793:1:9","nodeType":"VariableDeclaration","scope":1622,"src":"4785:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1593,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4785:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1596,"mutability":"mutable","name":"vs","nameLocation":"4804:2:9","nodeType":"VariableDeclaration","scope":1622,"src":"4796:10:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4796:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4770:37:9"},"returnParameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1622,"src":"4831:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1598,"name":"address","nodeType":"ElementaryTypeName","src":"4831:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4830:9:9"},"scope":1783,"src":"4754:250:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1696,"nodeType":"Block","src":"5298:1372:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1643,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"6194:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6186:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1641,"name":"uint256","nodeType":"ElementaryTypeName","src":"6186:7:9","typeDescriptions":{}}},"id":1644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6186:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":1645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6199:66:9","typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"6186:79:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1657,"nodeType":"IfStatement","src":"6182:164:9","trueBody":{"id":1656,"nodeType":"Block","src":"6267:79:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6297:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1648,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6289:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1647,"name":"address","nodeType":"ElementaryTypeName","src":"6289:7:9","typeDescriptions":{}}},"id":1650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6289:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1651,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"6301:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6314:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":1442,"src":"6301:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1653,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"6333:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1654,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6288:47:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1640,"id":1655,"nodeType":"Return","src":"6281:54:9"}]}},{"assignments":[1659],"declarations":[{"constant":false,"id":1659,"mutability":"mutable","name":"signer","nameLocation":"6448:6:9","nodeType":"VariableDeclaration","scope":1696,"src":"6440:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1658,"name":"address","nodeType":"ElementaryTypeName","src":"6440:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1666,"initialValue":{"arguments":[{"id":1661,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"6467:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1662,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"6473:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1663,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1629,"src":"6476:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1664,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"6479:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1660,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"6457:9:9","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":1665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6457:24:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6440:41:9"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1667,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"6495:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6513:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1669,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6505:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1668,"name":"address","nodeType":"ElementaryTypeName","src":"6505:7:9","typeDescriptions":{}}},"id":1671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6505:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6495:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1686,"nodeType":"IfStatement","src":"6491:113:9","trueBody":{"id":1685,"nodeType":"Block","src":"6517:87:9","statements":[{"expression":{"components":[{"arguments":[{"hexValue":"30","id":1675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6547:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6539:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1673,"name":"address","nodeType":"ElementaryTypeName","src":"6539:7:9","typeDescriptions":{}}},"id":1676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6539:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1677,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"6551:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6564:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"6551:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":1681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6582:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1679,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6582:7:9","typeDescriptions":{}}},"id":1682,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1683,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6538:55:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1640,"id":1684,"nodeType":"Return","src":"6531:62:9"}]}},{"expression":{"components":[{"id":1687,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1659,"src":"6622:6:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1688,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"6630:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6643:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1439,"src":"6630:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"arguments":[{"hexValue":"30","id":1692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6660:1:9","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6652:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6652:7:9","typeDescriptions":{}}},"id":1693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6652:10:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1694,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6621:42:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"functionReturnParameters":1640,"id":1695,"nodeType":"Return","src":"6614:49:9"}]},"documentation":{"id":1623,"nodeType":"StructuredDocumentation","src":"5010:125:9","text":" @dev Overload of {ECDSA-tryRecover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":1697,"implemented":true,"kind":"function","modifiers":[],"name":"tryRecover","nameLocation":"5149:10:9","nodeType":"FunctionDefinition","parameters":{"id":1632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1625,"mutability":"mutable","name":"hash","nameLocation":"5177:4:9","nodeType":"VariableDeclaration","scope":1697,"src":"5169:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1624,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5169:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1627,"mutability":"mutable","name":"v","nameLocation":"5197:1:9","nodeType":"VariableDeclaration","scope":1697,"src":"5191:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1626,"name":"uint8","nodeType":"ElementaryTypeName","src":"5191:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1629,"mutability":"mutable","name":"r","nameLocation":"5216:1:9","nodeType":"VariableDeclaration","scope":1697,"src":"5208:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5208:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1631,"mutability":"mutable","name":"s","nameLocation":"5235:1:9","nodeType":"VariableDeclaration","scope":1697,"src":"5227:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5227:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5159:83:9"},"returnParameters":{"id":1640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"5266:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1633,"name":"address","nodeType":"ElementaryTypeName","src":"5266:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1637,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"5275:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1636,"nodeType":"UserDefinedTypeName","pathNode":{"id":1635,"name":"RecoverError","nameLocations":["5275:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"5275:12:9"},"referencedDeclaration":1443,"src":"5275:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1639,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1697,"src":"5289:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1638,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5289:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5265:32:9"},"scope":1783,"src":"5140:1530:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1732,"nodeType":"Block","src":"6897:166:9","statements":[{"assignments":[1712,1715,1717],"declarations":[{"constant":false,"id":1712,"mutability":"mutable","name":"recovered","nameLocation":"6916:9:9","nodeType":"VariableDeclaration","scope":1732,"src":"6908:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1711,"name":"address","nodeType":"ElementaryTypeName","src":"6908:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1715,"mutability":"mutable","name":"error","nameLocation":"6940:5:9","nodeType":"VariableDeclaration","scope":1732,"src":"6927:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1714,"nodeType":"UserDefinedTypeName","pathNode":{"id":1713,"name":"RecoverError","nameLocations":["6927:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"6927:12:9"},"referencedDeclaration":1443,"src":"6927:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1717,"mutability":"mutable","name":"errorArg","nameLocation":"6955:8:9","nodeType":"VariableDeclaration","scope":1732,"src":"6947:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6947:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1724,"initialValue":{"arguments":[{"id":1719,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1700,"src":"6978:4:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1720,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1702,"src":"6984:1:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":1721,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1704,"src":"6987:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1722,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1706,"src":"6990:1:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1718,"name":"tryRecover","nodeType":"Identifier","overloadedDeclarations":[1509,1589,1697],"referencedDeclaration":1697,"src":"6967:10:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address,enum ECDSA.RecoverError,bytes32)"}},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6967:25:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_enum$_RecoverError_$1443_$_t_bytes32_$","typeString":"tuple(address,enum ECDSA.RecoverError,bytes32)"}},"nodeType":"VariableDeclarationStatement","src":"6907:85:9"},{"expression":{"arguments":[{"id":1726,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1715,"src":"7014:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},{"id":1727,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1717,"src":"7021:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1725,"name":"_throwError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1782,"src":"7002:11:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_RecoverError_$1443_$_t_bytes32_$returns$__$","typeString":"function (enum ECDSA.RecoverError,bytes32) pure"}},"id":1728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7002:28:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1729,"nodeType":"ExpressionStatement","src":"7002:28:9"},{"expression":{"id":1730,"name":"recovered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1712,"src":"7047:9:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1710,"id":1731,"nodeType":"Return","src":"7040:16:9"}]},"documentation":{"id":1698,"nodeType":"StructuredDocumentation","src":"6676:122:9","text":" @dev Overload of {ECDSA-recover} that receives the `v`,\n `r` and `s` signature fields separately."},"id":1733,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nameLocation":"6812:7:9","nodeType":"FunctionDefinition","parameters":{"id":1707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1700,"mutability":"mutable","name":"hash","nameLocation":"6828:4:9","nodeType":"VariableDeclaration","scope":1733,"src":"6820:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1699,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6820:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1702,"mutability":"mutable","name":"v","nameLocation":"6840:1:9","nodeType":"VariableDeclaration","scope":1733,"src":"6834:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1701,"name":"uint8","nodeType":"ElementaryTypeName","src":"6834:5:9","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":1704,"mutability":"mutable","name":"r","nameLocation":"6851:1:9","nodeType":"VariableDeclaration","scope":1733,"src":"6843:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1703,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6843:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1706,"mutability":"mutable","name":"s","nameLocation":"6862:1:9","nodeType":"VariableDeclaration","scope":1733,"src":"6854:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1705,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6854:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6819:45:9"},"returnParameters":{"id":1710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1709,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1733,"src":"6888:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1708,"name":"address","nodeType":"ElementaryTypeName","src":"6888:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6887:9:9"},"scope":1783,"src":"6803:260:9","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1781,"nodeType":"Block","src":"7268:460:9","statements":[{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1742,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7282:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1743,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7291:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7304:7:9","memberName":"NoError","nodeType":"MemberAccess","referencedDeclaration":1439,"src":"7291:20:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7282:29:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1748,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7378:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1749,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7387:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1750,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7400:16:9","memberName":"InvalidSignature","nodeType":"MemberAccess","referencedDeclaration":1440,"src":"7387:29:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7378:38:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1756,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7483:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1757,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7492:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1758,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7505:22:9","memberName":"InvalidSignatureLength","nodeType":"MemberAccess","referencedDeclaration":1441,"src":"7492:35:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7483:44:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"id":1771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1768,"name":"error","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1737,"src":"7617:5:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":1769,"name":"RecoverError","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1443,"src":"7626:12:9","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RecoverError_$1443_$","typeString":"type(enum ECDSA.RecoverError)"}},"id":1770,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7639:17:9","memberName":"InvalidSignatureS","nodeType":"MemberAccess","referencedDeclaration":1442,"src":"7626:30:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"src":"7617:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1777,"nodeType":"IfStatement","src":"7613:109:9","trueBody":{"id":1776,"nodeType":"Block","src":"7658:64:9","statements":[{"errorCall":{"arguments":[{"id":1773,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1739,"src":"7702:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1772,"name":"ECDSAInvalidSignatureS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1456,"src":"7679:22:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_bytes32_$returns$__$","typeString":"function (bytes32) pure"}},"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:32:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1775,"nodeType":"RevertStatement","src":"7672:39:9"}]}},"id":1778,"nodeType":"IfStatement","src":"7479:243:9","trueBody":{"id":1767,"nodeType":"Block","src":"7529:78:9","statements":[{"errorCall":{"arguments":[{"arguments":[{"id":1763,"name":"errorArg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1739,"src":"7586:8:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7578:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1761,"name":"uint256","nodeType":"ElementaryTypeName","src":"7578:7:9","typeDescriptions":{}}},"id":1764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7578:17:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1760,"name":"ECDSAInvalidSignatureLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1451,"src":"7550:27:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":1765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7550:46:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1766,"nodeType":"RevertStatement","src":"7543:53:9"}]}},"id":1779,"nodeType":"IfStatement","src":"7374:348:9","trueBody":{"id":1755,"nodeType":"Block","src":"7418:55:9","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1752,"name":"ECDSAInvalidSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"7439:21:9","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7439:23:9","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1754,"nodeType":"RevertStatement","src":"7432:30:9"}]}},"id":1780,"nodeType":"IfStatement","src":"7278:444:9","trueBody":{"id":1747,"nodeType":"Block","src":"7313:55:9","statements":[{"functionReturnParameters":1741,"id":1746,"nodeType":"Return","src":"7327:7:9"}]}}]},"documentation":{"id":1734,"nodeType":"StructuredDocumentation","src":"7069:122:9","text":" @dev Optionally reverts with the corresponding custom error according to the `error` argument provided."},"id":1782,"implemented":true,"kind":"function","modifiers":[],"name":"_throwError","nameLocation":"7205:11:9","nodeType":"FunctionDefinition","parameters":{"id":1740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1737,"mutability":"mutable","name":"error","nameLocation":"7230:5:9","nodeType":"VariableDeclaration","scope":1782,"src":"7217:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"},"typeName":{"id":1736,"nodeType":"UserDefinedTypeName","pathNode":{"id":1735,"name":"RecoverError","nameLocations":["7217:12:9"],"nodeType":"IdentifierPath","referencedDeclaration":1443,"src":"7217:12:9"},"referencedDeclaration":1443,"src":"7217:12:9","typeDescriptions":{"typeIdentifier":"t_enum$_RecoverError_$1443","typeString":"enum ECDSA.RecoverError"}},"visibility":"internal"},{"constant":false,"id":1739,"mutability":"mutable","name":"errorArg","nameLocation":"7245:8:9","nodeType":"VariableDeclaration","scope":1782,"src":"7237:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1738,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7237:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7216:38:9"},"returnParameters":{"id":1741,"nodeType":"ParameterList","parameters":[],"src":"7268:0:9"},"scope":1783,"src":"7196:532:9","stateMutability":"pure","virtual":false,"visibility":"private"}],"scope":1784,"src":"344:7386:9","usedErrors":[1446,1451,1456],"usedEvents":[]}],"src":"112:7619:9"},"id":9},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","exportedSymbols":{"MessageHashUtils":[1857],"Strings":[1435]},"id":1858,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1785,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"123:24:10"},{"absolutePath":"@openzeppelin/contracts/utils/Strings.sol","file":"../Strings.sol","id":1787,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":1858,"sourceUnit":1436,"src":"149:39:10","symbolAliases":[{"foreign":{"id":1786,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"157:7:10","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"MessageHashUtils","contractDependencies":[],"contractKind":"library","documentation":{"id":1788,"nodeType":"StructuredDocumentation","src":"190:330:10","text":" @dev Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing.\n The library provides methods for generating a hash of a message that conforms to the\n https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712]\n specifications."},"fullyImplemented":true,"id":1857,"linearizedBaseContracts":[1857],"name":"MessageHashUtils","nameLocation":"529:16:10","nodeType":"ContractDefinition","nodes":[{"body":{"id":1797,"nodeType":"Block","src":"1314:368:10","statements":[{"AST":{"nodeType":"YulBlock","src":"1376:300:10","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1397:4:10","type":"","value":"0x00"},{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","kind":"string","nodeType":"YulLiteral","src":"1403:34:10","type":"","value":"\u0019Ethereum Signed Message:\n32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1390:6:10"},"nodeType":"YulFunctionCall","src":"1390:48:10"},"nodeType":"YulExpressionStatement","src":"1390:48:10"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1499:4:10","type":"","value":"0x1c"},{"name":"messageHash","nodeType":"YulIdentifier","src":"1505:11:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1492:6:10"},"nodeType":"YulFunctionCall","src":"1492:25:10"},"nodeType":"YulExpressionStatement","src":"1492:25:10"},{"nodeType":"YulAssignment","src":"1571:31:10","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1591:4:10","type":"","value":"0x00"},{"kind":"number","nodeType":"YulLiteral","src":"1597:4:10","type":"","value":"0x3c"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1581:9:10"},"nodeType":"YulFunctionCall","src":"1581:21:10"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"1571:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1794,"isOffset":false,"isSlot":false,"src":"1571:6:10","valueSize":1},{"declaration":1791,"isOffset":false,"isSlot":false,"src":"1505:11:10","valueSize":1}],"id":1796,"nodeType":"InlineAssembly","src":"1367:309:10"}]},"documentation":{"id":1789,"nodeType":"StructuredDocumentation","src":"552:665:10","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing a bytes32 `messageHash` with\n `\"\\x19Ethereum Signed Message:\\n32\"` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n NOTE: The `messageHash` parameter is intended to be the result of hashing a raw message with\n keccak256, although any bytes32 value can be safely used because the final digest will\n be re-hashed.\n See {ECDSA-recover}."},"id":1798,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"1231:22:10","nodeType":"FunctionDefinition","parameters":{"id":1792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1791,"mutability":"mutable","name":"messageHash","nameLocation":"1262:11:10","nodeType":"VariableDeclaration","scope":1798,"src":"1254:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1790,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1254:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1253:21:10"},"returnParameters":{"id":1795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1794,"mutability":"mutable","name":"digest","nameLocation":"1306:6:10","nodeType":"VariableDeclaration","scope":1798,"src":"1298:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1298:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1297:16:10"},"scope":1857,"src":"1222:460:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1823,"nodeType":"Block","src":"2234:143:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a","id":1810,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2286:32:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},"value":"\u0019Ethereum Signed Message:\n"},{"arguments":[{"arguments":[{"expression":{"id":1815,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"2343:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":1816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2351:6:10","memberName":"length","nodeType":"MemberAccess","src":"2343:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1813,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1435,"src":"2326:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$1435_$","typeString":"type(library Strings)"}},"id":1814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2334:8:10","memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":1248,"src":"2326:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":1817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2326:32:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2320:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1811,"name":"bytes","nodeType":"ElementaryTypeName","src":"2320:5:10","typeDescriptions":{}}},"id":1818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2320:39:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":1819,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1801,"src":"2361:7:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4","typeString":"literal_string hex\"19457468657265756d205369676e6564204d6573736167653a0a\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2273:5:10","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":1807,"name":"bytes","nodeType":"ElementaryTypeName","src":"2273:5:10","typeDescriptions":{}}},"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2279:6:10","memberName":"concat","nodeType":"MemberAccess","src":"2273:12:10","typeDescriptions":{"typeIdentifier":"t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2273:96:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1806,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2263:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:107:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1805,"id":1822,"nodeType":"Return","src":"2244:126:10"}]},"documentation":{"id":1799,"nodeType":"StructuredDocumentation","src":"1688:455:10","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x45` (`personal_sign` messages).\n The digest is calculated by prefixing an arbitrary `message` with\n `\"\\x19Ethereum Signed Message:\\n\" + len(message)` and hashing the result. It corresponds with the\n hash signed when using the https://eth.wiki/json-rpc/API#eth_sign[`eth_sign`] JSON-RPC method.\n See {ECDSA-recover}."},"id":1824,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nameLocation":"2157:22:10","nodeType":"FunctionDefinition","parameters":{"id":1802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1801,"mutability":"mutable","name":"message","nameLocation":"2193:7:10","nodeType":"VariableDeclaration","scope":1824,"src":"2180:20:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1800,"name":"bytes","nodeType":"ElementaryTypeName","src":"2180:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2179:22:10"},"returnParameters":{"id":1805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1824,"src":"2225:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2225:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2224:9:10"},"scope":1857,"src":"2148:229:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1843,"nodeType":"Block","src":"2831:80:10","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"1900","id":1837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"hexString","lValueRequested":false,"nodeType":"Literal","src":"2875:10:10","typeDescriptions":{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},"value":"\u0019\u0000"},{"id":1838,"name":"validator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1827,"src":"2887:9:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1839,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1829,"src":"2898:4:10","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_73fd5d154550a4a103564cb191928cd38898034de1b952dc21b290898b4b697a","typeString":"literal_string hex\"1900\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":1835,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2858:3:10","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2862:12:10","memberName":"encodePacked","nodeType":"MemberAccess","src":"2858:16:10","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2858:45:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1834,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2848:9:10","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:56:10","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1833,"id":1842,"nodeType":"Return","src":"2841:63:10"}]},"documentation":{"id":1825,"nodeType":"StructuredDocumentation","src":"2383:332:10","text":" @dev Returns the keccak256 digest of an EIP-191 signed data with version\n `0x00` (data with intended validator).\n The digest is calculated by prefixing an arbitrary `data` with `\"\\x19\\x00\"` and the intended\n `validator` address. Then hashing the result.\n See {ECDSA-recover}."},"id":1844,"implemented":true,"kind":"function","modifiers":[],"name":"toDataWithIntendedValidatorHash","nameLocation":"2729:31:10","nodeType":"FunctionDefinition","parameters":{"id":1830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1827,"mutability":"mutable","name":"validator","nameLocation":"2769:9:10","nodeType":"VariableDeclaration","scope":1844,"src":"2761:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1826,"name":"address","nodeType":"ElementaryTypeName","src":"2761:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1829,"mutability":"mutable","name":"data","nameLocation":"2793:4:10","nodeType":"VariableDeclaration","scope":1844,"src":"2780:17:10","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1828,"name":"bytes","nodeType":"ElementaryTypeName","src":"2780:5:10","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2760:38:10"},"returnParameters":{"id":1833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1832,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1844,"src":"2822:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2822:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2821:9:10"},"scope":1857,"src":"2720:191:10","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1855,"nodeType":"Block","src":"3462:292:10","statements":[{"AST":{"nodeType":"YulBlock","src":"3524:224:10","statements":[{"nodeType":"YulVariableDeclaration","src":"3538:22:10","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3555:4:10","type":"","value":"0x40"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3549:5:10"},"nodeType":"YulFunctionCall","src":"3549:11:10"},"variables":[{"name":"ptr","nodeType":"YulTypedName","src":"3542:3:10","type":""}]},{"expression":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3580:3:10"},{"hexValue":"1901","kind":"string","nodeType":"YulLiteral","src":"3585:10:10","type":"","value":"\u0019\u0001"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3573:6:10"},"nodeType":"YulFunctionCall","src":"3573:23:10"},"nodeType":"YulExpressionStatement","src":"3573:23:10"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3620:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"3625:4:10","type":"","value":"0x02"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3616:3:10"},"nodeType":"YulFunctionCall","src":"3616:14:10"},{"name":"domainSeparator","nodeType":"YulIdentifier","src":"3632:15:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3609:6:10"},"nodeType":"YulFunctionCall","src":"3609:39:10"},"nodeType":"YulExpressionStatement","src":"3609:39:10"},{"expression":{"arguments":[{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3672:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"3677:4:10","type":"","value":"0x22"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3668:3:10"},"nodeType":"YulFunctionCall","src":"3668:14:10"},{"name":"structHash","nodeType":"YulIdentifier","src":"3684:10:10"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3661:6:10"},"nodeType":"YulFunctionCall","src":"3661:34:10"},"nodeType":"YulExpressionStatement","src":"3661:34:10"},{"nodeType":"YulAssignment","src":"3708:30:10","value":{"arguments":[{"name":"ptr","nodeType":"YulIdentifier","src":"3728:3:10"},{"kind":"number","nodeType":"YulLiteral","src":"3733:4:10","type":"","value":"0x42"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"3718:9:10"},"nodeType":"YulFunctionCall","src":"3718:20:10"},"variableNames":[{"name":"digest","nodeType":"YulIdentifier","src":"3708:6:10"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":1852,"isOffset":false,"isSlot":false,"src":"3708:6:10","valueSize":1},{"declaration":1847,"isOffset":false,"isSlot":false,"src":"3632:15:10","valueSize":1},{"declaration":1849,"isOffset":false,"isSlot":false,"src":"3684:10:10","valueSize":1}],"id":1854,"nodeType":"InlineAssembly","src":"3515:233:10"}]},"documentation":{"id":1845,"nodeType":"StructuredDocumentation","src":"2917:431:10","text":" @dev Returns the keccak256 digest of an EIP-712 typed data (EIP-191 version `0x01`).\n The digest is calculated from a `domainSeparator` and a `structHash`, by prefixing them with\n `\\x19\\x01` and hashing the result. It corresponds to the hash signed by the\n https://eips.ethereum.org/EIPS/eip-712[`eth_signTypedData`] JSON-RPC method as part of EIP-712.\n See {ECDSA-recover}."},"id":1856,"implemented":true,"kind":"function","modifiers":[],"name":"toTypedDataHash","nameLocation":"3362:15:10","nodeType":"FunctionDefinition","parameters":{"id":1850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1847,"mutability":"mutable","name":"domainSeparator","nameLocation":"3386:15:10","nodeType":"VariableDeclaration","scope":1856,"src":"3378:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1846,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3378:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1849,"mutability":"mutable","name":"structHash","nameLocation":"3411:10:10","nodeType":"VariableDeclaration","scope":1856,"src":"3403:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3403:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3377:45:10"},"returnParameters":{"id":1853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1852,"mutability":"mutable","name":"digest","nameLocation":"3454:6:10","nodeType":"VariableDeclaration","scope":1856,"src":"3446:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1851,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3446:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3445:16:10"},"scope":1857,"src":"3353:401:10","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":1858,"src":"521:3235:10","usedErrors":[],"usedEvents":[]}],"src":"123:3634:10"},"id":10},"@openzeppelin/contracts/utils/math/Math.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/Math.sol","exportedSymbols":{"Math":[2911]},"id":2912,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":1859,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"103:24:11"},{"abstract":false,"baseContracts":[],"canonicalName":"Math","contractDependencies":[],"contractKind":"library","documentation":{"id":1860,"nodeType":"StructuredDocumentation","src":"129:73:11","text":" @dev Standard math utilities missing in the Solidity language."},"fullyImplemented":true,"id":2911,"linearizedBaseContracts":[2911],"name":"Math","nameLocation":"211:4:11","nodeType":"ContractDefinition","nodes":[{"documentation":{"id":1861,"nodeType":"StructuredDocumentation","src":"222:50:11","text":" @dev Muldiv operation overflow."},"errorSelector":"227bc153","id":1863,"name":"MathOverflowedMulDiv","nameLocation":"283:20:11","nodeType":"ErrorDefinition","parameters":{"id":1862,"nodeType":"ParameterList","parameters":[],"src":"303:2:11"},"src":"277:29:11"},{"canonicalName":"Math.Rounding","id":1868,"members":[{"id":1864,"name":"Floor","nameLocation":"336:5:11","nodeType":"EnumValue","src":"336:5:11"},{"id":1865,"name":"Ceil","nameLocation":"379:4:11","nodeType":"EnumValue","src":"379:4:11"},{"id":1866,"name":"Trunc","nameLocation":"421:5:11","nodeType":"EnumValue","src":"421:5:11"},{"id":1867,"name":"Expand","nameLocation":"451:6:11","nodeType":"EnumValue","src":"451:6:11"}],"name":"Rounding","nameLocation":"317:8:11","nodeType":"EnumDefinition","src":"312:169:11"},{"body":{"id":1899,"nodeType":"Block","src":"661:140:11","statements":[{"id":1898,"nodeType":"UncheckedBlock","src":"671:124:11","statements":[{"assignments":[1881],"declarations":[{"constant":false,"id":1881,"mutability":"mutable","name":"c","nameLocation":"703:1:11","nodeType":"VariableDeclaration","scope":1898,"src":"695:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1880,"name":"uint256","nodeType":"ElementaryTypeName","src":"695:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1885,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1882,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"707:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":1883,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1873,"src":"711:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"707:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"695:17:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1886,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"730:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1887,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"734:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"730:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1893,"nodeType":"IfStatement","src":"726:28:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"745:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"752:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1891,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"744:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1879,"id":1892,"nodeType":"Return","src":"737:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"776:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":1895,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1881,"src":"782:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"775:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1879,"id":1897,"nodeType":"Return","src":"768:16:11"}]}]},"documentation":{"id":1869,"nodeType":"StructuredDocumentation","src":"487:93:11","text":" @dev Returns the addition of two unsigned integers, with an overflow flag."},"id":1900,"implemented":true,"kind":"function","modifiers":[],"name":"tryAdd","nameLocation":"594:6:11","nodeType":"FunctionDefinition","parameters":{"id":1874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1871,"mutability":"mutable","name":"a","nameLocation":"609:1:11","nodeType":"VariableDeclaration","scope":1900,"src":"601:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1870,"name":"uint256","nodeType":"ElementaryTypeName","src":"601:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1873,"mutability":"mutable","name":"b","nameLocation":"620:1:11","nodeType":"VariableDeclaration","scope":1900,"src":"612:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1872,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"600:22:11"},"returnParameters":{"id":1879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1900,"src":"646:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1875,"name":"bool","nodeType":"ElementaryTypeName","src":"646:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1900,"src":"652:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1877,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"645:15:11"},"scope":2911,"src":"585:216:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1927,"nodeType":"Block","src":"984:113:11","statements":[{"id":1926,"nodeType":"UncheckedBlock","src":"994:97:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1912,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"1022:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":1913,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"1026:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1022:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1919,"nodeType":"IfStatement","src":"1018:28:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1037:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1044:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1917,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1036:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1911,"id":1918,"nodeType":"Return","src":"1029:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1068:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1921,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"1074:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1922,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1905,"src":"1078:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1074:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1924,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1067:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1911,"id":1925,"nodeType":"Return","src":"1060:20:11"}]}]},"documentation":{"id":1901,"nodeType":"StructuredDocumentation","src":"807:96:11","text":" @dev Returns the subtraction of two unsigned integers, with an overflow flag."},"id":1928,"implemented":true,"kind":"function","modifiers":[],"name":"trySub","nameLocation":"917:6:11","nodeType":"FunctionDefinition","parameters":{"id":1906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1903,"mutability":"mutable","name":"a","nameLocation":"932:1:11","nodeType":"VariableDeclaration","scope":1928,"src":"924:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1902,"name":"uint256","nodeType":"ElementaryTypeName","src":"924:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1905,"mutability":"mutable","name":"b","nameLocation":"943:1:11","nodeType":"VariableDeclaration","scope":1928,"src":"935:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1904,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"923:22:11"},"returnParameters":{"id":1911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1928,"src":"969:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1907,"name":"bool","nodeType":"ElementaryTypeName","src":"969:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1910,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1928,"src":"975:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1909,"name":"uint256","nodeType":"ElementaryTypeName","src":"975:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:15:11"},"scope":2911,"src":"908:189:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1969,"nodeType":"Block","src":"1283:417:11","statements":[{"id":1968,"nodeType":"UncheckedBlock","src":"1293:401:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1940,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"1551:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1556:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1551:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1947,"nodeType":"IfStatement","src":"1547:28:11","trueBody":{"expression":{"components":[{"hexValue":"74727565","id":1943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1567:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"30","id":1944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1573:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1945,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1566:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1939,"id":1946,"nodeType":"Return","src":"1559:16:11"}},{"assignments":[1949],"declarations":[{"constant":false,"id":1949,"mutability":"mutable","name":"c","nameLocation":"1597:1:11","nodeType":"VariableDeclaration","scope":1968,"src":"1589:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1948,"name":"uint256","nodeType":"ElementaryTypeName","src":"1589:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1953,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1950,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"1601:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1951,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"1605:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1601:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1589:17:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1954,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"1624:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1955,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1931,"src":"1628:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1957,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1933,"src":"1633:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1624:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1963,"nodeType":"IfStatement","src":"1620:33:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1644:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1651:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1961,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1643:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1939,"id":1962,"nodeType":"Return","src":"1636:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1675:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":1965,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1949,"src":"1681:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1966,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1674:9:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1939,"id":1967,"nodeType":"Return","src":"1667:16:11"}]}]},"documentation":{"id":1929,"nodeType":"StructuredDocumentation","src":"1103:99:11","text":" @dev Returns the multiplication of two unsigned integers, with an overflow flag."},"id":1970,"implemented":true,"kind":"function","modifiers":[],"name":"tryMul","nameLocation":"1216:6:11","nodeType":"FunctionDefinition","parameters":{"id":1934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1931,"mutability":"mutable","name":"a","nameLocation":"1231:1:11","nodeType":"VariableDeclaration","scope":1970,"src":"1223:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1933,"mutability":"mutable","name":"b","nameLocation":"1242:1:11","nodeType":"VariableDeclaration","scope":1970,"src":"1234:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1932,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1222:22:11"},"returnParameters":{"id":1939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1970,"src":"1268:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1935,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1938,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1970,"src":"1274:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1937,"name":"uint256","nodeType":"ElementaryTypeName","src":"1274:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1267:15:11"},"scope":2911,"src":"1207:493:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":1997,"nodeType":"Block","src":"1887:114:11","statements":[{"id":1996,"nodeType":"UncheckedBlock","src":"1897:98:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1982,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"1925:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1930:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1925:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1989,"nodeType":"IfStatement","src":"1921:29:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":1985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1941:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":1986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1948:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":1987,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1940:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":1981,"id":1988,"nodeType":"Return","src":"1933:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":1990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1972:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1991,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1973,"src":"1978:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1992,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1975,"src":"1982:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1978:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1994,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1971:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":1981,"id":1995,"nodeType":"Return","src":"1964:20:11"}]}]},"documentation":{"id":1971,"nodeType":"StructuredDocumentation","src":"1706:100:11","text":" @dev Returns the division of two unsigned integers, with a division by zero flag."},"id":1998,"implemented":true,"kind":"function","modifiers":[],"name":"tryDiv","nameLocation":"1820:6:11","nodeType":"FunctionDefinition","parameters":{"id":1976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1973,"mutability":"mutable","name":"a","nameLocation":"1835:1:11","nodeType":"VariableDeclaration","scope":1998,"src":"1827:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1972,"name":"uint256","nodeType":"ElementaryTypeName","src":"1827:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1975,"mutability":"mutable","name":"b","nameLocation":"1846:1:11","nodeType":"VariableDeclaration","scope":1998,"src":"1838:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1974,"name":"uint256","nodeType":"ElementaryTypeName","src":"1838:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:22:11"},"returnParameters":{"id":1981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1978,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1998,"src":"1872:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1977,"name":"bool","nodeType":"ElementaryTypeName","src":"1872:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":1980,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1998,"src":"1878:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1979,"name":"uint256","nodeType":"ElementaryTypeName","src":"1878:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:15:11"},"scope":2911,"src":"1811:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2025,"nodeType":"Block","src":"2198:114:11","statements":[{"id":2024,"nodeType":"UncheckedBlock","src":"2208:98:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2010,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"2236:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2011,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2241:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2236:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2017,"nodeType":"IfStatement","src":"2232:29:11","trueBody":{"expression":{"components":[{"hexValue":"66616c7365","id":2013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2252:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"hexValue":"30","id":2014,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2259:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":2015,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2251:10:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_rational_0_by_1_$","typeString":"tuple(bool,int_const 0)"}},"functionReturnParameters":2009,"id":2016,"nodeType":"Return","src":"2244:17:11"}},{"expression":{"components":[{"hexValue":"74727565","id":2018,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2283:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2019,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2001,"src":"2289:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"id":2020,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2003,"src":"2293:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2289:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2282:13:11","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_uint256_$","typeString":"tuple(bool,uint256)"}},"functionReturnParameters":2009,"id":2023,"nodeType":"Return","src":"2275:20:11"}]}]},"documentation":{"id":1999,"nodeType":"StructuredDocumentation","src":"2007:110:11","text":" @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag."},"id":2026,"implemented":true,"kind":"function","modifiers":[],"name":"tryMod","nameLocation":"2131:6:11","nodeType":"FunctionDefinition","parameters":{"id":2004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2001,"mutability":"mutable","name":"a","nameLocation":"2146:1:11","nodeType":"VariableDeclaration","scope":2026,"src":"2138:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2000,"name":"uint256","nodeType":"ElementaryTypeName","src":"2138:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2003,"mutability":"mutable","name":"b","nameLocation":"2157:1:11","nodeType":"VariableDeclaration","scope":2026,"src":"2149:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2149:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2137:22:11"},"returnParameters":{"id":2009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2006,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2026,"src":"2183:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2005,"name":"bool","nodeType":"ElementaryTypeName","src":"2183:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":2008,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2026,"src":"2189:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2007,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2182:15:11"},"scope":2911,"src":"2122:190:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2043,"nodeType":"Block","src":"2449:37:11","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2036,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2466:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2037,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"2470:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2466:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2040,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"2478:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2466:13:11","trueExpression":{"id":2039,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2029,"src":"2474:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2035,"id":2042,"nodeType":"Return","src":"2459:20:11"}]},"documentation":{"id":2027,"nodeType":"StructuredDocumentation","src":"2318:59:11","text":" @dev Returns the largest of two numbers."},"id":2044,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"2391:3:11","nodeType":"FunctionDefinition","parameters":{"id":2032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2029,"mutability":"mutable","name":"a","nameLocation":"2403:1:11","nodeType":"VariableDeclaration","scope":2044,"src":"2395:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2028,"name":"uint256","nodeType":"ElementaryTypeName","src":"2395:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2031,"mutability":"mutable","name":"b","nameLocation":"2414:1:11","nodeType":"VariableDeclaration","scope":2044,"src":"2406:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2030,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2394:22:11"},"returnParameters":{"id":2035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2034,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2044,"src":"2440:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2033,"name":"uint256","nodeType":"ElementaryTypeName","src":"2440:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2439:9:11"},"scope":2911,"src":"2382:104:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2061,"nodeType":"Block","src":"2624:37:11","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2054,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"2641:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2055,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"2645:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2641:5:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2058,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2049,"src":"2653:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"2641:13:11","trueExpression":{"id":2057,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2047,"src":"2649:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2053,"id":2060,"nodeType":"Return","src":"2634:20:11"}]},"documentation":{"id":2045,"nodeType":"StructuredDocumentation","src":"2492:60:11","text":" @dev Returns the smallest of two numbers."},"id":2062,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"2566:3:11","nodeType":"FunctionDefinition","parameters":{"id":2050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2047,"mutability":"mutable","name":"a","nameLocation":"2578:1:11","nodeType":"VariableDeclaration","scope":2062,"src":"2570:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2046,"name":"uint256","nodeType":"ElementaryTypeName","src":"2570:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2049,"mutability":"mutable","name":"b","nameLocation":"2589:1:11","nodeType":"VariableDeclaration","scope":2062,"src":"2581:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2048,"name":"uint256","nodeType":"ElementaryTypeName","src":"2581:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2569:22:11"},"returnParameters":{"id":2053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2052,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2062,"src":"2615:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2051,"name":"uint256","nodeType":"ElementaryTypeName","src":"2615:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2614:9:11"},"scope":2911,"src":"2557:104:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2084,"nodeType":"Block","src":"2845:82:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2072,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2065,"src":"2900:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2073,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"2904:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2900:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2899:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2076,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2065,"src":"2910:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2077,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2067,"src":"2914:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2910:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2079,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2909:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"hexValue":"32","id":2080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2919:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2909:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2899:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2071,"id":2083,"nodeType":"Return","src":"2892:28:11"}]},"documentation":{"id":2063,"nodeType":"StructuredDocumentation","src":"2667:102:11","text":" @dev Returns the average of two numbers. The result is rounded towards\n zero."},"id":2085,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"2783:7:11","nodeType":"FunctionDefinition","parameters":{"id":2068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2065,"mutability":"mutable","name":"a","nameLocation":"2799:1:11","nodeType":"VariableDeclaration","scope":2085,"src":"2791:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2064,"name":"uint256","nodeType":"ElementaryTypeName","src":"2791:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2067,"mutability":"mutable","name":"b","nameLocation":"2810:1:11","nodeType":"VariableDeclaration","scope":2085,"src":"2802:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2066,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2790:22:11"},"returnParameters":{"id":2071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2085,"src":"2836:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2069,"name":"uint256","nodeType":"ElementaryTypeName","src":"2836:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2835:9:11"},"scope":2911,"src":"2774:153:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2118,"nodeType":"Block","src":"3219:260:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2095,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"3233:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3233:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2103,"nodeType":"IfStatement","src":"3229:127:11","trueBody":{"id":2102,"nodeType":"Block","src":"3241:115:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2098,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"3340:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2099,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"3344:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3340:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2094,"id":2101,"nodeType":"Return","src":"3333:12:11"}]}},{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2104,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"3444:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3449:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3444:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2108,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2088,"src":"3458:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":2109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3462:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3458:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2111,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3457:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2112,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"3467:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3457:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":2114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3471:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3457:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"3444:28:11","trueExpression":{"hexValue":"30","id":2107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3453:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2094,"id":2117,"nodeType":"Return","src":"3437:35:11"}]},"documentation":{"id":2086,"nodeType":"StructuredDocumentation","src":"2933:210:11","text":" @dev Returns the ceiling of the division of two numbers.\n This differs from standard division with `/` in that it rounds towards infinity instead\n of rounding towards zero."},"id":2119,"implemented":true,"kind":"function","modifiers":[],"name":"ceilDiv","nameLocation":"3157:7:11","nodeType":"FunctionDefinition","parameters":{"id":2091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2088,"mutability":"mutable","name":"a","nameLocation":"3173:1:11","nodeType":"VariableDeclaration","scope":2119,"src":"3165:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2087,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2090,"mutability":"mutable","name":"b","nameLocation":"3184:1:11","nodeType":"VariableDeclaration","scope":2119,"src":"3176:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2089,"name":"uint256","nodeType":"ElementaryTypeName","src":"3176:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3164:22:11"},"returnParameters":{"id":2094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2119,"src":"3210:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2092,"name":"uint256","nodeType":"ElementaryTypeName","src":"3210:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3209:9:11"},"scope":2911,"src":"3148:331:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2244,"nodeType":"Block","src":"3901:4018:11","statements":[{"id":2243,"nodeType":"UncheckedBlock","src":"3911:4002:11","statements":[{"assignments":[2132],"declarations":[{"constant":false,"id":2132,"mutability":"mutable","name":"prod0","nameLocation":"4240:5:11","nodeType":"VariableDeclaration","scope":2243,"src":"4232:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2131,"name":"uint256","nodeType":"ElementaryTypeName","src":"4232:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2136,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2133,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2122,"src":"4248:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2134,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2124,"src":"4252:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4248:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4232:21:11"},{"assignments":[2138],"declarations":[{"constant":false,"id":2138,"mutability":"mutable","name":"prod1","nameLocation":"4320:5:11","nodeType":"VariableDeclaration","scope":2243,"src":"4312:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2137,"name":"uint256","nodeType":"ElementaryTypeName","src":"4312:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2139,"nodeType":"VariableDeclarationStatement","src":"4312:13:11"},{"AST":{"nodeType":"YulBlock","src":"4392:122:11","statements":[{"nodeType":"YulVariableDeclaration","src":"4410:30:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4427:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"4430:1:11"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4437:1:11","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"4433:3:11"},"nodeType":"YulFunctionCall","src":"4433:6:11"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"4420:6:11"},"nodeType":"YulFunctionCall","src":"4420:20:11"},"variables":[{"name":"mm","nodeType":"YulTypedName","src":"4414:2:11","type":""}]},{"nodeType":"YulAssignment","src":"4457:43:11","value":{"arguments":[{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4474:2:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"4478:5:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4470:3:11"},"nodeType":"YulFunctionCall","src":"4470:14:11"},{"arguments":[{"name":"mm","nodeType":"YulIdentifier","src":"4489:2:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"4493:5:11"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"4486:2:11"},"nodeType":"YulFunctionCall","src":"4486:13:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4466:3:11"},"nodeType":"YulFunctionCall","src":"4466:34:11"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"4457:5:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2132,"isOffset":false,"isSlot":false,"src":"4478:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"4493:5:11","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"4457:5:11","valueSize":1},{"declaration":2122,"isOffset":false,"isSlot":false,"src":"4427:1:11","valueSize":1},{"declaration":2124,"isOffset":false,"isSlot":false,"src":"4430:1:11","valueSize":1}],"id":2140,"nodeType":"InlineAssembly","src":"4383:131:11"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2141,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"4595:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4604:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4595:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2149,"nodeType":"IfStatement","src":"4591:368:11","trueBody":{"id":2148,"nodeType":"Block","src":"4607:352:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2144,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"4925:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2145,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"4933:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4925:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2130,"id":2147,"nodeType":"Return","src":"4918:26:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2150,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"5065:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":2151,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"5080:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5065:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2157,"nodeType":"IfStatement","src":"5061:88:11","trueBody":{"id":2156,"nodeType":"Block","src":"5087:62:11","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2153,"name":"MathOverflowedMulDiv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1863,"src":"5112:20:11","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5112:22:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2155,"nodeType":"RevertStatement","src":"5105:29:11"}]}},{"assignments":[2159],"declarations":[{"constant":false,"id":2159,"mutability":"mutable","name":"remainder","nameLocation":"5412:9:11","nodeType":"VariableDeclaration","scope":2243,"src":"5404:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2158,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2160,"nodeType":"VariableDeclarationStatement","src":"5404:17:11"},{"AST":{"nodeType":"YulBlock","src":"5444:291:11","statements":[{"nodeType":"YulAssignment","src":"5513:38:11","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5533:1:11"},{"name":"y","nodeType":"YulIdentifier","src":"5536:1:11"},{"name":"denominator","nodeType":"YulIdentifier","src":"5539:11:11"}],"functionName":{"name":"mulmod","nodeType":"YulIdentifier","src":"5526:6:11"},"nodeType":"YulFunctionCall","src":"5526:25:11"},"variableNames":[{"name":"remainder","nodeType":"YulIdentifier","src":"5513:9:11"}]},{"nodeType":"YulAssignment","src":"5633:41:11","value":{"arguments":[{"name":"prod1","nodeType":"YulIdentifier","src":"5646:5:11"},{"arguments":[{"name":"remainder","nodeType":"YulIdentifier","src":"5656:9:11"},{"name":"prod0","nodeType":"YulIdentifier","src":"5667:5:11"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5653:2:11"},"nodeType":"YulFunctionCall","src":"5653:20:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5642:3:11"},"nodeType":"YulFunctionCall","src":"5642:32:11"},"variableNames":[{"name":"prod1","nodeType":"YulIdentifier","src":"5633:5:11"}]},{"nodeType":"YulAssignment","src":"5691:30:11","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"5704:5:11"},{"name":"remainder","nodeType":"YulIdentifier","src":"5711:9:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5700:3:11"},"nodeType":"YulFunctionCall","src":"5700:21:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"5691:5:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2126,"isOffset":false,"isSlot":false,"src":"5539:11:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"5667:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"5691:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"5704:5:11","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"5633:5:11","valueSize":1},{"declaration":2138,"isOffset":false,"isSlot":false,"src":"5646:5:11","valueSize":1},{"declaration":2159,"isOffset":false,"isSlot":false,"src":"5513:9:11","valueSize":1},{"declaration":2159,"isOffset":false,"isSlot":false,"src":"5656:9:11","valueSize":1},{"declaration":2159,"isOffset":false,"isSlot":false,"src":"5711:9:11","valueSize":1},{"declaration":2122,"isOffset":false,"isSlot":false,"src":"5533:1:11","valueSize":1},{"declaration":2124,"isOffset":false,"isSlot":false,"src":"5536:1:11","valueSize":1}],"id":2161,"nodeType":"InlineAssembly","src":"5435:300:11"},{"assignments":[2163],"declarations":[{"constant":false,"id":2163,"mutability":"mutable","name":"twos","nameLocation":"5947:4:11","nodeType":"VariableDeclaration","scope":2243,"src":"5939:12:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2162,"name":"uint256","nodeType":"ElementaryTypeName","src":"5939:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2170,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2164,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"5954:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":2165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5969:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":2166,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"5973:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5969:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2168,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5968:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5954:31:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5939:46:11"},{"AST":{"nodeType":"YulBlock","src":"6008:362:11","statements":[{"nodeType":"YulAssignment","src":"6073:37:11","value":{"arguments":[{"name":"denominator","nodeType":"YulIdentifier","src":"6092:11:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6105:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6088:3:11"},"nodeType":"YulFunctionCall","src":"6088:22:11"},"variableNames":[{"name":"denominator","nodeType":"YulIdentifier","src":"6073:11:11"}]},{"nodeType":"YulAssignment","src":"6177:25:11","value":{"arguments":[{"name":"prod0","nodeType":"YulIdentifier","src":"6190:5:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6197:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6186:3:11"},"nodeType":"YulFunctionCall","src":"6186:16:11"},"variableNames":[{"name":"prod0","nodeType":"YulIdentifier","src":"6177:5:11"}]},{"nodeType":"YulAssignment","src":"6317:39:11","value":{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6337:1:11","type":"","value":"0"},{"name":"twos","nodeType":"YulIdentifier","src":"6340:4:11"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6333:3:11"},"nodeType":"YulFunctionCall","src":"6333:12:11"},{"name":"twos","nodeType":"YulIdentifier","src":"6347:4:11"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"6329:3:11"},"nodeType":"YulFunctionCall","src":"6329:23:11"},{"kind":"number","nodeType":"YulLiteral","src":"6354:1:11","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6325:3:11"},"nodeType":"YulFunctionCall","src":"6325:31:11"},"variableNames":[{"name":"twos","nodeType":"YulIdentifier","src":"6317:4:11"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":2126,"isOffset":false,"isSlot":false,"src":"6073:11:11","valueSize":1},{"declaration":2126,"isOffset":false,"isSlot":false,"src":"6092:11:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"6177:5:11","valueSize":1},{"declaration":2132,"isOffset":false,"isSlot":false,"src":"6190:5:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6105:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6197:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6317:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6340:4:11","valueSize":1},{"declaration":2163,"isOffset":false,"isSlot":false,"src":"6347:4:11","valueSize":1}],"id":2171,"nodeType":"InlineAssembly","src":"5999:371:11"},{"expression":{"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2172,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"6436:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"|=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2173,"name":"prod1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2138,"src":"6445:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2174,"name":"twos","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2163,"src":"6453:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6445:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6436:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2177,"nodeType":"ExpressionStatement","src":"6436:21:11"},{"assignments":[2179],"declarations":[{"constant":false,"id":2179,"mutability":"mutable","name":"inverse","nameLocation":"6783:7:11","nodeType":"VariableDeclaration","scope":2243,"src":"6775:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2178,"name":"uint256","nodeType":"ElementaryTypeName","src":"6775:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2186,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"33","id":2180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6794:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2181,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"6798:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6794:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6793:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"hexValue":"32","id":2184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6813:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6793:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6775:39:11"},{"expression":{"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2187,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7031:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7042:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2189,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7046:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2190,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7060:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7046:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7042:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7031:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2194,"nodeType":"ExpressionStatement","src":"7031:36:11"},{"expression":{"id":2201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2195,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7100:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7111:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2197,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7115:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2198,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7129:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7115:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7100:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2202,"nodeType":"ExpressionStatement","src":"7100:36:11"},{"expression":{"id":2209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2203,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7170:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7181:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2205,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7185:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2206,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7199:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7185:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7181:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7170:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2210,"nodeType":"ExpressionStatement","src":"7170:36:11"},{"expression":{"id":2217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2211,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7240:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7251:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2213,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7255:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2214,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7269:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7255:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7251:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7240:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2218,"nodeType":"ExpressionStatement","src":"7240:36:11"},{"expression":{"id":2225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2219,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7310:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7321:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2221,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7325:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2222,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7339:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7325:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7321:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7310:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2226,"nodeType":"ExpressionStatement","src":"7310:36:11"},{"expression":{"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2227,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7381:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"*=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":2228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7392:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2229,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2126,"src":"7396:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2230,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7410:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7396:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7392:25:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7381:36:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2234,"nodeType":"ExpressionStatement","src":"7381:36:11"},{"expression":{"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2235,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2129,"src":"7851:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2236,"name":"prod0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2132,"src":"7860:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2237,"name":"inverse","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2179,"src":"7868:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7860:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7851:24:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2240,"nodeType":"ExpressionStatement","src":"7851:24:11"},{"expression":{"id":2241,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2129,"src":"7896:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2130,"id":2242,"nodeType":"Return","src":"7889:13:11"}]}]},"documentation":{"id":2120,"nodeType":"StructuredDocumentation","src":"3485:313:11","text":" @notice Calculates floor(x * y / denominator) with full precision. Throws if result overflows a uint256 or\n denominator == 0.\n @dev Original credit to Remco Bloemen under MIT license (https://xn--2-umb.com/21/muldiv) with further edits by\n Uniswap Labs also under MIT license."},"id":2245,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"3812:6:11","nodeType":"FunctionDefinition","parameters":{"id":2127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2122,"mutability":"mutable","name":"x","nameLocation":"3827:1:11","nodeType":"VariableDeclaration","scope":2245,"src":"3819:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2121,"name":"uint256","nodeType":"ElementaryTypeName","src":"3819:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2124,"mutability":"mutable","name":"y","nameLocation":"3838:1:11","nodeType":"VariableDeclaration","scope":2245,"src":"3830:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"3830:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2126,"mutability":"mutable","name":"denominator","nameLocation":"3849:11:11","nodeType":"VariableDeclaration","scope":2245,"src":"3841:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2125,"name":"uint256","nodeType":"ElementaryTypeName","src":"3841:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3818:43:11"},"returnParameters":{"id":2130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2129,"mutability":"mutable","name":"result","nameLocation":"3893:6:11","nodeType":"VariableDeclaration","scope":2245,"src":"3885:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3885:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3884:16:11"},"scope":2911,"src":"3803:4116:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2287,"nodeType":"Block","src":"8161:192:11","statements":[{"assignments":[2261],"declarations":[{"constant":false,"id":2261,"mutability":"mutable","name":"result","nameLocation":"8179:6:11","nodeType":"VariableDeclaration","scope":2287,"src":"8171:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2260,"name":"uint256","nodeType":"ElementaryTypeName","src":"8171:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2267,"initialValue":{"arguments":[{"id":2263,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"8195:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2264,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"8198:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2265,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2252,"src":"8201:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2262,"name":"mulDiv","nodeType":"Identifier","overloadedDeclarations":[2245,2288],"referencedDeclaration":2245,"src":"8188:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8171:42:11"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2269,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2255,"src":"8244:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2268,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"8227:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8227:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2272,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"8264:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2273,"name":"y","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"8267:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2274,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2252,"src":"8270:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2271,"name":"mulmod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-16,"src":"8257:6:11","typeDescriptions":{"typeIdentifier":"t_function_mulmod_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:25:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8285:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:29:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8227:59:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2284,"nodeType":"IfStatement","src":"8223:101:11","trueBody":{"id":2283,"nodeType":"Block","src":"8288:36:11","statements":[{"expression":{"id":2281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2279,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"8302:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8312:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"8302:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2282,"nodeType":"ExpressionStatement","src":"8302:11:11"}]}},{"expression":{"id":2285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"8340:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2259,"id":2286,"nodeType":"Return","src":"8333:13:11"}]},"documentation":{"id":2246,"nodeType":"StructuredDocumentation","src":"7925:121:11","text":" @notice Calculates x * y / denominator with full precision, following the selected rounding direction."},"id":2288,"implemented":true,"kind":"function","modifiers":[],"name":"mulDiv","nameLocation":"8060:6:11","nodeType":"FunctionDefinition","parameters":{"id":2256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"x","nameLocation":"8075:1:11","nodeType":"VariableDeclaration","scope":2288,"src":"8067:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2247,"name":"uint256","nodeType":"ElementaryTypeName","src":"8067:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2250,"mutability":"mutable","name":"y","nameLocation":"8086:1:11","nodeType":"VariableDeclaration","scope":2288,"src":"8078:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2249,"name":"uint256","nodeType":"ElementaryTypeName","src":"8078:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2252,"mutability":"mutable","name":"denominator","nameLocation":"8097:11:11","nodeType":"VariableDeclaration","scope":2288,"src":"8089:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2251,"name":"uint256","nodeType":"ElementaryTypeName","src":"8089:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2255,"mutability":"mutable","name":"rounding","nameLocation":"8119:8:11","nodeType":"VariableDeclaration","scope":2288,"src":"8110:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2254,"nodeType":"UserDefinedTypeName","pathNode":{"id":2253,"name":"Rounding","nameLocations":["8110:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"8110:8:11"},"referencedDeclaration":1868,"src":"8110:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"8066:62:11"},"returnParameters":{"id":2259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2288,"src":"8152:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2257,"name":"uint256","nodeType":"ElementaryTypeName","src":"8152:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8151:9:11"},"scope":2911,"src":"8051:302:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2399,"nodeType":"Block","src":"8644:1585:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2296,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"8658:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":2297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8663:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8658:6:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2302,"nodeType":"IfStatement","src":"8654:45:11","trueBody":{"id":2301,"nodeType":"Block","src":"8666:33:11","statements":[{"expression":{"hexValue":"30","id":2299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8687:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":2295,"id":2300,"nodeType":"Return","src":"8680:8:11"}]}},{"assignments":[2304],"declarations":[{"constant":false,"id":2304,"mutability":"mutable","name":"result","nameLocation":"9386:6:11","nodeType":"VariableDeclaration","scope":2399,"src":"9378:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2303,"name":"uint256","nodeType":"ElementaryTypeName","src":"9378:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2313,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2305,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9395:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2307,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9406:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2306,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2567,2602],"referencedDeclaration":2567,"src":"9401:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9401:7:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9401:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9400:14:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9395:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9378:36:11"},{"id":2398,"nodeType":"UncheckedBlock","src":"9815:408:11","statements":[{"expression":{"id":2323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2314,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9839:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2315,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9849:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2316,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9858:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2317,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9862:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9858:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9849:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9848:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9873:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9848:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9839:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2324,"nodeType":"ExpressionStatement","src":"9839:35:11"},{"expression":{"id":2334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2325,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9888:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2326,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9898:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2327,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9907:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2328,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9911:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9907:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9898:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2331,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9897:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9922:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9897:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9888:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2335,"nodeType":"ExpressionStatement","src":"9888:35:11"},{"expression":{"id":2345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2336,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9937:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2337,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9947:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2338,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"9956:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2339,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9960:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9956:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9947:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2342,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9946:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9971:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9946:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9937:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2346,"nodeType":"ExpressionStatement","src":"9937:35:11"},{"expression":{"id":2356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2347,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9986:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2348,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"9996:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2349,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10005:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2350,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10009:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9996:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2353,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9995:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9995:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9986:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2357,"nodeType":"ExpressionStatement","src":"9986:35:11"},{"expression":{"id":2367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2358,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10035:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2359,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10045:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2360,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10054:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2361,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10058:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10054:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10045:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10044:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10069:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10044:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10035:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2368,"nodeType":"ExpressionStatement","src":"10035:35:11"},{"expression":{"id":2378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2369,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10084:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2370,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10094:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2371,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10103:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2372,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10107:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10103:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10094:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2375,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10093:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10118:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10093:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10084:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2379,"nodeType":"ExpressionStatement","src":"10084:35:11"},{"expression":{"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2380,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10133:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2381,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10143:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2382,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10152:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2383,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10156:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10152:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10143:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2386,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10142:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10142:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10133:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2390,"nodeType":"ExpressionStatement","src":"10133:35:11"},{"expression":{"arguments":[{"id":2392,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10193:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2393,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2291,"src":"10201:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":2394,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2304,"src":"10205:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10201:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2391,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"10189:3:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10189:23:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2295,"id":2397,"nodeType":"Return","src":"10182:30:11"}]}]},"documentation":{"id":2289,"nodeType":"StructuredDocumentation","src":"8359:223:11","text":" @dev Returns the square root of a number. If the number is not a perfect square, the value is rounded\n towards zero.\n Inspired by Henry S. Warren, Jr.'s \"Hacker's Delight\" (Chapter 11)."},"id":2400,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"8596:4:11","nodeType":"FunctionDefinition","parameters":{"id":2292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2291,"mutability":"mutable","name":"a","nameLocation":"8609:1:11","nodeType":"VariableDeclaration","scope":2400,"src":"8601:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2290,"name":"uint256","nodeType":"ElementaryTypeName","src":"8601:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8600:11:11"},"returnParameters":{"id":2295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2294,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2400,"src":"8635:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2293,"name":"uint256","nodeType":"ElementaryTypeName","src":"8635:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8634:9:11"},"scope":2911,"src":"8587:1642:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2434,"nodeType":"Block","src":"10405:164:11","statements":[{"id":2433,"nodeType":"UncheckedBlock","src":"10415:148:11","statements":[{"assignments":[2412],"declarations":[{"constant":false,"id":2412,"mutability":"mutable","name":"result","nameLocation":"10447:6:11","nodeType":"VariableDeclaration","scope":2433,"src":"10439:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2411,"name":"uint256","nodeType":"ElementaryTypeName","src":"10439:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2416,"initialValue":{"arguments":[{"id":2414,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"10461:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2413,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[2400,2435],"referencedDeclaration":2400,"src":"10456:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10456:7:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10439:24:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2417,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"10484:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2419,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2406,"src":"10511:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2418,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"10494:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10494:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2421,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"10524:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":2422,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2412,"src":"10533:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:15:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2424,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2403,"src":"10542:1:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10524:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10494:49:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10550:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"10494:57:11","trueExpression":{"hexValue":"31","id":2427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10546:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2430,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10493:59:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"10484:68:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2410,"id":2432,"nodeType":"Return","src":"10477:75:11"}]}]},"documentation":{"id":2401,"nodeType":"StructuredDocumentation","src":"10235:89:11","text":" @notice Calculates sqrt(a), following the selected rounding direction."},"id":2435,"implemented":true,"kind":"function","modifiers":[],"name":"sqrt","nameLocation":"10338:4:11","nodeType":"FunctionDefinition","parameters":{"id":2407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2403,"mutability":"mutable","name":"a","nameLocation":"10351:1:11","nodeType":"VariableDeclaration","scope":2435,"src":"10343:9:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2402,"name":"uint256","nodeType":"ElementaryTypeName","src":"10343:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2406,"mutability":"mutable","name":"rounding","nameLocation":"10363:8:11","nodeType":"VariableDeclaration","scope":2435,"src":"10354:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2405,"nodeType":"UserDefinedTypeName","pathNode":{"id":2404,"name":"Rounding","nameLocations":["10354:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"10354:8:11"},"referencedDeclaration":1868,"src":"10354:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"10342:30:11"},"returnParameters":{"id":2410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2409,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2435,"src":"10396:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2408,"name":"uint256","nodeType":"ElementaryTypeName","src":"10396:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10395:9:11"},"scope":2911,"src":"10329:240:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2566,"nodeType":"Block","src":"10760:922:11","statements":[{"assignments":[2444],"declarations":[{"constant":false,"id":2444,"mutability":"mutable","name":"result","nameLocation":"10778:6:11","nodeType":"VariableDeclaration","scope":2566,"src":"10770:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2443,"name":"uint256","nodeType":"ElementaryTypeName","src":"10770:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2446,"initialValue":{"hexValue":"30","id":2445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10787:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10770:18:11"},{"id":2563,"nodeType":"UncheckedBlock","src":"10798:855:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2447,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10826:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2448,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10835:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10826:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10841:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10826:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2461,"nodeType":"IfStatement","src":"10822:99:11","trueBody":{"id":2460,"nodeType":"Block","src":"10844:77:11","statements":[{"expression":{"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2452,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10862:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10872:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10862:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2455,"nodeType":"ExpressionStatement","src":"10862:13:11"},{"expression":{"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2456,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"10893:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"313238","id":2457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10903:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"10893:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2459,"nodeType":"ExpressionStatement","src":"10893:13:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2462,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10938:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10947:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10938:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10952:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10938:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2476,"nodeType":"IfStatement","src":"10934:96:11","trueBody":{"id":2475,"nodeType":"Block","src":"10955:75:11","statements":[{"expression":{"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2467,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"10973:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10983:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"10973:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2470,"nodeType":"ExpressionStatement","src":"10973:12:11"},{"expression":{"id":2473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2471,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11003:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11013:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"11003:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2474,"nodeType":"ExpressionStatement","src":"11003:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2477,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11047:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11056:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11047:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11061:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11047:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2491,"nodeType":"IfStatement","src":"11043:96:11","trueBody":{"id":2490,"nodeType":"Block","src":"11064:75:11","statements":[{"expression":{"id":2484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2482,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11082:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11092:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11082:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2485,"nodeType":"ExpressionStatement","src":"11082:12:11"},{"expression":{"id":2488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2486,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11112:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11122:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"11112:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2489,"nodeType":"ExpressionStatement","src":"11112:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2492,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11156:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11165:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11156:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11170:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11156:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2506,"nodeType":"IfStatement","src":"11152:96:11","trueBody":{"id":2505,"nodeType":"Block","src":"11173:75:11","statements":[{"expression":{"id":2499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2497,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11191:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11201:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11191:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2500,"nodeType":"ExpressionStatement","src":"11191:12:11"},{"expression":{"id":2503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2501,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11221:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11231:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"11221:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2504,"nodeType":"ExpressionStatement","src":"11221:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2511,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11265:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11274:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11265:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2510,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11265:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2521,"nodeType":"IfStatement","src":"11261:93:11","trueBody":{"id":2520,"nodeType":"Block","src":"11281:73:11","statements":[{"expression":{"id":2514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2512,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11299:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"38","id":2513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11309:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11299:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2515,"nodeType":"ExpressionStatement","src":"11299:11:11"},{"expression":{"id":2518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2516,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11328:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11338:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"11328:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2519,"nodeType":"ExpressionStatement","src":"11328:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11371:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"34","id":2523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11380:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11371:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11384:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11371:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2536,"nodeType":"IfStatement","src":"11367:93:11","trueBody":{"id":2535,"nodeType":"Block","src":"11387:73:11","statements":[{"expression":{"id":2529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2527,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11405:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"34","id":2528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11415:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11405:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2530,"nodeType":"ExpressionStatement","src":"11405:11:11"},{"expression":{"id":2533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2531,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11434:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11444:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"11434:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2534,"nodeType":"ExpressionStatement","src":"11434:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2537,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11477:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"32","id":2538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11486:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11477:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11490:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11477:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2551,"nodeType":"IfStatement","src":"11473:93:11","trueBody":{"id":2550,"nodeType":"Block","src":"11493:73:11","statements":[{"expression":{"id":2544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2542,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11511:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"32","id":2543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11521:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11511:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2545,"nodeType":"ExpressionStatement","src":"11511:11:11"},{"expression":{"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2546,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11540:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11550:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11540:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2549,"nodeType":"ExpressionStatement","src":"11540:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2552,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2438,"src":"11583:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11592:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11583:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11596:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11583:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2562,"nodeType":"IfStatement","src":"11579:64:11","trueBody":{"id":2561,"nodeType":"Block","src":"11599:44:11","statements":[{"expression":{"id":2559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2557,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11617:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11627:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11617:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2560,"nodeType":"ExpressionStatement","src":"11617:11:11"}]}}]},{"expression":{"id":2564,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2444,"src":"11669:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2442,"id":2565,"nodeType":"Return","src":"11662:13:11"}]},"documentation":{"id":2436,"nodeType":"StructuredDocumentation","src":"10575:119:11","text":" @dev Return the log in base 2 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":2567,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"10708:4:11","nodeType":"FunctionDefinition","parameters":{"id":2439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2438,"mutability":"mutable","name":"value","nameLocation":"10721:5:11","nodeType":"VariableDeclaration","scope":2567,"src":"10713:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2437,"name":"uint256","nodeType":"ElementaryTypeName","src":"10713:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10712:15:11"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2567,"src":"10751:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2440,"name":"uint256","nodeType":"ElementaryTypeName","src":"10751:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10750:9:11"},"scope":2911,"src":"10699:983:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2601,"nodeType":"Block","src":"11915:168:11","statements":[{"id":2600,"nodeType":"UncheckedBlock","src":"11925:152:11","statements":[{"assignments":[2579],"declarations":[{"constant":false,"id":2579,"mutability":"mutable","name":"result","nameLocation":"11957:6:11","nodeType":"VariableDeclaration","scope":2600,"src":"11949:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2578,"name":"uint256","nodeType":"ElementaryTypeName","src":"11949:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2583,"initialValue":{"arguments":[{"id":2581,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2570,"src":"11971:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2580,"name":"log2","nodeType":"Identifier","overloadedDeclarations":[2567,2602],"referencedDeclaration":2567,"src":"11966:4:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11966:11:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11949:28:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2584,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"11998:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2586,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"12025:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2585,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"12008:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12008:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2588,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12038:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"id":2589,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"12043:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2591,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2570,"src":"12052:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12038:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12008:49:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12064:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"12008:57:11","trueExpression":{"hexValue":"31","id":2594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12060:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2597,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12007:59:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"11998:68:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2577,"id":2599,"nodeType":"Return","src":"11991:75:11"}]}]},"documentation":{"id":2568,"nodeType":"StructuredDocumentation","src":"11688:142:11","text":" @dev Return the log in base 2, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2602,"implemented":true,"kind":"function","modifiers":[],"name":"log2","nameLocation":"11844:4:11","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2570,"mutability":"mutable","name":"value","nameLocation":"11857:5:11","nodeType":"VariableDeclaration","scope":2602,"src":"11849:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2569,"name":"uint256","nodeType":"ElementaryTypeName","src":"11849:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2573,"mutability":"mutable","name":"rounding","nameLocation":"11873:8:11","nodeType":"VariableDeclaration","scope":2602,"src":"11864:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2572,"nodeType":"UserDefinedTypeName","pathNode":{"id":2571,"name":"Rounding","nameLocations":["11864:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"11864:8:11"},"referencedDeclaration":1868,"src":"11864:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"11848:34:11"},"returnParameters":{"id":2577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2576,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2602,"src":"11906:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2575,"name":"uint256","nodeType":"ElementaryTypeName","src":"11906:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11905:9:11"},"scope":2911,"src":"11835:248:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2730,"nodeType":"Block","src":"12276:854:11","statements":[{"assignments":[2611],"declarations":[{"constant":false,"id":2611,"mutability":"mutable","name":"result","nameLocation":"12294:6:11","nodeType":"VariableDeclaration","scope":2730,"src":"12286:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2610,"name":"uint256","nodeType":"ElementaryTypeName","src":"12286:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2613,"initialValue":{"hexValue":"30","id":2612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12303:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12286:18:11"},{"id":2727,"nodeType":"UncheckedBlock","src":"12314:787:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2614,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12342:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":2617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12351:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12357:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12351:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12342:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2630,"nodeType":"IfStatement","src":"12338:103:11","trueBody":{"id":2629,"nodeType":"Block","src":"12361:80:11","statements":[{"expression":{"id":2623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12379:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"},"id":2622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12388:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":2621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12394:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12388:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000000000000000000000000000000000000000000000000000_by_1","typeString":"int_const 1000...(57 digits omitted)...0000"}},"src":"12379:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2624,"nodeType":"ExpressionStatement","src":"12379:17:11"},{"expression":{"id":2627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2625,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12414:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3634","id":2626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12424:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"12414:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2628,"nodeType":"ExpressionStatement","src":"12414:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2631,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12458:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":2634,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12467:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12473:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12467:8:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12458:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2647,"nodeType":"IfStatement","src":"12454:103:11","trueBody":{"id":2646,"nodeType":"Block","src":"12477:80:11","statements":[{"expression":{"id":2640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2636,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12495:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"},"id":2639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12504:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3332","id":2638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12510:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12504:8:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000000000000000000000000000_by_1","typeString":"int_const 1000...(25 digits omitted)...0000"}},"src":"12495:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2641,"nodeType":"ExpressionStatement","src":"12495:17:11"},{"expression":{"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2642,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12530:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3332","id":2643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12540:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"12530:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2645,"nodeType":"ExpressionStatement","src":"12530:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2648,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12574:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12583:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12589:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12583:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12574:17:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2664,"nodeType":"IfStatement","src":"12570:103:11","trueBody":{"id":2663,"nodeType":"Block","src":"12593:80:11","statements":[{"expression":{"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2653,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12611:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"},"id":2656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12620:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3136","id":2655,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12626:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12620:8:11","typeDescriptions":{"typeIdentifier":"t_rational_10000000000000000_by_1","typeString":"int_const 10000000000000000"}},"src":"12611:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2658,"nodeType":"ExpressionStatement","src":"12611:17:11"},{"expression":{"id":2661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2659,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12646:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12656:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"12646:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2662,"nodeType":"ExpressionStatement","src":"12646:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2665,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12690:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2668,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12699:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12705:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12699:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12690:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2681,"nodeType":"IfStatement","src":"12686:100:11","trueBody":{"id":2680,"nodeType":"Block","src":"12708:78:11","statements":[{"expression":{"id":2674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2670,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12726:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"},"id":2673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12735:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"38","id":2672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12741:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12735:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100000000_by_1","typeString":"int_const 100000000"}},"src":"12726:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2675,"nodeType":"ExpressionStatement","src":"12726:16:11"},{"expression":{"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2676,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12760:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12770:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"12760:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2679,"nodeType":"ExpressionStatement","src":"12760:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2682,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12803:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2685,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12812:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12818:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12812:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12803:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2698,"nodeType":"IfStatement","src":"12799:100:11","trueBody":{"id":2697,"nodeType":"Block","src":"12821:78:11","statements":[{"expression":{"id":2691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2687,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12839:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":2690,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12848:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":2689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12854:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12848:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"src":"12839:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2692,"nodeType":"ExpressionStatement","src":"12839:16:11"},{"expression":{"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2693,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12873:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12883:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"12873:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2696,"nodeType":"ExpressionStatement","src":"12873:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2699,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12916:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12925:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12931:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12925:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12916:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2715,"nodeType":"IfStatement","src":"12912:100:11","trueBody":{"id":2714,"nodeType":"Block","src":"12934:78:11","statements":[{"expression":{"id":2708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2704,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"12952:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"/=","rightHandSide":{"commonType":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"id":2707,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12961:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"32","id":2706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12967:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12961:7:11","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}},"src":"12952:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2709,"nodeType":"ExpressionStatement","src":"12952:16:11"},{"expression":{"id":2712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2710,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"12986:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12996:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12986:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2713,"nodeType":"ExpressionStatement","src":"12986:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2716,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2605,"src":"13029:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"id":2719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13038:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"31","id":2718,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13044:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13038:7:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"}},"src":"13029:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2726,"nodeType":"IfStatement","src":"13025:66:11","trueBody":{"id":2725,"nodeType":"Block","src":"13047:44:11","statements":[{"expression":{"id":2723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2721,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"13065:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13075:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13065:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2724,"nodeType":"ExpressionStatement","src":"13065:11:11"}]}}]},{"expression":{"id":2728,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2611,"src":"13117:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2609,"id":2729,"nodeType":"Return","src":"13110:13:11"}]},"documentation":{"id":2603,"nodeType":"StructuredDocumentation","src":"12089:120:11","text":" @dev Return the log in base 10 of a positive value rounded towards zero.\n Returns 0 if given 0."},"id":2731,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"12223:5:11","nodeType":"FunctionDefinition","parameters":{"id":2606,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2605,"mutability":"mutable","name":"value","nameLocation":"12237:5:11","nodeType":"VariableDeclaration","scope":2731,"src":"12229:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2604,"name":"uint256","nodeType":"ElementaryTypeName","src":"12229:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12228:15:11"},"returnParameters":{"id":2609,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2608,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2731,"src":"12267:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2607,"name":"uint256","nodeType":"ElementaryTypeName","src":"12267:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12266:9:11"},"scope":2911,"src":"12214:916:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2765,"nodeType":"Block","src":"13365:170:11","statements":[{"id":2764,"nodeType":"UncheckedBlock","src":"13375:154:11","statements":[{"assignments":[2743],"declarations":[{"constant":false,"id":2743,"mutability":"mutable","name":"result","nameLocation":"13407:6:11","nodeType":"VariableDeclaration","scope":2764,"src":"13399:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2742,"name":"uint256","nodeType":"ElementaryTypeName","src":"13399:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2747,"initialValue":{"arguments":[{"id":2745,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"13422:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2744,"name":"log10","nodeType":"Identifier","overloadedDeclarations":[2731,2766],"referencedDeclaration":2731,"src":"13416:5:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13416:12:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13399:29:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2748,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"13449:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2750,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2737,"src":"13476:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2749,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"13459:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13459:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":2752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13489:2:11","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":2753,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2743,"src":"13495:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2755,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2734,"src":"13504:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13489:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13459:50:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13516:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"13459:58:11","trueExpression":{"hexValue":"31","id":2758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13512:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2761,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13458:60:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"13449:69:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2741,"id":2763,"nodeType":"Return","src":"13442:76:11"}]}]},"documentation":{"id":2732,"nodeType":"StructuredDocumentation","src":"13136:143:11","text":" @dev Return the log in base 10, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2766,"implemented":true,"kind":"function","modifiers":[],"name":"log10","nameLocation":"13293:5:11","nodeType":"FunctionDefinition","parameters":{"id":2738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2734,"mutability":"mutable","name":"value","nameLocation":"13307:5:11","nodeType":"VariableDeclaration","scope":2766,"src":"13299:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2733,"name":"uint256","nodeType":"ElementaryTypeName","src":"13299:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2737,"mutability":"mutable","name":"rounding","nameLocation":"13323:8:11","nodeType":"VariableDeclaration","scope":2766,"src":"13314:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2736,"nodeType":"UserDefinedTypeName","pathNode":{"id":2735,"name":"Rounding","nameLocations":["13314:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"13314:8:11"},"referencedDeclaration":1868,"src":"13314:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"13298:34:11"},"returnParameters":{"id":2741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2740,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2766,"src":"13356:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2739,"name":"uint256","nodeType":"ElementaryTypeName","src":"13356:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13355:9:11"},"scope":2911,"src":"13284:251:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2852,"nodeType":"Block","src":"13855:600:11","statements":[{"assignments":[2775],"declarations":[{"constant":false,"id":2775,"mutability":"mutable","name":"result","nameLocation":"13873:6:11","nodeType":"VariableDeclaration","scope":2852,"src":"13865:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2774,"name":"uint256","nodeType":"ElementaryTypeName","src":"13865:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2777,"initialValue":{"hexValue":"30","id":2776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13882:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13865:18:11"},{"id":2849,"nodeType":"UncheckedBlock","src":"13893:533:11","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2778,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"13921:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":2779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13930:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13921:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13936:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13921:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2792,"nodeType":"IfStatement","src":"13917:98:11","trueBody":{"id":2791,"nodeType":"Block","src":"13939:76:11","statements":[{"expression":{"id":2785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2783,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"13957:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"313238","id":2784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13967:3:11","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"13957:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2786,"nodeType":"ExpressionStatement","src":"13957:13:11"},{"expression":{"id":2789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2787,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"13988:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"3136","id":2788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13998:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"13988:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2790,"nodeType":"ExpressionStatement","src":"13988:12:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2793,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14032:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":2794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14041:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14032:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14046:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14032:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2807,"nodeType":"IfStatement","src":"14028:95:11","trueBody":{"id":2806,"nodeType":"Block","src":"14049:74:11","statements":[{"expression":{"id":2800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2798,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14067:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3634","id":2799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14077:2:11","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"14067:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2801,"nodeType":"ExpressionStatement","src":"14067:12:11"},{"expression":{"id":2804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2802,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14097:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"38","id":2803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14107:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14097:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2805,"nodeType":"ExpressionStatement","src":"14097:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2808,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14140:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3332","id":2809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14149:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14140:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14154:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14140:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2822,"nodeType":"IfStatement","src":"14136:95:11","trueBody":{"id":2821,"nodeType":"Block","src":"14157:74:11","statements":[{"expression":{"id":2815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2813,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14175:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3332","id":2814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14185:2:11","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"14175:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2816,"nodeType":"ExpressionStatement","src":"14175:12:11"},{"expression":{"id":2819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2817,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14205:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"34","id":2818,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14215:1:11","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"14205:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2820,"nodeType":"ExpressionStatement","src":"14205:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2823,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14248:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3136","id":2824,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14257:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14248:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14262:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14248:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2837,"nodeType":"IfStatement","src":"14244:95:11","trueBody":{"id":2836,"nodeType":"Block","src":"14265:74:11","statements":[{"expression":{"id":2830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2828,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14283:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"3136","id":2829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14293:2:11","typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"16"},"src":"14283:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2831,"nodeType":"ExpressionStatement","src":"14283:12:11"},{"expression":{"id":2834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2832,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14313:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"32","id":2833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14323:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"14313:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2835,"nodeType":"ExpressionStatement","src":"14313:11:11"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2838,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2769,"src":"14356:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"38","id":2839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14365:1:11","typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"src":"14356:10:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":2841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14369:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14356:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2848,"nodeType":"IfStatement","src":"14352:64:11","trueBody":{"id":2847,"nodeType":"Block","src":"14372:44:11","statements":[{"expression":{"id":2845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2843,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14390:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"hexValue":"31","id":2844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14400:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14390:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2846,"nodeType":"ExpressionStatement","src":"14390:11:11"}]}}]},{"expression":{"id":2850,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2775,"src":"14442:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2773,"id":2851,"nodeType":"Return","src":"14435:13:11"}]},"documentation":{"id":2767,"nodeType":"StructuredDocumentation","src":"13541:246:11","text":" @dev Return the log in base 256 of a positive value rounded towards zero.\n Returns 0 if given 0.\n Adding one to the result gives the number of pairs of hex symbols needed to represent `value` as a hex string."},"id":2853,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"13801:6:11","nodeType":"FunctionDefinition","parameters":{"id":2770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2769,"mutability":"mutable","name":"value","nameLocation":"13816:5:11","nodeType":"VariableDeclaration","scope":2853,"src":"13808:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2768,"name":"uint256","nodeType":"ElementaryTypeName","src":"13808:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13807:15:11"},"returnParameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2772,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2853,"src":"13846:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2771,"name":"uint256","nodeType":"ElementaryTypeName","src":"13846:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13845:9:11"},"scope":2911,"src":"13792:663:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2890,"nodeType":"Block","src":"14692:177:11","statements":[{"id":2889,"nodeType":"UncheckedBlock","src":"14702:161:11","statements":[{"assignments":[2865],"declarations":[{"constant":false,"id":2865,"mutability":"mutable","name":"result","nameLocation":"14734:6:11","nodeType":"VariableDeclaration","scope":2889,"src":"14726:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2864,"name":"uint256","nodeType":"ElementaryTypeName","src":"14726:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2869,"initialValue":{"arguments":[{"id":2867,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"14750:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2866,"name":"log256","nodeType":"Identifier","overloadedDeclarations":[2853,2891],"referencedDeclaration":2853,"src":"14743:6:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":2868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14743:13:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14726:30:11"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2870,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"14777:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2872,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2859,"src":"14804:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2871,"name":"unsignedRoundsUp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2910,"src":"14787:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_enum$_Rounding_$1868_$returns$_t_bool_$","typeString":"function (enum Math.Rounding) pure returns (bool)"}},"id":2873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14787:26:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"31","id":2874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14817:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2875,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2865,"src":"14823:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"33","id":2876,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14833:1:11","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14823:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2878,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14822:13:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2880,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2856,"src":"14838:5:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14817:26:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14787:56:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"30","id":2884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14850:1:11","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"id":2885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"14787:64:11","trueExpression":{"hexValue":"31","id":2883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14846:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"id":2886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14786:66:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"14777:75:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2863,"id":2888,"nodeType":"Return","src":"14770:82:11"}]}]},"documentation":{"id":2854,"nodeType":"StructuredDocumentation","src":"14461:144:11","text":" @dev Return the log in base 256, following the selected rounding direction, of a positive value.\n Returns 0 if given 0."},"id":2891,"implemented":true,"kind":"function","modifiers":[],"name":"log256","nameLocation":"14619:6:11","nodeType":"FunctionDefinition","parameters":{"id":2860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2856,"mutability":"mutable","name":"value","nameLocation":"14634:5:11","nodeType":"VariableDeclaration","scope":2891,"src":"14626:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2855,"name":"uint256","nodeType":"ElementaryTypeName","src":"14626:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2859,"mutability":"mutable","name":"rounding","nameLocation":"14650:8:11","nodeType":"VariableDeclaration","scope":2891,"src":"14641:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2858,"nodeType":"UserDefinedTypeName","pathNode":{"id":2857,"name":"Rounding","nameLocations":["14641:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"14641:8:11"},"referencedDeclaration":1868,"src":"14641:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"14625:34:11"},"returnParameters":{"id":2863,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2862,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2891,"src":"14683:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2861,"name":"uint256","nodeType":"ElementaryTypeName","src":"14683:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14682:9:11"},"scope":2911,"src":"14610:259:11","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2909,"nodeType":"Block","src":"15067:48:11","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":2905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2902,"name":"rounding","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2895,"src":"15090:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}],"id":2901,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15084:5:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint8_$","typeString":"type(uint8)"},"typeName":{"id":2900,"name":"uint8","nodeType":"ElementaryTypeName","src":"15084:5:11","typeDescriptions":{}}},"id":2903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15084:15:11","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"hexValue":"32","id":2904,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15102:1:11","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"15084:19:11","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"31","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15107:1:11","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15084:24:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2899,"id":2908,"nodeType":"Return","src":"15077:31:11"}]},"documentation":{"id":2892,"nodeType":"StructuredDocumentation","src":"14875:113:11","text":" @dev Returns whether a provided rounding mode is considered rounding up for unsigned integers."},"id":2910,"implemented":true,"kind":"function","modifiers":[],"name":"unsignedRoundsUp","nameLocation":"15002:16:11","nodeType":"FunctionDefinition","parameters":{"id":2896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2895,"mutability":"mutable","name":"rounding","nameLocation":"15028:8:11","nodeType":"VariableDeclaration","scope":2910,"src":"15019:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"},"typeName":{"id":2894,"nodeType":"UserDefinedTypeName","pathNode":{"id":2893,"name":"Rounding","nameLocations":["15019:8:11"],"nodeType":"IdentifierPath","referencedDeclaration":1868,"src":"15019:8:11"},"referencedDeclaration":1868,"src":"15019:8:11","typeDescriptions":{"typeIdentifier":"t_enum$_Rounding_$1868","typeString":"enum Math.Rounding"}},"visibility":"internal"}],"src":"15018:19:11"},"returnParameters":{"id":2899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2898,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2910,"src":"15061:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2897,"name":"bool","nodeType":"ElementaryTypeName","src":"15061:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15060:6:11"},"scope":2911,"src":"14993:122:11","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":2912,"src":"203:14914:11","usedErrors":[1863],"usedEvents":[]}],"src":"103:15015:11"},"id":11},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/math/SignedMath.sol","exportedSymbols":{"SignedMath":[3016]},"id":3017,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":2913,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"109:24:12"},{"abstract":false,"baseContracts":[],"canonicalName":"SignedMath","contractDependencies":[],"contractKind":"library","documentation":{"id":2914,"nodeType":"StructuredDocumentation","src":"135:80:12","text":" @dev Standard signed math utilities missing in the Solidity language."},"fullyImplemented":true,"id":3016,"linearizedBaseContracts":[3016],"name":"SignedMath","nameLocation":"224:10:12","nodeType":"ContractDefinition","nodes":[{"body":{"id":2931,"nodeType":"Block","src":"376:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2924,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2917,"src":"393:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":2925,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"397:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"393:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2928,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2919,"src":"405:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"393:13:12","trueExpression":{"id":2927,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2917,"src":"401:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2923,"id":2930,"nodeType":"Return","src":"386:20:12"}]},"documentation":{"id":2915,"nodeType":"StructuredDocumentation","src":"241:66:12","text":" @dev Returns the largest of two signed numbers."},"id":2932,"implemented":true,"kind":"function","modifiers":[],"name":"max","nameLocation":"321:3:12","nodeType":"FunctionDefinition","parameters":{"id":2920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2917,"mutability":"mutable","name":"a","nameLocation":"332:1:12","nodeType":"VariableDeclaration","scope":2932,"src":"325:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2916,"name":"int256","nodeType":"ElementaryTypeName","src":"325:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2919,"mutability":"mutable","name":"b","nameLocation":"342:1:12","nodeType":"VariableDeclaration","scope":2932,"src":"335:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2918,"name":"int256","nodeType":"ElementaryTypeName","src":"335:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"324:20:12"},"returnParameters":{"id":2923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2922,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2932,"src":"368:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2921,"name":"int256","nodeType":"ElementaryTypeName","src":"368:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"367:8:12"},"scope":3016,"src":"312:101:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2949,"nodeType":"Block","src":"555:37:12","statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2942,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"572:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2943,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2937,"src":"576:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"572:5:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":2946,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2937,"src":"584:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":2947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"572:13:12","trueExpression":{"id":2945,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2935,"src":"580:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2941,"id":2948,"nodeType":"Return","src":"565:20:12"}]},"documentation":{"id":2933,"nodeType":"StructuredDocumentation","src":"419:67:12","text":" @dev Returns the smallest of two signed numbers."},"id":2950,"implemented":true,"kind":"function","modifiers":[],"name":"min","nameLocation":"500:3:12","nodeType":"FunctionDefinition","parameters":{"id":2938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2935,"mutability":"mutable","name":"a","nameLocation":"511:1:12","nodeType":"VariableDeclaration","scope":2950,"src":"504:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2934,"name":"int256","nodeType":"ElementaryTypeName","src":"504:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2937,"mutability":"mutable","name":"b","nameLocation":"521:1:12","nodeType":"VariableDeclaration","scope":2950,"src":"514:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2936,"name":"int256","nodeType":"ElementaryTypeName","src":"514:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"503:20:12"},"returnParameters":{"id":2941,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2940,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2950,"src":"547:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2939,"name":"int256","nodeType":"ElementaryTypeName","src":"547:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"546:8:12"},"scope":3016,"src":"491:101:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":2993,"nodeType":"Block","src":"797:162:12","statements":[{"assignments":[2961],"declarations":[{"constant":false,"id":2961,"mutability":"mutable","name":"x","nameLocation":"866:1:12","nodeType":"VariableDeclaration","scope":2993,"src":"859:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2960,"name":"int256","nodeType":"ElementaryTypeName","src":"859:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":2974,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2962,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"871:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"id":2963,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"875:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"871:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2965,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"870:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2971,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2966,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"882:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2967,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"886:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"882:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2969,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"881:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"31","id":2970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"892:1:12","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"881:12:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2972,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"880:14:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"870:24:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"859:35:12"},{"expression":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2975,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"911:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":2980,"name":"x","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2961,"src":"931:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":2979,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"923:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2978,"name":"uint256","nodeType":"ElementaryTypeName","src":"923:7:12","typeDescriptions":{}}},"id":2981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"923:10:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"323535","id":2982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"937:3:12","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"923:17:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2977,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"916:6:12","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":2976,"name":"int256","nodeType":"ElementaryTypeName","src":"916:6:12","typeDescriptions":{}}},"id":2984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"916:25:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":2987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2985,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2953,"src":"945:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"id":2986,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2955,"src":"949:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"945:5:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2988,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"944:7:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"916:35:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":2990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"915:37:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"911:41:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":2959,"id":2992,"nodeType":"Return","src":"904:48:12"}]},"documentation":{"id":2951,"nodeType":"StructuredDocumentation","src":"598:126:12","text":" @dev Returns the average of two signed numbers without overflow.\n The result is rounded towards zero."},"id":2994,"implemented":true,"kind":"function","modifiers":[],"name":"average","nameLocation":"738:7:12","nodeType":"FunctionDefinition","parameters":{"id":2956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2953,"mutability":"mutable","name":"a","nameLocation":"753:1:12","nodeType":"VariableDeclaration","scope":2994,"src":"746:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2952,"name":"int256","nodeType":"ElementaryTypeName","src":"746:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":2955,"mutability":"mutable","name":"b","nameLocation":"763:1:12","nodeType":"VariableDeclaration","scope":2994,"src":"756:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2954,"name":"int256","nodeType":"ElementaryTypeName","src":"756:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"745:20:12"},"returnParameters":{"id":2959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2994,"src":"789:6:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2957,"name":"int256","nodeType":"ElementaryTypeName","src":"789:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"788:8:12"},"scope":3016,"src":"729:230:12","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":3014,"nodeType":"Block","src":"1103:158:12","statements":[{"id":3013,"nodeType":"UncheckedBlock","src":"1113:142:12","statements":[{"expression":{"arguments":[{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3004,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"1228:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":3005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1233:1:12","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1228:6:12","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":3009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"1241:2:12","subExpression":{"id":3008,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"1242:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":3010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"1228:15:12","trueExpression":{"id":3007,"name":"n","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2997,"src":"1237:1:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1220:7:12","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3002,"name":"uint256","nodeType":"ElementaryTypeName","src":"1220:7:12","typeDescriptions":{}}},"id":3011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1220:24:12","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3001,"id":3012,"nodeType":"Return","src":"1213:31:12"}]}]},"documentation":{"id":2995,"nodeType":"StructuredDocumentation","src":"965:78:12","text":" @dev Returns the absolute unsigned value of a signed value."},"id":3015,"implemented":true,"kind":"function","modifiers":[],"name":"abs","nameLocation":"1057:3:12","nodeType":"FunctionDefinition","parameters":{"id":2998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2997,"mutability":"mutable","name":"n","nameLocation":"1068:1:12","nodeType":"VariableDeclaration","scope":3015,"src":"1061:8:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2996,"name":"int256","nodeType":"ElementaryTypeName","src":"1061:6:12","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1060:10:12"},"returnParameters":{"id":3001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3000,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3015,"src":"1094:7:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2999,"name":"uint256","nodeType":"ElementaryTypeName","src":"1094:7:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1093:9:12"},"scope":3016,"src":"1048:213:12","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":3017,"src":"216:1047:12","usedErrors":[],"usedEvents":[]}],"src":"109:1155:12"},"id":12},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"ast":{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","exportedSymbols":{"EnumerableSet":[3629]},"id":3630,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":3018,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"205:24:13"},{"abstract":false,"baseContracts":[],"canonicalName":"EnumerableSet","contractDependencies":[],"contractKind":"library","documentation":{"id":3019,"nodeType":"StructuredDocumentation","src":"231:1098:13","text":" @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```solidity\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported.\n [WARNING]\n ====\n Trying to delete such a structure from storage will likely result in data corruption, rendering the structure\n unusable.\n See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info.\n In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an\n array of EnumerableSet.\n ===="},"fullyImplemented":true,"id":3629,"linearizedBaseContracts":[3629],"name":"EnumerableSet","nameLocation":"1338:13:13","nodeType":"ContractDefinition","nodes":[{"canonicalName":"EnumerableSet.Set","id":3027,"members":[{"constant":false,"id":3022,"mutability":"mutable","name":"_values","nameLocation":"1862:7:13","nodeType":"VariableDeclaration","scope":3027,"src":"1852:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3020,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1852:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3021,"nodeType":"ArrayTypeName","src":"1852:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"},{"constant":false,"id":3026,"mutability":"mutable","name":"_positions","nameLocation":"2054:10:13","nodeType":"VariableDeclaration","scope":3027,"src":"2020:44:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":3025,"keyName":"value","keyNameLocation":"2036:5:13","keyType":{"id":3023,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2028:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2020:33:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3024,"name":"uint256","nodeType":"ElementaryTypeName","src":"2045:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"}],"name":"Set","nameLocation":"1805:3:13","nodeType":"StructDefinition","scope":3629,"src":"1798:273:13","visibility":"public"},{"body":{"id":3068,"nodeType":"Block","src":"2310:337:13","statements":[{"condition":{"id":3042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2324:22:13","subExpression":{"arguments":[{"id":3039,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2335:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},{"id":3040,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"2340:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3038,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"2325:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2325:21:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3066,"nodeType":"Block","src":"2604:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":3064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2625:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3037,"id":3065,"nodeType":"Return","src":"2618:12:13"}]},"id":3067,"nodeType":"IfStatement","src":"2320:321:13","trueBody":{"id":3063,"nodeType":"Block","src":"2348:250:13","statements":[{"expression":{"arguments":[{"id":3048,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"2379:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"expression":{"id":3043,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2362:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3046,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2366:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"2362:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2374:4:13","memberName":"push","nodeType":"MemberAccess","src":"2362:16:13","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer,bytes32)"}},"id":3049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2362:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3050,"nodeType":"ExpressionStatement","src":"2362:23:13"},{"expression":{"id":3059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3051,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2520:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2524:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"2520:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3055,"indexExpression":{"id":3053,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3033,"src":"2535:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2520:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":3056,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3031,"src":"2544:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2548:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"2544:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2556:6:13","memberName":"length","nodeType":"MemberAccess","src":"2544:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2520:42:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3060,"nodeType":"ExpressionStatement","src":"2520:42:13"},{"expression":{"hexValue":"74727565","id":3061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2583:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3037,"id":3062,"nodeType":"Return","src":"2576:11:13"}]}}]},"documentation":{"id":3028,"nodeType":"StructuredDocumentation","src":"2077:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3069,"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"2250:4:13","nodeType":"FunctionDefinition","parameters":{"id":3034,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3031,"mutability":"mutable","name":"set","nameLocation":"2267:3:13","nodeType":"VariableDeclaration","scope":3069,"src":"2255:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3030,"nodeType":"UserDefinedTypeName","pathNode":{"id":3029,"name":"Set","nameLocations":["2255:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"2255:3:13"},"referencedDeclaration":3027,"src":"2255:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3033,"mutability":"mutable","name":"value","nameLocation":"2280:5:13","nodeType":"VariableDeclaration","scope":3069,"src":"2272:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3032,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2272:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2254:32:13"},"returnParameters":{"id":3037,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3036,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3069,"src":"2304:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3035,"name":"bool","nodeType":"ElementaryTypeName","src":"2304:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2303:6:13"},"scope":3629,"src":"2241:406:13","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3152,"nodeType":"Block","src":"2887:1296:13","statements":[{"assignments":[3081],"declarations":[{"constant":false,"id":3081,"mutability":"mutable","name":"position","nameLocation":"2999:8:13","nodeType":"VariableDeclaration","scope":3152,"src":"2991:16:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3080,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3086,"initialValue":{"baseExpression":{"expression":{"id":3082,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3010:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3014:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"3010:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3085,"indexExpression":{"id":3084,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"3025:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3010:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2991:40:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3087,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3046:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3058:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3046:13:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3150,"nodeType":"Block","src":"4140:37:13","statements":[{"expression":{"hexValue":"66616c7365","id":3148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4161:5:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":3079,"id":3149,"nodeType":"Return","src":"4154:12:13"}]},"id":3151,"nodeType":"IfStatement","src":"3042:1135:13","trueBody":{"id":3147,"nodeType":"Block","src":"3061:1073:13","statements":[{"assignments":[3091],"declarations":[{"constant":false,"id":3091,"mutability":"mutable","name":"valueIndex","nameLocation":"3421:10:13","nodeType":"VariableDeclaration","scope":3147,"src":"3413:18:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3090,"name":"uint256","nodeType":"ElementaryTypeName","src":"3413:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3095,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3092,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3434:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3445:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3434:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3413:33:13"},{"assignments":[3097],"declarations":[{"constant":false,"id":3097,"mutability":"mutable","name":"lastIndex","nameLocation":"3468:9:13","nodeType":"VariableDeclaration","scope":3147,"src":"3460:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3096,"name":"uint256","nodeType":"ElementaryTypeName","src":"3460:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3103,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":3098,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3480:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3484:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3480:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3100,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3492:6:13","memberName":"length","nodeType":"MemberAccess","src":"3480:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":3101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3501:1:13","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3480:22:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3460:42:13"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3104,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"3521:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":3105,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3535:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3521:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3131,"nodeType":"IfStatement","src":"3517:378:13","trueBody":{"id":3130,"nodeType":"Block","src":"3546:349:13","statements":[{"assignments":[3108],"declarations":[{"constant":false,"id":3108,"mutability":"mutable","name":"lastValue","nameLocation":"3572:9:13","nodeType":"VariableDeclaration","scope":3130,"src":"3564:17:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3564:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":3113,"initialValue":{"baseExpression":{"expression":{"id":3109,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3584:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3588:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3584:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3112,"indexExpression":{"id":3111,"name":"lastIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3097,"src":"3596:9:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3584:22:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3564:42:13"},{"expression":{"id":3120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3114,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3705:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3709:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3705:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3118,"indexExpression":{"id":3116,"name":"valueIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3091,"src":"3717:10:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3705:23:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3119,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"3731:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3705:35:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3121,"nodeType":"ExpressionStatement","src":"3705:35:13"},{"expression":{"id":3128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":3122,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3844:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3848:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"3844:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3126,"indexExpression":{"id":3124,"name":"lastValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3108,"src":"3859:9:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3844:25:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3127,"name":"position","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3081,"src":"3872:8:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3844:36:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3129,"nodeType":"ExpressionStatement","src":"3844:36:13"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"expression":{"id":3132,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"3973:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3977:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"3973:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3985:3:13","memberName":"pop","nodeType":"MemberAccess","src":"3973:15:13","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_bytes32_$dyn_storage_ptr_$","typeString":"function (bytes32[] storage pointer)"}},"id":3137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3973:17:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3138,"nodeType":"ExpressionStatement","src":"3973:17:13"},{"expression":{"id":3143,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4069:28:13","subExpression":{"baseExpression":{"expression":{"id":3139,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3073,"src":"4076:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3140,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4080:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"4076:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3142,"indexExpression":{"id":3141,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3075,"src":"4091:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4076:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3144,"nodeType":"ExpressionStatement","src":"4069:28:13"},{"expression":{"hexValue":"74727565","id":3145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4119:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3079,"id":3146,"nodeType":"Return","src":"4112:11:13"}]}}]},"documentation":{"id":3070,"nodeType":"StructuredDocumentation","src":"2653:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3153,"implemented":true,"kind":"function","modifiers":[],"name":"_remove","nameLocation":"2824:7:13","nodeType":"FunctionDefinition","parameters":{"id":3076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3073,"mutability":"mutable","name":"set","nameLocation":"2844:3:13","nodeType":"VariableDeclaration","scope":3153,"src":"2832:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3072,"nodeType":"UserDefinedTypeName","pathNode":{"id":3071,"name":"Set","nameLocations":["2832:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"2832:3:13"},"referencedDeclaration":3027,"src":"2832:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3075,"mutability":"mutable","name":"value","nameLocation":"2857:5:13","nodeType":"VariableDeclaration","scope":3153,"src":"2849:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3074,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2849:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2831:32:13"},"returnParameters":{"id":3079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3153,"src":"2881:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3077,"name":"bool","nodeType":"ElementaryTypeName","src":"2881:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2880:6:13"},"scope":3629,"src":"2815:1368:13","stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"body":{"id":3171,"nodeType":"Block","src":"4343:50:13","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"expression":{"id":3164,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3157,"src":"4360:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4364:10:13","memberName":"_positions","nodeType":"MemberAccess","referencedDeclaration":3026,"src":"4360:14:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":3167,"indexExpression":{"id":3166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3159,"src":"4375:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4360:21:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":3168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4385:1:13","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4360:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3163,"id":3170,"nodeType":"Return","src":"4353:33:13"}]},"documentation":{"id":3154,"nodeType":"StructuredDocumentation","src":"4189:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3172,"implemented":true,"kind":"function","modifiers":[],"name":"_contains","nameLocation":"4273:9:13","nodeType":"FunctionDefinition","parameters":{"id":3160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3157,"mutability":"mutable","name":"set","nameLocation":"4295:3:13","nodeType":"VariableDeclaration","scope":3172,"src":"4283:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3156,"nodeType":"UserDefinedTypeName","pathNode":{"id":3155,"name":"Set","nameLocations":["4283:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"4283:3:13"},"referencedDeclaration":3027,"src":"4283:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3159,"mutability":"mutable","name":"value","nameLocation":"4308:5:13","nodeType":"VariableDeclaration","scope":3172,"src":"4300:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3158,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4300:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4282:32:13"},"returnParameters":{"id":3163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3172,"src":"4337:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3161,"name":"bool","nodeType":"ElementaryTypeName","src":"4337:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4336:6:13"},"scope":3629,"src":"4264:129:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3185,"nodeType":"Block","src":"4539:42:13","statements":[{"expression":{"expression":{"expression":{"id":3181,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3176,"src":"4556:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4560:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"4556:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4568:6:13","memberName":"length","nodeType":"MemberAccess","src":"4556:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3180,"id":3184,"nodeType":"Return","src":"4549:25:13"}]},"documentation":{"id":3173,"nodeType":"StructuredDocumentation","src":"4399:70:13","text":" @dev Returns the number of values on the set. O(1)."},"id":3186,"implemented":true,"kind":"function","modifiers":[],"name":"_length","nameLocation":"4483:7:13","nodeType":"FunctionDefinition","parameters":{"id":3177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3176,"mutability":"mutable","name":"set","nameLocation":"4503:3:13","nodeType":"VariableDeclaration","scope":3186,"src":"4491:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3175,"nodeType":"UserDefinedTypeName","pathNode":{"id":3174,"name":"Set","nameLocations":["4491:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"4491:3:13"},"referencedDeclaration":3027,"src":"4491:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"4490:17:13"},"returnParameters":{"id":3180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3179,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3186,"src":"4530:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3178,"name":"uint256","nodeType":"ElementaryTypeName","src":"4530:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4529:9:13"},"scope":3629,"src":"4474:107:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3202,"nodeType":"Block","src":"4999:42:13","statements":[{"expression":{"baseExpression":{"expression":{"id":3197,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3190,"src":"5016:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5020:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"5016:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"id":3200,"indexExpression":{"id":3199,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3192,"src":"5028:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5016:18:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3196,"id":3201,"nodeType":"Return","src":"5009:25:13"}]},"documentation":{"id":3187,"nodeType":"StructuredDocumentation","src":"4587:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3203,"implemented":true,"kind":"function","modifiers":[],"name":"_at","nameLocation":"4932:3:13","nodeType":"FunctionDefinition","parameters":{"id":3193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3190,"mutability":"mutable","name":"set","nameLocation":"4948:3:13","nodeType":"VariableDeclaration","scope":3203,"src":"4936:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3189,"nodeType":"UserDefinedTypeName","pathNode":{"id":3188,"name":"Set","nameLocations":["4936:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"4936:3:13"},"referencedDeclaration":3027,"src":"4936:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"},{"constant":false,"id":3192,"mutability":"mutable","name":"index","nameLocation":"4961:5:13","nodeType":"VariableDeclaration","scope":3203,"src":"4953:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3191,"name":"uint256","nodeType":"ElementaryTypeName","src":"4953:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4935:32:13"},"returnParameters":{"id":3196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3203,"src":"4990:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4990:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4989:9:13"},"scope":3629,"src":"4923:118:13","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":3216,"nodeType":"Block","src":"5655:35:13","statements":[{"expression":{"expression":{"id":3213,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3207,"src":"5672:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set storage pointer"}},"id":3214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5676:7:13","memberName":"_values","nodeType":"MemberAccess","referencedDeclaration":3022,"src":"5672:11:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage","typeString":"bytes32[] storage ref"}},"functionReturnParameters":3212,"id":3215,"nodeType":"Return","src":"5665:18:13"}]},"documentation":{"id":3204,"nodeType":"StructuredDocumentation","src":"5047:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3217,"implemented":true,"kind":"function","modifiers":[],"name":"_values","nameLocation":"5590:7:13","nodeType":"FunctionDefinition","parameters":{"id":3208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3207,"mutability":"mutable","name":"set","nameLocation":"5610:3:13","nodeType":"VariableDeclaration","scope":3217,"src":"5598:15:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3206,"nodeType":"UserDefinedTypeName","pathNode":{"id":3205,"name":"Set","nameLocations":["5598:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"5598:3:13"},"referencedDeclaration":3027,"src":"5598:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"src":"5597:17:13"},"returnParameters":{"id":3212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3211,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3217,"src":"5637:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5637:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3210,"nodeType":"ArrayTypeName","src":"5637:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"5636:18:13"},"scope":3629,"src":"5581:109:13","stateMutability":"view","virtual":false,"visibility":"private"},{"canonicalName":"EnumerableSet.Bytes32Set","id":3221,"members":[{"constant":false,"id":3220,"mutability":"mutable","name":"_inner","nameLocation":"5747:6:13","nodeType":"VariableDeclaration","scope":3221,"src":"5743:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3219,"nodeType":"UserDefinedTypeName","pathNode":{"id":3218,"name":"Set","nameLocations":["5743:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"5743:3:13"},"referencedDeclaration":3027,"src":"5743:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"Bytes32Set","nameLocation":"5722:10:13","nodeType":"StructDefinition","scope":3629,"src":"5715:45:13","visibility":"public"},{"body":{"id":3238,"nodeType":"Block","src":"6006:47:13","statements":[{"expression":{"arguments":[{"expression":{"id":3233,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3225,"src":"6028:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3234,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6032:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6028:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3235,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3227,"src":"6040:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3232,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"6023:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6023:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3231,"id":3237,"nodeType":"Return","src":"6016:30:13"}]},"documentation":{"id":3222,"nodeType":"StructuredDocumentation","src":"5766:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3239,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"5939:3:13","nodeType":"FunctionDefinition","parameters":{"id":3228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3225,"mutability":"mutable","name":"set","nameLocation":"5962:3:13","nodeType":"VariableDeclaration","scope":3239,"src":"5943:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3224,"nodeType":"UserDefinedTypeName","pathNode":{"id":3223,"name":"Bytes32Set","nameLocations":["5943:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"5943:10:13"},"referencedDeclaration":3221,"src":"5943:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3227,"mutability":"mutable","name":"value","nameLocation":"5975:5:13","nodeType":"VariableDeclaration","scope":3239,"src":"5967:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5967:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5942:39:13"},"returnParameters":{"id":3231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3230,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3239,"src":"6000:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3229,"name":"bool","nodeType":"ElementaryTypeName","src":"6000:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5999:6:13"},"scope":3629,"src":"5930:123:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3256,"nodeType":"Block","src":"6300:50:13","statements":[{"expression":{"arguments":[{"expression":{"id":3251,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3243,"src":"6325:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6329:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6325:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3253,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3245,"src":"6337:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3250,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"6317:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:26:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3249,"id":3255,"nodeType":"Return","src":"6310:33:13"}]},"documentation":{"id":3240,"nodeType":"StructuredDocumentation","src":"6059:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3257,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"6230:6:13","nodeType":"FunctionDefinition","parameters":{"id":3246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3243,"mutability":"mutable","name":"set","nameLocation":"6256:3:13","nodeType":"VariableDeclaration","scope":3257,"src":"6237:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3242,"nodeType":"UserDefinedTypeName","pathNode":{"id":3241,"name":"Bytes32Set","nameLocations":["6237:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"6237:10:13"},"referencedDeclaration":3221,"src":"6237:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3245,"mutability":"mutable","name":"value","nameLocation":"6269:5:13","nodeType":"VariableDeclaration","scope":3257,"src":"6261:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3244,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6261:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6236:39:13"},"returnParameters":{"id":3249,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3248,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3257,"src":"6294:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3247,"name":"bool","nodeType":"ElementaryTypeName","src":"6294:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6293:6:13"},"scope":3629,"src":"6221:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3274,"nodeType":"Block","src":"6517:52:13","statements":[{"expression":{"arguments":[{"expression":{"id":3269,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3261,"src":"6544:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6548:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6544:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3271,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3263,"src":"6556:5:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3268,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"6534:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6534:28:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3267,"id":3273,"nodeType":"Return","src":"6527:35:13"}]},"documentation":{"id":3258,"nodeType":"StructuredDocumentation","src":"6356:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3275,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"6440:8:13","nodeType":"FunctionDefinition","parameters":{"id":3264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3261,"mutability":"mutable","name":"set","nameLocation":"6468:3:13","nodeType":"VariableDeclaration","scope":3275,"src":"6449:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3260,"nodeType":"UserDefinedTypeName","pathNode":{"id":3259,"name":"Bytes32Set","nameLocations":["6449:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"6449:10:13"},"referencedDeclaration":3221,"src":"6449:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3263,"mutability":"mutable","name":"value","nameLocation":"6481:5:13","nodeType":"VariableDeclaration","scope":3275,"src":"6473:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6473:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6448:39:13"},"returnParameters":{"id":3267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3275,"src":"6511:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3265,"name":"bool","nodeType":"ElementaryTypeName","src":"6511:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6510:6:13"},"scope":3629,"src":"6431:138:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3289,"nodeType":"Block","src":"6722:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":3285,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3279,"src":"6747:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3286,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6751:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"6747:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3284,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"6739:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":3287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6739:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3283,"id":3288,"nodeType":"Return","src":"6732:26:13"}]},"documentation":{"id":3276,"nodeType":"StructuredDocumentation","src":"6575:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":3290,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"6659:6:13","nodeType":"FunctionDefinition","parameters":{"id":3280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3279,"mutability":"mutable","name":"set","nameLocation":"6685:3:13","nodeType":"VariableDeclaration","scope":3290,"src":"6666:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3278,"nodeType":"UserDefinedTypeName","pathNode":{"id":3277,"name":"Bytes32Set","nameLocations":["6666:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"6666:10:13"},"referencedDeclaration":3221,"src":"6666:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"6665:24:13"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3290,"src":"6713:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3281,"name":"uint256","nodeType":"ElementaryTypeName","src":"6713:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6712:9:13"},"scope":3629,"src":"6650:115:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3307,"nodeType":"Block","src":"7190:46:13","statements":[{"expression":{"arguments":[{"expression":{"id":3302,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3294,"src":"7211:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7215:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"7211:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3304,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3296,"src":"7223:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3301,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"7207:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7207:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":3300,"id":3306,"nodeType":"Return","src":"7200:29:13"}]},"documentation":{"id":3291,"nodeType":"StructuredDocumentation","src":"6771:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3308,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"7116:2:13","nodeType":"FunctionDefinition","parameters":{"id":3297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3294,"mutability":"mutable","name":"set","nameLocation":"7138:3:13","nodeType":"VariableDeclaration","scope":3308,"src":"7119:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3293,"nodeType":"UserDefinedTypeName","pathNode":{"id":3292,"name":"Bytes32Set","nameLocations":["7119:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"7119:10:13"},"referencedDeclaration":3221,"src":"7119:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"},{"constant":false,"id":3296,"mutability":"mutable","name":"index","nameLocation":"7151:5:13","nodeType":"VariableDeclaration","scope":3308,"src":"7143:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3295,"name":"uint256","nodeType":"ElementaryTypeName","src":"7143:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7118:39:13"},"returnParameters":{"id":3300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3308,"src":"7181:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3298,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7181:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7180:9:13"},"scope":3629,"src":"7107:129:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3337,"nodeType":"Block","src":"7857:219:13","statements":[{"assignments":[3322],"declarations":[{"constant":false,"id":3322,"mutability":"mutable","name":"store","nameLocation":"7884:5:13","nodeType":"VariableDeclaration","scope":3337,"src":"7867:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3320,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7867:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3321,"nodeType":"ArrayTypeName","src":"7867:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3327,"initialValue":{"arguments":[{"expression":{"id":3324,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3312,"src":"7900:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set storage pointer"}},"id":3325,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7904:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3220,"src":"7900:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3323,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"7892:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7892:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"7867:44:13"},{"assignments":[3332],"declarations":[{"constant":false,"id":3332,"mutability":"mutable","name":"result","nameLocation":"7938:6:13","nodeType":"VariableDeclaration","scope":3337,"src":"7921:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3330,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7921:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3331,"nodeType":"ArrayTypeName","src":"7921:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3333,"nodeType":"VariableDeclarationStatement","src":"7921:23:13"},{"AST":{"nodeType":"YulBlock","src":"8007:39:13","statements":[{"nodeType":"YulAssignment","src":"8021:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"8031:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"8021:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3332,"isOffset":false,"isSlot":false,"src":"8021:6:13","valueSize":1},{"declaration":3322,"isOffset":false,"isSlot":false,"src":"8031:5:13","valueSize":1}],"id":3334,"nodeType":"InlineAssembly","src":"7998:48:13"},{"expression":{"id":3335,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"8063:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"functionReturnParameters":3317,"id":3336,"nodeType":"Return","src":"8056:13:13"}]},"documentation":{"id":3309,"nodeType":"StructuredDocumentation","src":"7242:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3338,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"7785:6:13","nodeType":"FunctionDefinition","parameters":{"id":3313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3312,"mutability":"mutable","name":"set","nameLocation":"7811:3:13","nodeType":"VariableDeclaration","scope":3338,"src":"7792:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"},"typeName":{"id":3311,"nodeType":"UserDefinedTypeName","pathNode":{"id":3310,"name":"Bytes32Set","nameLocations":["7792:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3221,"src":"7792:10:13"},"referencedDeclaration":3221,"src":"7792:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Bytes32Set_$3221_storage_ptr","typeString":"struct EnumerableSet.Bytes32Set"}},"visibility":"internal"}],"src":"7791:24:13"},"returnParameters":{"id":3317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3338,"src":"7839:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3314,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7839:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3315,"nodeType":"ArrayTypeName","src":"7839:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"src":"7838:18:13"},"scope":3629,"src":"7776:300:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.AddressSet","id":3342,"members":[{"constant":false,"id":3341,"mutability":"mutable","name":"_inner","nameLocation":"8133:6:13","nodeType":"VariableDeclaration","scope":3342,"src":"8129:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3340,"nodeType":"UserDefinedTypeName","pathNode":{"id":3339,"name":"Set","nameLocations":["8129:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"8129:3:13"},"referencedDeclaration":3027,"src":"8129:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"AddressSet","nameLocation":"8108:10:13","nodeType":"StructDefinition","scope":3629,"src":"8101:45:13","visibility":"public"},{"body":{"id":3368,"nodeType":"Block","src":"8392:74:13","statements":[{"expression":{"arguments":[{"expression":{"id":3354,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"8414:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3355,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8418:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"8414:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":3362,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3348,"src":"8450:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3361,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8442:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3360,"name":"uint160","nodeType":"ElementaryTypeName","src":"8442:7:13","typeDescriptions":{}}},"id":3363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8442:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8434:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3358,"name":"uint256","nodeType":"ElementaryTypeName","src":"8434:7:13","typeDescriptions":{}}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8434:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8426:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3356,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8426:7:13","typeDescriptions":{}}},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8426:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3353,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"8409:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8409:50:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3352,"id":3367,"nodeType":"Return","src":"8402:57:13"}]},"documentation":{"id":3343,"nodeType":"StructuredDocumentation","src":"8152:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3369,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"8325:3:13","nodeType":"FunctionDefinition","parameters":{"id":3349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3346,"mutability":"mutable","name":"set","nameLocation":"8348:3:13","nodeType":"VariableDeclaration","scope":3369,"src":"8329:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3345,"nodeType":"UserDefinedTypeName","pathNode":{"id":3344,"name":"AddressSet","nameLocations":["8329:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"8329:10:13"},"referencedDeclaration":3342,"src":"8329:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3348,"mutability":"mutable","name":"value","nameLocation":"8361:5:13","nodeType":"VariableDeclaration","scope":3369,"src":"8353:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3347,"name":"address","nodeType":"ElementaryTypeName","src":"8353:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8328:39:13"},"returnParameters":{"id":3352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3351,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3369,"src":"8386:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3350,"name":"bool","nodeType":"ElementaryTypeName","src":"8386:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8385:6:13"},"scope":3629,"src":"8316:150:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3395,"nodeType":"Block","src":"8713:77:13","statements":[{"expression":{"arguments":[{"expression":{"id":3381,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3373,"src":"8738:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8742:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"8738:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":3389,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3375,"src":"8774:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8766:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3387,"name":"uint160","nodeType":"ElementaryTypeName","src":"8766:7:13","typeDescriptions":{}}},"id":3390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8766:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8758:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3385,"name":"uint256","nodeType":"ElementaryTypeName","src":"8758:7:13","typeDescriptions":{}}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8758:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8750:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3383,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8750:7:13","typeDescriptions":{}}},"id":3392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8750:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3380,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"8730:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8730:53:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3379,"id":3394,"nodeType":"Return","src":"8723:60:13"}]},"documentation":{"id":3370,"nodeType":"StructuredDocumentation","src":"8472:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3396,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"8643:6:13","nodeType":"FunctionDefinition","parameters":{"id":3376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3373,"mutability":"mutable","name":"set","nameLocation":"8669:3:13","nodeType":"VariableDeclaration","scope":3396,"src":"8650:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3372,"nodeType":"UserDefinedTypeName","pathNode":{"id":3371,"name":"AddressSet","nameLocations":["8650:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"8650:10:13"},"referencedDeclaration":3342,"src":"8650:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3375,"mutability":"mutable","name":"value","nameLocation":"8682:5:13","nodeType":"VariableDeclaration","scope":3396,"src":"8674:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3374,"name":"address","nodeType":"ElementaryTypeName","src":"8674:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8649:39:13"},"returnParameters":{"id":3379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3378,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3396,"src":"8707:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3377,"name":"bool","nodeType":"ElementaryTypeName","src":"8707:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8706:6:13"},"scope":3629,"src":"8634:156:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3422,"nodeType":"Block","src":"8957:79:13","statements":[{"expression":{"arguments":[{"expression":{"id":3408,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3400,"src":"8984:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8988:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"8984:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"arguments":[{"arguments":[{"id":3416,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3402,"src":"9020:5:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9012:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3414,"name":"uint160","nodeType":"ElementaryTypeName","src":"9012:7:13","typeDescriptions":{}}},"id":3417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9004:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3412,"name":"uint256","nodeType":"ElementaryTypeName","src":"9004:7:13","typeDescriptions":{}}},"id":3418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9004:23:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8996:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3410,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8996:7:13","typeDescriptions":{}}},"id":3419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8996:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3407,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"8974:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8974:55:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3406,"id":3421,"nodeType":"Return","src":"8967:62:13"}]},"documentation":{"id":3397,"nodeType":"StructuredDocumentation","src":"8796:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3423,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"8880:8:13","nodeType":"FunctionDefinition","parameters":{"id":3403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3400,"mutability":"mutable","name":"set","nameLocation":"8908:3:13","nodeType":"VariableDeclaration","scope":3423,"src":"8889:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3399,"nodeType":"UserDefinedTypeName","pathNode":{"id":3398,"name":"AddressSet","nameLocations":["8889:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"8889:10:13"},"referencedDeclaration":3342,"src":"8889:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3402,"mutability":"mutable","name":"value","nameLocation":"8921:5:13","nodeType":"VariableDeclaration","scope":3423,"src":"8913:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3401,"name":"address","nodeType":"ElementaryTypeName","src":"8913:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8888:39:13"},"returnParameters":{"id":3406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3423,"src":"8951:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3404,"name":"bool","nodeType":"ElementaryTypeName","src":"8951:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8950:6:13"},"scope":3629,"src":"8871:165:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3437,"nodeType":"Block","src":"9189:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":3433,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3427,"src":"9214:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9218:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"9214:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3432,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"9206:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":3435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9206:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3431,"id":3436,"nodeType":"Return","src":"9199:26:13"}]},"documentation":{"id":3424,"nodeType":"StructuredDocumentation","src":"9042:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":3438,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"9126:6:13","nodeType":"FunctionDefinition","parameters":{"id":3428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3427,"mutability":"mutable","name":"set","nameLocation":"9152:3:13","nodeType":"VariableDeclaration","scope":3438,"src":"9133:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3426,"nodeType":"UserDefinedTypeName","pathNode":{"id":3425,"name":"AddressSet","nameLocations":["9133:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"9133:10:13"},"referencedDeclaration":3342,"src":"9133:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"9132:24:13"},"returnParameters":{"id":3431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3438,"src":"9180:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3429,"name":"uint256","nodeType":"ElementaryTypeName","src":"9180:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9179:9:13"},"scope":3629,"src":"9117:115:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3464,"nodeType":"Block","src":"9657:73:13","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"expression":{"id":3456,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3442,"src":"9702:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3457,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9706:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"9702:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3458,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3444,"src":"9714:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3455,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"9698:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9698:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9690:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3453,"name":"uint256","nodeType":"ElementaryTypeName","src":"9690:7:13","typeDescriptions":{}}},"id":3460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9690:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9682:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":3451,"name":"uint160","nodeType":"ElementaryTypeName","src":"9682:7:13","typeDescriptions":{}}},"id":3461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9682:40:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":3450,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9674:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3449,"name":"address","nodeType":"ElementaryTypeName","src":"9674:7:13","typeDescriptions":{}}},"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9674:49:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":3448,"id":3463,"nodeType":"Return","src":"9667:56:13"}]},"documentation":{"id":3439,"nodeType":"StructuredDocumentation","src":"9238:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3465,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"9583:2:13","nodeType":"FunctionDefinition","parameters":{"id":3445,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3442,"mutability":"mutable","name":"set","nameLocation":"9605:3:13","nodeType":"VariableDeclaration","scope":3465,"src":"9586:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3441,"nodeType":"UserDefinedTypeName","pathNode":{"id":3440,"name":"AddressSet","nameLocations":["9586:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"9586:10:13"},"referencedDeclaration":3342,"src":"9586:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"},{"constant":false,"id":3444,"mutability":"mutable","name":"index","nameLocation":"9618:5:13","nodeType":"VariableDeclaration","scope":3465,"src":"9610:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3443,"name":"uint256","nodeType":"ElementaryTypeName","src":"9610:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9585:39:13"},"returnParameters":{"id":3448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3447,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3465,"src":"9648:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3446,"name":"address","nodeType":"ElementaryTypeName","src":"9648:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9647:9:13"},"scope":3629,"src":"9574:156:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3494,"nodeType":"Block","src":"10351:219:13","statements":[{"assignments":[3479],"declarations":[{"constant":false,"id":3479,"mutability":"mutable","name":"store","nameLocation":"10378:5:13","nodeType":"VariableDeclaration","scope":3494,"src":"10361:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10361:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3478,"nodeType":"ArrayTypeName","src":"10361:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3484,"initialValue":{"arguments":[{"expression":{"id":3481,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3469,"src":"10394:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet storage pointer"}},"id":3482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10398:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3341,"src":"10394:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3480,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"10386:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10386:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10361:44:13"},{"assignments":[3489],"declarations":[{"constant":false,"id":3489,"mutability":"mutable","name":"result","nameLocation":"10432:6:13","nodeType":"VariableDeclaration","scope":3494,"src":"10415:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3487,"name":"address","nodeType":"ElementaryTypeName","src":"10415:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3488,"nodeType":"ArrayTypeName","src":"10415:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":3490,"nodeType":"VariableDeclarationStatement","src":"10415:23:13"},{"AST":{"nodeType":"YulBlock","src":"10501:39:13","statements":[{"nodeType":"YulAssignment","src":"10515:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"10525:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"10515:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3489,"isOffset":false,"isSlot":false,"src":"10515:6:13","valueSize":1},{"declaration":3479,"isOffset":false,"isSlot":false,"src":"10525:5:13","valueSize":1}],"id":3491,"nodeType":"InlineAssembly","src":"10492:48:13"},{"expression":{"id":3492,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3489,"src":"10557:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":3474,"id":3493,"nodeType":"Return","src":"10550:13:13"}]},"documentation":{"id":3466,"nodeType":"StructuredDocumentation","src":"9736:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3495,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"10279:6:13","nodeType":"FunctionDefinition","parameters":{"id":3470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3469,"mutability":"mutable","name":"set","nameLocation":"10305:3:13","nodeType":"VariableDeclaration","scope":3495,"src":"10286:22:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":3468,"nodeType":"UserDefinedTypeName","pathNode":{"id":3467,"name":"AddressSet","nameLocations":["10286:10:13"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"10286:10:13"},"referencedDeclaration":3342,"src":"10286:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"internal"}],"src":"10285:24:13"},"returnParameters":{"id":3474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3495,"src":"10333:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":3471,"name":"address","nodeType":"ElementaryTypeName","src":"10333:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3472,"nodeType":"ArrayTypeName","src":"10333:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10332:18:13"},"scope":3629,"src":"10270:300:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"canonicalName":"EnumerableSet.UintSet","id":3499,"members":[{"constant":false,"id":3498,"mutability":"mutable","name":"_inner","nameLocation":"10621:6:13","nodeType":"VariableDeclaration","scope":3499,"src":"10617:10:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"},"typeName":{"id":3497,"nodeType":"UserDefinedTypeName","pathNode":{"id":3496,"name":"Set","nameLocations":["10617:3:13"],"nodeType":"IdentifierPath","referencedDeclaration":3027,"src":"10617:3:13"},"referencedDeclaration":3027,"src":"10617:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage_ptr","typeString":"struct EnumerableSet.Set"}},"visibility":"internal"}],"name":"UintSet","nameLocation":"10599:7:13","nodeType":"StructDefinition","scope":3629,"src":"10592:42:13","visibility":"public"},{"body":{"id":3519,"nodeType":"Block","src":"10877:56:13","statements":[{"expression":{"arguments":[{"expression":{"id":3511,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"10899:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10903:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"10899:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":3515,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3505,"src":"10919:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10911:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10911:7:13","typeDescriptions":{}}},"id":3516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10911:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3510,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3069,"src":"10894:4:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10894:32:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3509,"id":3518,"nodeType":"Return","src":"10887:39:13"}]},"documentation":{"id":3500,"nodeType":"StructuredDocumentation","src":"10640:159:13","text":" @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present."},"id":3520,"implemented":true,"kind":"function","modifiers":[],"name":"add","nameLocation":"10813:3:13","nodeType":"FunctionDefinition","parameters":{"id":3506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3503,"mutability":"mutable","name":"set","nameLocation":"10833:3:13","nodeType":"VariableDeclaration","scope":3520,"src":"10817:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3502,"nodeType":"UserDefinedTypeName","pathNode":{"id":3501,"name":"UintSet","nameLocations":["10817:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"10817:7:13"},"referencedDeclaration":3499,"src":"10817:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3505,"mutability":"mutable","name":"value","nameLocation":"10846:5:13","nodeType":"VariableDeclaration","scope":3520,"src":"10838:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3504,"name":"uint256","nodeType":"ElementaryTypeName","src":"10838:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10816:36:13"},"returnParameters":{"id":3509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3508,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3520,"src":"10871:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3507,"name":"bool","nodeType":"ElementaryTypeName","src":"10871:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10870:6:13"},"scope":3629,"src":"10804:129:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3540,"nodeType":"Block","src":"11177:59:13","statements":[{"expression":{"arguments":[{"expression":{"id":3532,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3524,"src":"11202:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11206:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"11202:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":3536,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3526,"src":"11222:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3535,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11214:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3534,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11214:7:13","typeDescriptions":{}}},"id":3537,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11214:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3531,"name":"_remove","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3153,"src":"11194:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)"}},"id":3538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11194:35:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3530,"id":3539,"nodeType":"Return","src":"11187:42:13"}]},"documentation":{"id":3521,"nodeType":"StructuredDocumentation","src":"10939:157:13","text":" @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present."},"id":3541,"implemented":true,"kind":"function","modifiers":[],"name":"remove","nameLocation":"11110:6:13","nodeType":"FunctionDefinition","parameters":{"id":3527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3524,"mutability":"mutable","name":"set","nameLocation":"11133:3:13","nodeType":"VariableDeclaration","scope":3541,"src":"11117:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3523,"nodeType":"UserDefinedTypeName","pathNode":{"id":3522,"name":"UintSet","nameLocations":["11117:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"11117:7:13"},"referencedDeclaration":3499,"src":"11117:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3526,"mutability":"mutable","name":"value","nameLocation":"11146:5:13","nodeType":"VariableDeclaration","scope":3541,"src":"11138:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3525,"name":"uint256","nodeType":"ElementaryTypeName","src":"11138:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11116:36:13"},"returnParameters":{"id":3530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3529,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3541,"src":"11171:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3528,"name":"bool","nodeType":"ElementaryTypeName","src":"11171:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11170:6:13"},"scope":3629,"src":"11101:135:13","stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"body":{"id":3561,"nodeType":"Block","src":"11400:61:13","statements":[{"expression":{"arguments":[{"expression":{"id":3553,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3545,"src":"11427:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11431:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"11427:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"arguments":[{"id":3557,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3547,"src":"11447:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11439:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":3555,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11439:7:13","typeDescriptions":{}}},"id":3558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11439:14:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3552,"name":"_contains","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3172,"src":"11417:9:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_bytes32_$returns$_t_bool_$","typeString":"function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)"}},"id":3559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11417:37:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3551,"id":3560,"nodeType":"Return","src":"11410:44:13"}]},"documentation":{"id":3542,"nodeType":"StructuredDocumentation","src":"11242:70:13","text":" @dev Returns true if the value is in the set. O(1)."},"id":3562,"implemented":true,"kind":"function","modifiers":[],"name":"contains","nameLocation":"11326:8:13","nodeType":"FunctionDefinition","parameters":{"id":3548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3545,"mutability":"mutable","name":"set","nameLocation":"11351:3:13","nodeType":"VariableDeclaration","scope":3562,"src":"11335:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3544,"nodeType":"UserDefinedTypeName","pathNode":{"id":3543,"name":"UintSet","nameLocations":["11335:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"11335:7:13"},"referencedDeclaration":3499,"src":"11335:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3547,"mutability":"mutable","name":"value","nameLocation":"11364:5:13","nodeType":"VariableDeclaration","scope":3562,"src":"11356:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3546,"name":"uint256","nodeType":"ElementaryTypeName","src":"11356:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11334:36:13"},"returnParameters":{"id":3551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3562,"src":"11394:4:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3549,"name":"bool","nodeType":"ElementaryTypeName","src":"11394:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11393:6:13"},"scope":3629,"src":"11317:144:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3576,"nodeType":"Block","src":"11611:43:13","statements":[{"expression":{"arguments":[{"expression":{"id":3572,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3566,"src":"11636:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11640:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"11636:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3571,"name":"_length","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3186,"src":"11628:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_uint256_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (uint256)"}},"id":3574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11628:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3570,"id":3575,"nodeType":"Return","src":"11621:26:13"}]},"documentation":{"id":3563,"nodeType":"StructuredDocumentation","src":"11467:70:13","text":" @dev Returns the number of values in the set. O(1)."},"id":3577,"implemented":true,"kind":"function","modifiers":[],"name":"length","nameLocation":"11551:6:13","nodeType":"FunctionDefinition","parameters":{"id":3567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3566,"mutability":"mutable","name":"set","nameLocation":"11574:3:13","nodeType":"VariableDeclaration","scope":3577,"src":"11558:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3565,"nodeType":"UserDefinedTypeName","pathNode":{"id":3564,"name":"UintSet","nameLocations":["11558:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"11558:7:13"},"referencedDeclaration":3499,"src":"11558:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"11557:21:13"},"returnParameters":{"id":3570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3577,"src":"11602:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3568,"name":"uint256","nodeType":"ElementaryTypeName","src":"11602:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11601:9:13"},"scope":3629,"src":"11542:112:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3597,"nodeType":"Block","src":"12076:55:13","statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":3591,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3581,"src":"12105:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12109:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"12105:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}},{"id":3593,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3583,"src":"12117:5:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3590,"name":"_at","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3203,"src":"12101:3:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)"}},"id":3594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12101:22:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12093:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3588,"name":"uint256","nodeType":"ElementaryTypeName","src":"12093:7:13","typeDescriptions":{}}},"id":3595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12093:31:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3587,"id":3596,"nodeType":"Return","src":"12086:38:13"}]},"documentation":{"id":3578,"nodeType":"StructuredDocumentation","src":"11660:331:13","text":" @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}."},"id":3598,"implemented":true,"kind":"function","modifiers":[],"name":"at","nameLocation":"12005:2:13","nodeType":"FunctionDefinition","parameters":{"id":3584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3581,"mutability":"mutable","name":"set","nameLocation":"12024:3:13","nodeType":"VariableDeclaration","scope":3598,"src":"12008:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3580,"nodeType":"UserDefinedTypeName","pathNode":{"id":3579,"name":"UintSet","nameLocations":["12008:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"12008:7:13"},"referencedDeclaration":3499,"src":"12008:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"},{"constant":false,"id":3583,"mutability":"mutable","name":"index","nameLocation":"12037:5:13","nodeType":"VariableDeclaration","scope":3598,"src":"12029:13:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3582,"name":"uint256","nodeType":"ElementaryTypeName","src":"12029:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12007:36:13"},"returnParameters":{"id":3587,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3586,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3598,"src":"12067:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3585,"name":"uint256","nodeType":"ElementaryTypeName","src":"12067:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12066:9:13"},"scope":3629,"src":"11996:135:13","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":3627,"nodeType":"Block","src":"12749:219:13","statements":[{"assignments":[3612],"declarations":[{"constant":false,"id":3612,"mutability":"mutable","name":"store","nameLocation":"12776:5:13","nodeType":"VariableDeclaration","scope":3627,"src":"12759:22:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":3610,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12759:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3611,"nodeType":"ArrayTypeName","src":"12759:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"visibility":"internal"}],"id":3617,"initialValue":{"arguments":[{"expression":{"id":3614,"name":"set","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3602,"src":"12792:3:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet storage pointer"}},"id":3615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12796:6:13","memberName":"_inner","nodeType":"MemberAccess","referencedDeclaration":3498,"src":"12792:10:13","typeDescriptions":{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Set_$3027_storage","typeString":"struct EnumerableSet.Set storage ref"}],"id":3613,"name":"_values","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3217,"src":"12784:7:13","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Set_$3027_storage_ptr_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$","typeString":"function (struct EnumerableSet.Set storage pointer) view returns (bytes32[] memory)"}},"id":3616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12784:19:13","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_memory_ptr","typeString":"bytes32[] memory"}},"nodeType":"VariableDeclarationStatement","src":"12759:44:13"},{"assignments":[3622],"declarations":[{"constant":false,"id":3622,"mutability":"mutable","name":"result","nameLocation":"12830:6:13","nodeType":"VariableDeclaration","scope":3627,"src":"12813:23:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3620,"name":"uint256","nodeType":"ElementaryTypeName","src":"12813:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3621,"nodeType":"ArrayTypeName","src":"12813:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":3623,"nodeType":"VariableDeclarationStatement","src":"12813:23:13"},{"AST":{"nodeType":"YulBlock","src":"12899:39:13","statements":[{"nodeType":"YulAssignment","src":"12913:15:13","value":{"name":"store","nodeType":"YulIdentifier","src":"12923:5:13"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"12913:6:13"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":3622,"isOffset":false,"isSlot":false,"src":"12913:6:13","valueSize":1},{"declaration":3612,"isOffset":false,"isSlot":false,"src":"12923:5:13","valueSize":1}],"id":3624,"nodeType":"InlineAssembly","src":"12890:48:13"},{"expression":{"id":3625,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3622,"src":"12955:6:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":3607,"id":3626,"nodeType":"Return","src":"12948:13:13"}]},"documentation":{"id":3599,"nodeType":"StructuredDocumentation","src":"12137:529:13","text":" @dev Return the entire set in an array\n WARNING: This operation will copy the entire storage to memory, which can be quite expensive. This is designed\n to mostly be used by view accessors that are queried without any gas fees. Developers should keep in mind that\n this function has an unbounded cost, and using it as part of a state-changing function may render the function\n uncallable if the set grows to a point where copying to memory consumes too much gas to fit in a block."},"id":3628,"implemented":true,"kind":"function","modifiers":[],"name":"values","nameLocation":"12680:6:13","nodeType":"FunctionDefinition","parameters":{"id":3603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3602,"mutability":"mutable","name":"set","nameLocation":"12703:3:13","nodeType":"VariableDeclaration","scope":3628,"src":"12687:19:13","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"},"typeName":{"id":3601,"nodeType":"UserDefinedTypeName","pathNode":{"id":3600,"name":"UintSet","nameLocations":["12687:7:13"],"nodeType":"IdentifierPath","referencedDeclaration":3499,"src":"12687:7:13"},"referencedDeclaration":3499,"src":"12687:7:13","typeDescriptions":{"typeIdentifier":"t_struct$_UintSet_$3499_storage_ptr","typeString":"struct EnumerableSet.UintSet"}},"visibility":"internal"}],"src":"12686:21:13"},"returnParameters":{"id":3607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3628,"src":"12731:16:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"12731:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3605,"nodeType":"ArrayTypeName","src":"12731:9:13","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"12730:18:13"},"scope":3629,"src":"12671:297:13","stateMutability":"view","virtual":false,"visibility":"internal"}],"scope":3630,"src":"1330:11640:13","usedErrors":[],"usedEvents":[]}],"src":"205:12766:13"},"id":13},"contracts/Bridged.sol":{"ast":{"absolutePath":"contracts/Bridged.sol","exportedSymbols":{"Bridged":[3756],"Create2":[1180],"ECDSA":[1783],"EnumerableSet":[3629],"Initializable":[390],"MessageHashUtils":[1857],"Relayer":[4434],"Strings":[1435],"ValidatorManager":[4775],"console":[12860]},"id":3757,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3631,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:14"},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":3632,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":12861,"src":"72:29:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts/proxy/utils/Initializable.sol","id":3633,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":391,"src":"103:63:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Relayer.sol","file":"./Relayer.sol","id":3634,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3757,"sourceUnit":4435,"src":"167:23:14","symbolAliases":[],"unitAlias":""},{"abstract":true,"baseContracts":[{"baseName":{"id":3635,"name":"Initializable","nameLocations":["221:13:14"],"nodeType":"IdentifierPath","referencedDeclaration":390,"src":"221:13:14"},"id":3636,"nodeType":"InheritanceSpecifier","src":"221:13:14"}],"canonicalName":"Bridged","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3756,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[3756,390],"name":"Bridged","nameLocation":"210:7:14","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3639,"mutability":"mutable","name":"_relayer","nameLocation":"257:8:14","nodeType":"VariableDeclaration","scope":3756,"src":"241:24:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"},"typeName":{"id":3638,"nodeType":"UserDefinedTypeName","pathNode":{"id":3637,"name":"Relayer","nameLocations":["241:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":4434,"src":"241:7:14"},"referencedDeclaration":4434,"src":"241:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"visibility":"private"},{"body":{"id":3651,"nodeType":"Block","src":"328:35:14","statements":[{"expression":{"id":3649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3647,"name":"_relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"338:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3648,"name":"relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3642,"src":"349:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"src":"338:18:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"id":3650,"nodeType":"ExpressionStatement","src":"338:18:14"}]},"functionSelector":"c4d66de8","id":3652,"implemented":true,"kind":"function","modifiers":[{"id":3645,"kind":"modifierInvocation","modifierName":{"id":3644,"name":"initializer","nameLocations":["316:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":244,"src":"316:11:14"},"nodeType":"ModifierInvocation","src":"316:11:14"}],"name":"initialize","nameLocation":"281:10:14","nodeType":"FunctionDefinition","parameters":{"id":3643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3642,"mutability":"mutable","name":"relayer","nameLocation":"300:7:14","nodeType":"VariableDeclaration","scope":3652,"src":"292:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"},"typeName":{"id":3641,"nodeType":"UserDefinedTypeName","pathNode":{"id":3640,"name":"Relayer","nameLocations":["292:7:14"],"nodeType":"IdentifierPath","referencedDeclaration":4434,"src":"292:7:14"},"referencedDeclaration":4434,"src":"292:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"visibility":"internal"}],"src":"291:17:14"},"returnParameters":{"id":3646,"nodeType":"ParameterList","parameters":[],"src":"328:0:14"},"scope":3756,"src":"272:91:14","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3666,"nodeType":"Block","src":"392:97:14","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3655,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"410:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"414:6:14","memberName":"sender","nodeType":"MemberAccess","src":"410:10:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"id":3659,"name":"_relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"432:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}],"id":3658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"424:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3657,"name":"address","nodeType":"ElementaryTypeName","src":"424:7:14","typeDescriptions":{}}},"id":3660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"424:17:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"410:31:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4d7573742062652063616c6c65642062792072656c61796572","id":3662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"443:27:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057","typeString":"literal_string \"Must be called by relayer\""},"value":"Must be called by relayer"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057","typeString":"literal_string \"Must be called by relayer\""}],"id":3654,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"402:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"402:69:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3664,"nodeType":"ExpressionStatement","src":"402:69:14"},{"id":3665,"nodeType":"PlaceholderStatement","src":"481:1:14"}]},"id":3667,"name":"onlyRelayer","nameLocation":"378:11:14","nodeType":"ModifierDefinition","parameters":{"id":3653,"nodeType":"ParameterList","parameters":[],"src":"389:2:14"},"src":"369:120:14","virtual":false,"visibility":"internal"},{"body":{"id":3699,"nodeType":"Block","src":"645:124:14","statements":[{"expression":{"arguments":[{"hexValue":"646973706174636865642829","id":3683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"667:14:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_406595f4dd7f396ab5e82085b525e09aa90c999e6237fc3c83265df1b315cdbc","typeString":"literal_string \"dispatched()\""},"value":"dispatched()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_406595f4dd7f396ab5e82085b525e09aa90c999e6237fc3c83265df1b315cdbc","typeString":"literal_string \"dispatched()\""}],"expression":{"id":3680,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"655:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":3682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"663:3:14","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"655:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"655:27:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3685,"nodeType":"ExpressionStatement","src":"655:27:14"},{"expression":{"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3686,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3676,"src":"693:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3687,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3678,"src":"702:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3688,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"692:19:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3695,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3671,"src":"757:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3689,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3669,"src":"714:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"721:4:14","memberName":"call","nodeType":"MemberAccess","src":"714:11:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value","gas"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":3691,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"733:3:14","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"737:5:14","memberName":"value","nodeType":"MemberAccess","src":"733:9:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030303030","id":3693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"749:6:14","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"src":"714:42:14","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":3696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"714:48:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"692:70:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3698,"nodeType":"ExpressionStatement","src":"692:70:14"}]},"functionSelector":"5d903f03","id":3700,"implemented":true,"kind":"function","modifiers":[{"id":3674,"kind":"modifierInvocation","modifierName":{"id":3673,"name":"onlyRelayer","nameLocations":["587:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"587:11:14"},"nodeType":"ModifierInvocation","src":"587:11:14"}],"name":"dispatched","nameLocation":"504:10:14","nodeType":"FunctionDefinition","parameters":{"id":3672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3669,"mutability":"mutable","name":"target","nameLocation":"532:6:14","nodeType":"VariableDeclaration","scope":3700,"src":"524:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3668,"name":"address","nodeType":"ElementaryTypeName","src":"524:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3671,"mutability":"mutable","name":"call","nameLocation":"561:4:14","nodeType":"VariableDeclaration","scope":3700,"src":"548:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3670,"name":"bytes","nodeType":"ElementaryTypeName","src":"548:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"514:57:14"},"returnParameters":{"id":3679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3676,"mutability":"mutable","name":"success","nameLocation":"613:7:14","nodeType":"VariableDeclaration","scope":3700,"src":"608:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3675,"name":"bool","nodeType":"ElementaryTypeName","src":"608:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3678,"mutability":"mutable","name":"response","nameLocation":"635:8:14","nodeType":"VariableDeclaration","scope":3700,"src":"622:21:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3677,"name":"bytes","nodeType":"ElementaryTypeName","src":"622:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"607:37:14"},"scope":3756,"src":"495:274:14","stateMutability":"payable","virtual":false,"visibility":"public"},{"body":{"id":3730,"nodeType":"Block","src":"919:109:14","statements":[{"expression":{"arguments":[{"hexValue":"717565726965642829","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"941:11:14","typeDescriptions":{"typeIdentifier":"t_stringliteral_f6b676a21b1e38ae2b96d4578c9ad9968fa16442c69ee030e1ee1503f28bc5ff","typeString":"literal_string \"queried()\""},"value":"queried()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f6b676a21b1e38ae2b96d4578c9ad9968fa16442c69ee030e1ee1503f28bc5ff","typeString":"literal_string \"queried()\""}],"expression":{"id":3713,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"929:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"937:3:14","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"929:11:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"929:24:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3718,"nodeType":"ExpressionStatement","src":"929:24:14"},{"expression":{"id":3728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":3719,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3709,"src":"964:7:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3720,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3711,"src":"973:8:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":3721,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"963:19:14","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3726,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3704,"src":"1016:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3722,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3702,"src":"985:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"992:10:14","memberName":"staticcall","nodeType":"MemberAccess","src":"985:17:14","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["gas"],"nodeType":"FunctionCallOptions","options":[{"hexValue":"313030303030","id":3724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1008:6:14","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"src":"985:30:14","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gas","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":3727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"985:36:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"963:58:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3729,"nodeType":"ExpressionStatement","src":"963:58:14"}]},"functionSelector":"82dcc731","id":3731,"implemented":true,"kind":"function","modifiers":[{"id":3707,"kind":"modifierInvocation","modifierName":{"id":3706,"name":"onlyRelayer","nameLocations":["861:11:14"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"861:11:14"},"nodeType":"ModifierInvocation","src":"861:11:14"}],"name":"queried","nameLocation":"784:7:14","nodeType":"FunctionDefinition","parameters":{"id":3705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3702,"mutability":"mutable","name":"target","nameLocation":"809:6:14","nodeType":"VariableDeclaration","scope":3731,"src":"801:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3701,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3704,"mutability":"mutable","name":"call","nameLocation":"838:4:14","nodeType":"VariableDeclaration","scope":3731,"src":"825:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3703,"name":"bytes","nodeType":"ElementaryTypeName","src":"825:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"791:57:14"},"returnParameters":{"id":3712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3709,"mutability":"mutable","name":"success","nameLocation":"887:7:14","nodeType":"VariableDeclaration","scope":3731,"src":"882:12:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3708,"name":"bool","nodeType":"ElementaryTypeName","src":"882:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3711,"mutability":"mutable","name":"response","nameLocation":"909:8:14","nodeType":"VariableDeclaration","scope":3731,"src":"896:21:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3710,"name":"bytes","nodeType":"ElementaryTypeName","src":"896:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"881:37:14"},"scope":3756,"src":"775:253:14","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":3754,"nodeType":"Block","src":"1184:73:14","statements":[{"expression":{"id":3752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3744,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3742,"src":"1194:5:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3747,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3733,"src":"1217:6:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3748,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3735,"src":"1225:4:14","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":3749,"name":"readonly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3737,"src":"1231:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":3750,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3739,"src":"1241:8:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":3745,"name":"_relayer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3639,"src":"1202:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}},"id":3746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1211:5:14","memberName":"relay","nodeType":"MemberAccess","referencedDeclaration":4178,"src":"1202:14:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) external returns (uint256)"}},"id":3751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:48:14","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1194:56:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3753,"nodeType":"ExpressionStatement","src":"1194:56:14"}]},"id":3755,"implemented":true,"kind":"function","modifiers":[],"name":"relay","nameLocation":"1043:5:14","nodeType":"FunctionDefinition","parameters":{"id":3740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3733,"mutability":"mutable","name":"target","nameLocation":"1066:6:14","nodeType":"VariableDeclaration","scope":3755,"src":"1058:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3732,"name":"address","nodeType":"ElementaryTypeName","src":"1058:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3735,"mutability":"mutable","name":"call","nameLocation":"1095:4:14","nodeType":"VariableDeclaration","scope":3755,"src":"1082:17:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3734,"name":"bytes","nodeType":"ElementaryTypeName","src":"1082:5:14","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":3737,"mutability":"mutable","name":"readonly","nameLocation":"1114:8:14","nodeType":"VariableDeclaration","scope":3755,"src":"1109:13:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3736,"name":"bool","nodeType":"ElementaryTypeName","src":"1109:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":3739,"mutability":"mutable","name":"callback","nameLocation":"1139:8:14","nodeType":"VariableDeclaration","scope":3755,"src":"1132:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":3738,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1132:6:14","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1048:105:14"},"returnParameters":{"id":3743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3742,"mutability":"mutable","name":"nonce","nameLocation":"1177:5:14","nodeType":"VariableDeclaration","scope":3755,"src":"1172:10:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3741,"name":"uint","nodeType":"ElementaryTypeName","src":"1172:4:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1171:12:14"},"scope":3756,"src":"1034:223:14","stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"scope":3757,"src":"192:1067:14","usedErrors":[153,156],"usedEvents":[161]}],"src":"46:1214:14"},"id":14},"contracts/Collector.sol":{"ast":{"absolutePath":"contracts/Collector.sol","exportedSymbols":{"Collector":[3802],"ECDSA":[1783],"EnumerableSet":[3629],"MessageHashUtils":[1857],"Strings":[1435],"ValidatorManager":[4775]},"id":3803,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":3758,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:15"},{"absolutePath":"contracts/ValidatorManager.sol","file":"./ValidatorManager.sol","id":3759,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":3803,"sourceUnit":4776,"src":"72:32:15","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"Collector","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3802,"linearizedBaseContracts":[3802],"name":"Collector","nameLocation":"115:9:15","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3762,"mutability":"mutable","name":"validatorManager","nameLocation":"156:16:15","nodeType":"VariableDeclaration","scope":3802,"src":"131:41:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":3761,"nodeType":"UserDefinedTypeName","pathNode":{"id":3760,"name":"ValidatorManager","nameLocations":["131:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"131:16:15"},"referencedDeclaration":4775,"src":"131:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"private"},{"anonymous":false,"eventSelector":"84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e0","id":3768,"name":"Echoed","nameLocation":"184:6:15","nodeType":"EventDefinition","parameters":{"id":3767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3764,"indexed":true,"mutability":"mutable","name":"hash","nameLocation":"207:4:15","nodeType":"VariableDeclaration","scope":3768,"src":"191:20:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"191:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3766,"indexed":false,"mutability":"mutable","name":"signature","nameLocation":"219:9:15","nodeType":"VariableDeclaration","scope":3768,"src":"213:15:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3765,"name":"bytes","nodeType":"ElementaryTypeName","src":"213:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"190:39:15"},"src":"178:52:15"},{"body":{"id":3778,"nodeType":"Block","src":"284:53:15","statements":[{"expression":{"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3774,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"294:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3775,"name":"_validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3771,"src":"313:17:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"src":"294:36:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":3777,"nodeType":"ExpressionStatement","src":"294:36:15"}]},"id":3779,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3771,"mutability":"mutable","name":"_validatorManager","nameLocation":"265:17:15","nodeType":"VariableDeclaration","scope":3779,"src":"248:34:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":3770,"nodeType":"UserDefinedTypeName","pathNode":{"id":3769,"name":"ValidatorManager","nameLocations":["248:16:15"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"248:16:15"},"referencedDeclaration":4775,"src":"248:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"internal"}],"src":"247:36:15"},"returnParameters":{"id":3773,"nodeType":"ParameterList","parameters":[],"src":"284:0:15"},"scope":3802,"src":"236:101:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3800,"nodeType":"Block","src":"402:168:15","statements":[{"expression":{"arguments":[{"arguments":[{"id":3789,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"468:4:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3790,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"474:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":3787,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3762,"src":"433:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":3788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"450:17:15","memberName":"validateSignature","nodeType":"MemberAccess","referencedDeclaration":4774,"src":"433:34:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes32,bytes memory) view external returns (bool)"}},"id":3791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"433:51:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"57726f6e672076616c696461746f72","id":3792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"498:17:15","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945","typeString":"literal_string \"Wrong validator\""},"value":"Wrong validator"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945","typeString":"literal_string \"Wrong validator\""}],"id":3786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"412:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"412:113:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3794,"nodeType":"ExpressionStatement","src":"412:113:15"},{"eventCall":{"arguments":[{"id":3796,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3781,"src":"547:4:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":3797,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3783,"src":"553:9:15","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":3795,"name":"Echoed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3768,"src":"540:6:15","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes32,bytes memory)"}},"id":3798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"540:23:15","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3799,"nodeType":"EmitStatement","src":"535:28:15"}]},"functionSelector":"274b9f10","id":3801,"implemented":true,"kind":"function","modifiers":[],"name":"echo","nameLocation":"352:4:15","nodeType":"FunctionDefinition","parameters":{"id":3784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3781,"mutability":"mutable","name":"hash","nameLocation":"365:4:15","nodeType":"VariableDeclaration","scope":3801,"src":"357:12:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3780,"name":"bytes32","nodeType":"ElementaryTypeName","src":"357:7:15","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":3783,"mutability":"mutable","name":"signature","nameLocation":"384:9:15","nodeType":"VariableDeclaration","scope":3801,"src":"371:22:15","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":3782,"name":"bytes","nodeType":"ElementaryTypeName","src":"371:5:15","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"356:38:15"},"returnParameters":{"id":3785,"nodeType":"ParameterList","parameters":[],"src":"402:0:15"},"scope":3802,"src":"343:227:15","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":3803,"src":"106:466:15","usedErrors":[],"usedEvents":[3768]}],"src":"46:527:15"},"id":15},"contracts/ERC20Bridge.sol":{"ast":{"absolutePath":"contracts/ERC20Bridge.sol","exportedSymbols":{"Bridged":[3756],"BridgedERC20":[3880],"Context":[1077],"Create2":[1180],"ECDSA":[1783],"ERC20":[905],"ERC20Bridge":[4046],"ERC20Burnable":[1029],"EnumerableSet":[3629],"IERC20":[983],"IERC20Errors":[41],"IERC20Metadata":[1055],"Initializable":[390],"MessageHashUtils":[1857],"MyToken":[3894],"Relayer":[4434],"Strings":[1435],"ValidatorManager":[4775],"console":[12860]},"id":4047,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":3804,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"39:24:16"},{"absolutePath":"contracts/Bridged.sol","file":"./Bridged.sol","id":3805,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4047,"sourceUnit":3757,"src":"65:23:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","id":3806,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4047,"sourceUnit":906,"src":"90:55:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","file":"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol","id":3807,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4047,"sourceUnit":1030,"src":"146:74:16","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":3808,"name":"ERC20","nameLocations":["247:5:16"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"247:5:16"},"id":3809,"nodeType":"InheritanceSpecifier","src":"247:5:16"},{"baseName":{"id":3810,"name":"ERC20Burnable","nameLocations":["254:13:16"],"nodeType":"IdentifierPath","referencedDeclaration":1029,"src":"254:13:16"},"id":3811,"nodeType":"InheritanceSpecifier","src":"254:13:16"}],"canonicalName":"BridgedERC20","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3880,"linearizedBaseContracts":[3880,1029,905,41,1055,983,1077],"name":"BridgedERC20","nameLocation":"231:12:16","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3813,"mutability":"mutable","name":"_bridge","nameLocation":"282:7:16","nodeType":"VariableDeclaration","scope":3880,"src":"274:15:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3812,"name":"address","nodeType":"ElementaryTypeName","src":"274:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"body":{"id":3836,"nodeType":"Block","src":"421:67:16","statements":[{"expression":{"id":3828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3826,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"431:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":3827,"name":"bridge_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3819,"src":"441:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"431:17:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3829,"nodeType":"ExpressionStatement","src":"431:17:16"},{"expression":{"arguments":[{"expression":{"id":3831,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"464:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"468:6:16","memberName":"sender","nodeType":"MemberAccess","src":"464:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"31303030","id":3833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"476:4:16","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":3830,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"458:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"458:23:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3835,"nodeType":"ExpressionStatement","src":"458:23:16"}]},"id":3837,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3822,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3815,"src":"405:5:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":3823,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3817,"src":"412:7:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":3824,"kind":"baseConstructorSpecifier","modifierName":{"id":3821,"name":"ERC20","nameLocations":["399:5:16"],"nodeType":"IdentifierPath","referencedDeclaration":905,"src":"399:5:16"},"nodeType":"ModifierInvocation","src":"399:21:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3815,"mutability":"mutable","name":"name_","nameLocation":"331:5:16","nodeType":"VariableDeclaration","scope":3837,"src":"317:19:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3814,"name":"string","nodeType":"ElementaryTypeName","src":"317:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3817,"mutability":"mutable","name":"symbol_","nameLocation":"360:7:16","nodeType":"VariableDeclaration","scope":3837,"src":"346:21:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3816,"name":"string","nodeType":"ElementaryTypeName","src":"346:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":3819,"mutability":"mutable","name":"bridge_","nameLocation":"385:7:16","nodeType":"VariableDeclaration","scope":3837,"src":"377:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3818,"name":"address","nodeType":"ElementaryTypeName","src":"377:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"307:91:16"},"returnParameters":{"id":3825,"nodeType":"ParameterList","parameters":[],"src":"421:0:16"},"scope":3880,"src":"296:192:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3848,"nodeType":"Block","src":"516:76:16","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3840,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"534:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"538:6:16","memberName":"sender","nodeType":"MemberAccess","src":"534:10:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":3842,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3813,"src":"548:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"534:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f742074686520627269646765","id":3844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"557:16:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3","typeString":"literal_string \"Not the bridge\""},"value":"Not the bridge"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3","typeString":"literal_string \"Not the bridge\""}],"id":3839,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"526:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"526:48:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3846,"nodeType":"ExpressionStatement","src":"526:48:16"},{"id":3847,"nodeType":"PlaceholderStatement","src":"584:1:16"}]},"id":3849,"name":"onlyBridge","nameLocation":"503:10:16","nodeType":"ModifierDefinition","parameters":{"id":3838,"nodeType":"ParameterList","parameters":[],"src":"513:2:16"},"src":"494:98:16","virtual":false,"visibility":"internal"},{"body":{"id":3863,"nodeType":"Block","src":"658:34:16","statements":[{"expression":{"arguments":[{"id":3859,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3851,"src":"674:2:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3853,"src":"678:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3858,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":745,"src":"668:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"668:17:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3862,"nodeType":"ExpressionStatement","src":"668:17:16"}]},"functionSelector":"40c10f19","id":3864,"implemented":true,"kind":"function","modifiers":[{"id":3856,"kind":"modifierInvocation","modifierName":{"id":3855,"name":"onlyBridge","nameLocations":["647:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":3849,"src":"647:10:16"},"nodeType":"ModifierInvocation","src":"647:10:16"}],"name":"mint","nameLocation":"607:4:16","nodeType":"FunctionDefinition","parameters":{"id":3854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3851,"mutability":"mutable","name":"to","nameLocation":"620:2:16","nodeType":"VariableDeclaration","scope":3864,"src":"612:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3850,"name":"address","nodeType":"ElementaryTypeName","src":"612:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3853,"mutability":"mutable","name":"amount","nameLocation":"632:6:16","nodeType":"VariableDeclaration","scope":3864,"src":"624:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3852,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"611:28:16"},"returnParameters":{"id":3857,"nodeType":"ParameterList","parameters":[],"src":"658:0:16"},"scope":3880,"src":"598:94:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3878,"nodeType":"Block","src":"760:39:16","statements":[{"expression":{"arguments":[{"id":3874,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3866,"src":"779:4:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3875,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3868,"src":"785:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3873,"name":"burnFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1028,"src":"770:8:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":3876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"770:22:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3877,"nodeType":"ExpressionStatement","src":"770:22:16"}]},"functionSelector":"9dc29fac","id":3879,"implemented":true,"kind":"function","modifiers":[{"id":3871,"kind":"modifierInvocation","modifierName":{"id":3870,"name":"onlyBridge","nameLocations":["749:10:16"],"nodeType":"IdentifierPath","referencedDeclaration":3849,"src":"749:10:16"},"nodeType":"ModifierInvocation","src":"749:10:16"}],"name":"burn","nameLocation":"707:4:16","nodeType":"FunctionDefinition","parameters":{"id":3869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3866,"mutability":"mutable","name":"from","nameLocation":"720:4:16","nodeType":"VariableDeclaration","scope":3879,"src":"712:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3865,"name":"address","nodeType":"ElementaryTypeName","src":"712:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3868,"mutability":"mutable","name":"amount","nameLocation":"734:6:16","nodeType":"VariableDeclaration","scope":3879,"src":"726:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3867,"name":"uint256","nodeType":"ElementaryTypeName","src":"726:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"711:30:16"},"returnParameters":{"id":3872,"nodeType":"ParameterList","parameters":[],"src":"760:0:16"},"scope":3880,"src":"698:101:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4047,"src":"222:579:16","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]},{"abstract":false,"baseContracts":[{"baseName":{"id":3881,"name":"BridgedERC20","nameLocations":["823:12:16"],"nodeType":"IdentifierPath","referencedDeclaration":3880,"src":"823:12:16"},"id":3882,"nodeType":"InheritanceSpecifier","src":"823:12:16"}],"canonicalName":"MyToken","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":3894,"linearizedBaseContracts":[3894,3880,1029,905,41,1055,983,1077],"name":"MyToken","nameLocation":"812:7:16","nodeType":"ContractDefinition","nodes":[{"body":{"id":3892,"nodeType":"Block","src":"911:2:16","statements":[]},"id":3893,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"hexValue":"4d79546f6b656e","id":3887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"884:9:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_245c734e6d4ec044daf7beffa09d54d4bafba490113c199734d790b04a7390e5","typeString":"literal_string \"MyToken\""},"value":"MyToken"},{"hexValue":"4d544b","id":3888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"895:5:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_793539e36336d70961c91bdb898dff4b065dbb5ef5ac709025f5b68be91dd01e","typeString":"literal_string \"MTK\""},"value":"MTK"},{"id":3889,"name":"bridge_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3884,"src":"902:7:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3890,"kind":"baseConstructorSpecifier","modifierName":{"id":3886,"name":"BridgedERC20","nameLocations":["871:12:16"],"nodeType":"IdentifierPath","referencedDeclaration":3880,"src":"871:12:16"},"nodeType":"ModifierInvocation","src":"871:39:16"}],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":3885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3884,"mutability":"mutable","name":"bridge_","nameLocation":"862:7:16","nodeType":"VariableDeclaration","scope":3893,"src":"854:15:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3883,"name":"address","nodeType":"ElementaryTypeName","src":"854:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"853:17:16"},"returnParameters":{"id":3891,"nodeType":"ParameterList","parameters":[],"src":"911:0:16"},"scope":3894,"src":"842:71:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4047,"src":"803:112:16","usedErrors":[11,16,21,30,35,40],"usedEvents":[917,926]},{"abstract":false,"baseContracts":[{"baseName":{"id":3895,"name":"Bridged","nameLocations":["941:7:16"],"nodeType":"IdentifierPath","referencedDeclaration":3756,"src":"941:7:16"},"id":3896,"nodeType":"InheritanceSpecifier","src":"941:7:16"}],"canonicalName":"ERC20Bridge","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4046,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[4046,3756,390],"name":"ERC20Bridge","nameLocation":"926:11:16","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"eventSelector":"f9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da5408320","id":3904,"name":"Started","nameLocation":"961:7:16","nodeType":"EventDefinition","parameters":{"id":3903,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3898,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"969:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3897,"name":"address","nodeType":"ElementaryTypeName","src":"969:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3900,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"978:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3899,"name":"address","nodeType":"ElementaryTypeName","src":"978:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3902,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3904,"src":"987:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3901,"name":"uint","nodeType":"ElementaryTypeName","src":"987:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"968:24:16"},"src":"955:38:16"},{"body":{"id":3949,"nodeType":"Block","src":"1115:297:16","statements":[{"expression":{"arguments":[{"id":3919,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1153:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":3922,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1168:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}],"id":3921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1160:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3920,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:16","typeDescriptions":{}}},"id":3923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1160:13:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3924,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1175:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3916,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"1133:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3915,"name":"MyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"1125:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MyToken_$3894_$","typeString":"type(contract MyToken)"}},"id":3917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MyToken_$3894","typeString":"contract MyToken"}},"id":3918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1140:12:16","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":588,"src":"1125:27:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":3925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1125:56:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3926,"nodeType":"ExpressionStatement","src":"1125:56:16"},{"expression":{"id":3941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3927,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3913,"src":"1191:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3929,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"1218:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"6d696e7428616464726573732c75696e7432353629","id":3932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1261:23:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842","typeString":"literal_string \"mint(address,uint256)\""},"value":"mint(address,uint256)"},{"id":3933,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1286:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3934,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1293:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40c10f19c047ae7dfa66d6312b683d2ea3dfbcb4159e96b967c5f4b0a86f2842","typeString":"literal_string \"mint(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3930,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1237:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3931,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1241:19:16","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1237:23:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1237:62:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":3936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1313:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"expression":{"expression":{"id":3937,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1332:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}},"id":3938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1337:6:16","memberName":"finish","nodeType":"MemberAccess","referencedDeclaration":4045,"src":"1332:11:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bool,bytes memory,uint256) external"}},"id":3939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1344:8:16","memberName":"selector","nodeType":"MemberAccess","src":"1332:20:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3928,"name":"relay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"1199:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) returns (uint256)"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1199:163:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1191:171:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3942,"nodeType":"ExpressionStatement","src":"1191:171:16"},{"eventCall":{"arguments":[{"id":3944,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3906,"src":"1385:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3945,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3908,"src":"1392:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3946,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3910,"src":"1399:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3943,"name":"Started","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"1377:7:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1377:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3948,"nodeType":"EmitStatement","src":"1372:33:16"}]},"functionSelector":"87121759","id":3950,"implemented":true,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"1008:6:16","nodeType":"FunctionDefinition","parameters":{"id":3911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3906,"mutability":"mutable","name":"token","nameLocation":"1032:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1024:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3905,"name":"address","nodeType":"ElementaryTypeName","src":"1024:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3908,"mutability":"mutable","name":"owner","nameLocation":"1055:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1047:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3907,"name":"address","nodeType":"ElementaryTypeName","src":"1047:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3910,"mutability":"mutable","name":"value","nameLocation":"1075:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1070:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3909,"name":"uint","nodeType":"ElementaryTypeName","src":"1070:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:72:16"},"returnParameters":{"id":3914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3913,"mutability":"mutable","name":"nonce","nameLocation":"1108:5:16","nodeType":"VariableDeclaration","scope":3950,"src":"1103:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3912,"name":"uint","nodeType":"ElementaryTypeName","src":"1103:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1102:12:16"},"scope":4046,"src":"999:413:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":3991,"nodeType":"Block","src":"1532:278:16","statements":[{"expression":{"arguments":[{"id":3965,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"1562:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3966,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3956,"src":"1569:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":3962,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1550:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":3961,"name":"MyToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3894,"src":"1542:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MyToken_$3894_$","typeString":"type(contract MyToken)"}},"id":3963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1542:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_MyToken_$3894","typeString":"contract MyToken"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1557:4:16","memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":3879,"src":"1542:19:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256) external"}},"id":3967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1542:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3968,"nodeType":"ExpressionStatement","src":"1542:33:16"},{"expression":{"id":3983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":3969,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3959,"src":"1585:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3971,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1612:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"7472616e7366657228616464726573732c75696e7432353629","id":3974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1655:27:16","typeDescriptions":{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""},"value":"transfer(address,uint256)"},{"id":3975,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"1684:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3976,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3956,"src":"1691:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":3972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1631:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1635:19:16","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1631:23:16","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":3977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1631:66:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":3978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1711:5:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"expression":{"expression":{"id":3979,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1730:4:16","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Bridge_$4046","typeString":"contract ERC20Bridge"}},"id":3980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1735:6:16","memberName":"finish","nodeType":"MemberAccess","referencedDeclaration":4045,"src":"1730:11:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bool,bytes memory,uint256) external"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1742:8:16","memberName":"selector","nodeType":"MemberAccess","src":"1730:20:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":3970,"name":"relay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"1593:5:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) returns (uint256)"}},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1593:167:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1585:175:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3984,"nodeType":"ExpressionStatement","src":"1585:175:16"},{"eventCall":{"arguments":[{"id":3986,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3952,"src":"1783:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3987,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3954,"src":"1790:5:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3988,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3956,"src":"1797:5:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3985,"name":"Started","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3904,"src":"1775:7:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":3989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1775:28:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3990,"nodeType":"EmitStatement","src":"1770:33:16"}]},"functionSelector":"71006c09","id":3992,"implemented":true,"kind":"function","modifiers":[],"name":"exit","nameLocation":"1427:4:16","nodeType":"FunctionDefinition","parameters":{"id":3957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3952,"mutability":"mutable","name":"token","nameLocation":"1449:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1441:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3951,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3954,"mutability":"mutable","name":"owner","nameLocation":"1472:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1464:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3953,"name":"address","nodeType":"ElementaryTypeName","src":"1464:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3956,"mutability":"mutable","name":"value","nameLocation":"1492:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1487:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3955,"name":"uint","nodeType":"ElementaryTypeName","src":"1487:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1431:72:16"},"returnParameters":{"id":3960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3959,"mutability":"mutable","name":"nonce","nameLocation":"1525:5:16","nodeType":"VariableDeclaration","scope":3992,"src":"1520:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3958,"name":"uint","nodeType":"ElementaryTypeName","src":"1520:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1519:12:16"},"scope":4046,"src":"1418:392:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c","id":3994,"name":"Succeeded","nameLocation":"1822:9:16","nodeType":"EventDefinition","parameters":{"id":3993,"nodeType":"ParameterList","parameters":[],"src":"1831:2:16"},"src":"1816:18:16"},{"anonymous":false,"eventSelector":"c65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51","id":3998,"name":"Failed","nameLocation":"1845:6:16","nodeType":"EventDefinition","parameters":{"id":3997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3996,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3998,"src":"1852:6:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3995,"name":"string","nodeType":"ElementaryTypeName","src":"1852:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1851:8:16"},"src":"1839:21:16"},{"body":{"id":4044,"nodeType":"Block","src":"1977:228:16","statements":[{"condition":{"id":4009,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4000,"src":"1991:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4042,"nodeType":"Block","src":"2047:152:16","statements":[{"assignments":[4015],"declarations":[{"constant":false,"id":4015,"mutability":"mutable","name":"sig","nameLocation":"2068:3:16","nodeType":"VariableDeclaration","scope":4042,"src":"2061:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4014,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2061:6:16","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":4022,"initialValue":{"arguments":[{"baseExpression":{"id":4018,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"2081:3:16","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":4019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2086:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":4020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2081:7:16","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2074:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4016,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2074:6:16","typeDescriptions":{}}},"id":4021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2074:15:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"2061:28:16"},{"assignments":[4024],"declarations":[{"constant":false,"id":4024,"mutability":"mutable","name":"err","nameLocation":"2116:3:16","nodeType":"VariableDeclaration","scope":4042,"src":"2103:16:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4023,"name":"bytes","nodeType":"ElementaryTypeName","src":"2103:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4031,"initialValue":{"arguments":[{"baseExpression":{"id":4027,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4002,"src":"2128:3:16","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"2128:7:16","startExpression":{"hexValue":"34","id":4028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:16","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4026,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2122:5:16","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4025,"name":"bytes","nodeType":"ElementaryTypeName","src":"2122:5:16","typeDescriptions":{}}},"id":4030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2122:14:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"2103:33:16"},{"eventCall":{"arguments":[{"arguments":[{"id":4035,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4024,"src":"2173:3:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2179:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4036,"name":"string","nodeType":"ElementaryTypeName","src":"2179:6:16","typeDescriptions":{}}}],"id":4038,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2178:8:16","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":4033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2162:3:16","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2166:6:16","memberName":"decode","nodeType":"MemberAccess","src":"2162:10:16","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:25:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4032,"name":"Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3998,"src":"2155:6:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":4040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2155:33:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4041,"nodeType":"EmitStatement","src":"2150:38:16"}]},"id":4043,"nodeType":"IfStatement","src":"1987:212:16","trueBody":{"id":4013,"nodeType":"Block","src":"2000:41:16","statements":[{"eventCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4010,"name":"Succeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3994,"src":"2019:9:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2019:11:16","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4012,"nodeType":"EmitStatement","src":"2014:16:16"}]}}]},"functionSelector":"b2c642d1","id":4045,"implemented":true,"kind":"function","modifiers":[{"id":4007,"kind":"modifierInvocation","modifierName":{"id":4006,"name":"onlyRelayer","nameLocations":["1965:11:16"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"1965:11:16"},"nodeType":"ModifierInvocation","src":"1965:11:16"}],"name":"finish","nameLocation":"1875:6:16","nodeType":"FunctionDefinition","parameters":{"id":4005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4000,"mutability":"mutable","name":"success","nameLocation":"1896:7:16","nodeType":"VariableDeclaration","scope":4045,"src":"1891:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3999,"name":"bool","nodeType":"ElementaryTypeName","src":"1891:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4002,"mutability":"mutable","name":"res","nameLocation":"1928:3:16","nodeType":"VariableDeclaration","scope":4045,"src":"1913:18:16","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4001,"name":"bytes","nodeType":"ElementaryTypeName","src":"1913:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4004,"mutability":"mutable","name":"nonce","nameLocation":"1946:5:16","nodeType":"VariableDeclaration","scope":4045,"src":"1941:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4003,"name":"uint","nodeType":"ElementaryTypeName","src":"1941:4:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1881:76:16"},"returnParameters":{"id":4008,"nodeType":"ParameterList","parameters":[],"src":"1977:0:16"},"scope":4046,"src":"1866:339:16","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4047,"src":"917:1290:16","usedErrors":[153,156],"usedEvents":[161,3904,3994,3998]}],"src":"39:2169:16"},"id":16},"contracts/Relayer.sol":{"ast":{"absolutePath":"contracts/Relayer.sol","exportedSymbols":{"Bridged":[3756],"Create2":[1180],"ECDSA":[1783],"EnumerableSet":[3629],"MessageHashUtils":[1857],"Relayer":[4434],"Strings":[1435],"ValidatorManager":[4775],"console":[12860]},"id":4435,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4048,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:17"},{"absolutePath":"hardhat/console.sol","file":"hardhat/console.sol","id":4049,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":12861,"src":"72:29:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":4050,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":1784,"src":"103:62:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","id":4051,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":1858,"src":"166:73:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/Create2.sol","file":"@openzeppelin/contracts/utils/Create2.sol","id":4052,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":1181,"src":"240:51:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/ValidatorManager.sol","file":"./ValidatorManager.sol","id":4053,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":4776,"src":"292:32:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"contracts/Bridged.sol","file":"./Bridged.sol","id":4054,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4435,"sourceUnit":3757,"src":"325:23:17","symbolAliases":[],"unitAlias":""},{"global":false,"id":4057,"libraryName":{"id":4055,"name":"ECDSA","nameLocations":["356:5:17"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"356:5:17"},"nodeType":"UsingForDirective","src":"350:24:17","typeName":{"id":4056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"366:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":4060,"libraryName":{"id":4058,"name":"MessageHashUtils","nameLocations":["381:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":1857,"src":"381:16:17"},"nodeType":"UsingForDirective","src":"375:33:17","typeName":{"id":4059,"name":"bytes","nodeType":"ElementaryTypeName","src":"402:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"abstract":false,"baseContracts":[],"canonicalName":"Relayer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4434,"linearizedBaseContracts":[4434],"name":"Relayer","nameLocation":"419:7:17","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":4063,"mutability":"mutable","name":"validatorManager","nameLocation":"458:16:17","nodeType":"VariableDeclaration","scope":4434,"src":"433:41:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":4062,"nodeType":"UserDefinedTypeName","pathNode":{"id":4061,"name":"ValidatorManager","nameLocations":["433:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"433:16:17"},"referencedDeclaration":4775,"src":"433:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"private"},{"anonymous":false,"eventSelector":"0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc9","id":4067,"name":"TwinDeployment","nameLocation":"487:14:17","nodeType":"EventDefinition","parameters":{"id":4066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4065,"indexed":true,"mutability":"mutable","name":"twin","nameLocation":"518:4:17","nodeType":"VariableDeclaration","scope":4067,"src":"502:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4064,"name":"address","nodeType":"ElementaryTypeName","src":"502:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"501:22:17"},"src":"481:43:17"},{"body":{"id":4098,"nodeType":"Block","src":"636:205:17","statements":[{"assignments":[4077],"declarations":[{"constant":false,"id":4077,"mutability":"mutable","name":"bridgedContract","nameLocation":"654:15:17","nodeType":"VariableDeclaration","scope":4098,"src":"646:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4076,"name":"address","nodeType":"ElementaryTypeName","src":"646:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4084,"initialValue":{"arguments":[{"hexValue":"30","id":4080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"687:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":4081,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4069,"src":"690:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4082,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4071,"src":"696:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":4078,"name":"Create2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1180,"src":"672:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Create2_$1180_$","typeString":"type(library Create2)"}},"id":4079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"680:6:17","memberName":"deploy","nodeType":"MemberAccess","referencedDeclaration":1145,"src":"672:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$","typeString":"function (uint256,bytes32,bytes memory) returns (address)"}},"id":4083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"672:33:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"646:59:17"},{"expression":{"arguments":[{"id":4089,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"751:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Relayer_$4434","typeString":"contract Relayer"}],"expression":{"arguments":[{"id":4086,"name":"bridgedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"723:15:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4085,"name":"Bridged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"715:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Bridged_$3756_$","typeString":"type(contract Bridged)"}},"id":4087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:24:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Bridged_$3756","typeString":"contract Bridged"}},"id":4088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"740:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":3652,"src":"715:35:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Relayer_$4434_$returns$__$","typeString":"function (contract Relayer) external"}},"id":4090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"715:41:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4091,"nodeType":"ExpressionStatement","src":"715:41:17"},{"eventCall":{"arguments":[{"id":4093,"name":"bridgedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"786:15:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4092,"name":"TwinDeployment","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4067,"src":"771:14:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"771:31:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4095,"nodeType":"EmitStatement","src":"766:36:17"},{"expression":{"id":4096,"name":"bridgedContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4077,"src":"819:15:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":4075,"id":4097,"nodeType":"Return","src":"812:22:17"}]},"functionSelector":"5390e474","id":4099,"implemented":true,"kind":"function","modifiers":[],"name":"deployTwin","nameLocation":"539:10:17","nodeType":"FunctionDefinition","parameters":{"id":4072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4069,"mutability":"mutable","name":"salt","nameLocation":"567:4:17","nodeType":"VariableDeclaration","scope":4099,"src":"559:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4068,"name":"bytes32","nodeType":"ElementaryTypeName","src":"559:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4071,"mutability":"mutable","name":"bytecode","nameLocation":"596:8:17","nodeType":"VariableDeclaration","scope":4099,"src":"581:23:17","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4070,"name":"bytes","nodeType":"ElementaryTypeName","src":"581:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"549:61:17"},"returnParameters":{"id":4075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4074,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4099,"src":"627:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4073,"name":"address","nodeType":"ElementaryTypeName","src":"627:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"626:9:17"},"scope":4434,"src":"530:311:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4109,"nodeType":"Block","src":"895:53:17","statements":[{"expression":{"id":4107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4105,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"905:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4106,"name":"_validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4102,"src":"924:17:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"src":"905:36:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":4108,"nodeType":"ExpressionStatement","src":"905:36:17"}]},"id":4110,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4102,"mutability":"mutable","name":"_validatorManager","nameLocation":"876:17:17","nodeType":"VariableDeclaration","scope":4110,"src":"859:34:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"},"typeName":{"id":4101,"nodeType":"UserDefinedTypeName","pathNode":{"id":4100,"name":"ValidatorManager","nameLocations":["859:16:17"],"nodeType":"IdentifierPath","referencedDeclaration":4775,"src":"859:16:17"},"referencedDeclaration":4775,"src":"859:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"visibility":"internal"}],"src":"858:36:17"},"returnParameters":{"id":4104,"nodeType":"ParameterList","parameters":[],"src":"895:0:17"},"scope":4434,"src":"847:101:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"constant":false,"id":4114,"mutability":"mutable","name":"nonces","nameLocation":"979:6:17","nodeType":"VariableDeclaration","scope":4434,"src":"954:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":4113,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4111,"name":"address","nodeType":"ElementaryTypeName","src":"962:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"954:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4112,"name":"uint","nodeType":"ElementaryTypeName","src":"973:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":4120,"mutability":"mutable","name":"dispatched","nameLocation":"1033:10:17","nodeType":"VariableDeclaration","scope":4434,"src":"991:52:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"typeName":{"id":4119,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4115,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"991:41:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4118,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4116,"name":"uint","nodeType":"ElementaryTypeName","src":"1018:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1010:21:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4117,"name":"bool","nodeType":"ElementaryTypeName","src":"1026:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"constant":false,"id":4126,"mutability":"mutable","name":"resumed","nameLocation":"1091:7:17","nodeType":"VariableDeclaration","scope":4434,"src":"1049:49:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"typeName":{"id":4125,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4121,"name":"address","nodeType":"ElementaryTypeName","src":"1057:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1049:41:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4124,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4122,"name":"uint","nodeType":"ElementaryTypeName","src":"1076:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1068:21:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4123,"name":"bool","nodeType":"ElementaryTypeName","src":"1084:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"anonymous":false,"eventSelector":"7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e15","id":4140,"name":"Relayed","nameLocation":"1111:7:17","nodeType":"EventDefinition","parameters":{"id":4139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4128,"indexed":false,"mutability":"mutable","name":"caller","nameLocation":"1136:6:17","nodeType":"VariableDeclaration","scope":4140,"src":"1128:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4127,"name":"address","nodeType":"ElementaryTypeName","src":"1128:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4130,"indexed":false,"mutability":"mutable","name":"target","nameLocation":"1160:6:17","nodeType":"VariableDeclaration","scope":4140,"src":"1152:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4129,"name":"address","nodeType":"ElementaryTypeName","src":"1152:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4132,"indexed":false,"mutability":"mutable","name":"call","nameLocation":"1182:4:17","nodeType":"VariableDeclaration","scope":4140,"src":"1176:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4131,"name":"bytes","nodeType":"ElementaryTypeName","src":"1176:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4134,"indexed":false,"mutability":"mutable","name":"readonly","nameLocation":"1201:8:17","nodeType":"VariableDeclaration","scope":4140,"src":"1196:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4133,"name":"bool","nodeType":"ElementaryTypeName","src":"1196:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4136,"indexed":false,"mutability":"mutable","name":"callback","nameLocation":"1226:8:17","nodeType":"VariableDeclaration","scope":4140,"src":"1219:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4135,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1219:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4138,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"1249:5:17","nodeType":"VariableDeclaration","scope":4140,"src":"1244:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4137,"name":"uint","nodeType":"ElementaryTypeName","src":"1244:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1118:142:17"},"src":"1105:156:17"},{"body":{"id":4177,"nodeType":"Block","src":"1409:242:17","statements":[{"eventCall":{"arguments":[{"expression":{"id":4154,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1445:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1449:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1445:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4156,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4142,"src":"1469:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4157,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4144,"src":"1489:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4158,"name":"readonly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4146,"src":"1507:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4159,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4148,"src":"1529:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"baseExpression":{"id":4160,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1551:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4163,"indexExpression":{"expression":{"id":4161,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1558:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1562:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1558:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1551:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4153,"name":"Relayed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4140,"src":"1424:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$_t_uint256_$returns$__$","typeString":"function (address,address,bytes memory,bool,bytes4,uint256)"}},"id":4164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1424:155:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4165,"nodeType":"EmitStatement","src":"1419:160:17"},{"expression":{"id":4170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1589:20:17","subExpression":{"baseExpression":{"id":4166,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1589:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4169,"indexExpression":{"expression":{"id":4167,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1596:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1600:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1596:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1589:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4171,"nodeType":"ExpressionStatement","src":"1589:20:17"},{"expression":{"baseExpression":{"id":4172,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4114,"src":"1626:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":4175,"indexExpression":{"expression":{"id":4173,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1633:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1637:6:17","memberName":"sender","nodeType":"MemberAccess","src":"1633:10:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1626:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4152,"id":4176,"nodeType":"Return","src":"1619:25:17"}]},"functionSelector":"139b4a87","id":4178,"implemented":true,"kind":"function","modifiers":[],"name":"relay","nameLocation":"1276:5:17","nodeType":"FunctionDefinition","parameters":{"id":4149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4142,"mutability":"mutable","name":"target","nameLocation":"1299:6:17","nodeType":"VariableDeclaration","scope":4178,"src":"1291:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4141,"name":"address","nodeType":"ElementaryTypeName","src":"1291:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4144,"mutability":"mutable","name":"call","nameLocation":"1328:4:17","nodeType":"VariableDeclaration","scope":4178,"src":"1315:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4143,"name":"bytes","nodeType":"ElementaryTypeName","src":"1315:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4146,"mutability":"mutable","name":"readonly","nameLocation":"1347:8:17","nodeType":"VariableDeclaration","scope":4178,"src":"1342:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4145,"name":"bool","nodeType":"ElementaryTypeName","src":"1342:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4148,"mutability":"mutable","name":"callback","nameLocation":"1372:8:17","nodeType":"VariableDeclaration","scope":4178,"src":"1365:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4147,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1365:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"1281:105:17"},"returnParameters":{"id":4152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4151,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4178,"src":"1403:4:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4150,"name":"uint","nodeType":"ElementaryTypeName","src":"1403:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1402:6:17"},"scope":4434,"src":"1267:384:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"f3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d72","id":4190,"name":"Dispatched","nameLocation":"1663:10:17","nodeType":"EventDefinition","parameters":{"id":4189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4180,"indexed":true,"mutability":"mutable","name":"caller","nameLocation":"1699:6:17","nodeType":"VariableDeclaration","scope":4190,"src":"1683:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4179,"name":"address","nodeType":"ElementaryTypeName","src":"1683:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4182,"indexed":false,"mutability":"mutable","name":"callback","nameLocation":"1722:8:17","nodeType":"VariableDeclaration","scope":4190,"src":"1715:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4181,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1715:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4184,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"1745:7:17","nodeType":"VariableDeclaration","scope":4190,"src":"1740:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4183,"name":"bool","nodeType":"ElementaryTypeName","src":"1740:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4186,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"1768:8:17","nodeType":"VariableDeclaration","scope":4190,"src":"1762:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4185,"name":"bytes","nodeType":"ElementaryTypeName","src":"1762:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4188,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"1799:5:17","nodeType":"VariableDeclaration","scope":4190,"src":"1786:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4187,"name":"uint","nodeType":"ElementaryTypeName","src":"1786:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1673:137:17"},"src":"1657:154:17"},{"body":{"id":4222,"nodeType":"Block","src":"1933:330:17","statements":[{"assignments":[4199],"declarations":[{"constant":false,"id":4199,"mutability":"mutable","name":"hash","nameLocation":"1951:4:17","nodeType":"VariableDeclaration","scope":4222,"src":"1943:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1943:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":4203,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4200,"name":"encodedMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4192,"src":"1958:14:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1973:22:17","memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":1824,"src":"1958:37:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$attached_to$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":4202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1958:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1943:54:17"},{"expression":{"arguments":[{"arguments":[{"id":4207,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4199,"src":"2070:4:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":4208,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4195,"src":"2076:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"expression":{"id":4205,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"2028:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":4206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2045:24:17","memberName":"validateUniqueSignatures","nodeType":"MemberAccess","referencedDeclaration":4736,"src":"2028:41:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$_t_bool_$","typeString":"function (bytes32,bytes memory[] memory) view external returns (bool)"}},"id":4209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2028:59:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"496e76616c6964207369676e617475726573","id":4210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2101:20:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e","typeString":"literal_string \"Invalid signatures\""},"value":"Invalid signatures"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e","typeString":"literal_string \"Invalid signatures\""}],"id":4204,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2007:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2007:124:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4212,"nodeType":"ExpressionStatement","src":"2007:124:17"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":4216,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4195,"src":"2196:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2207:6:17","memberName":"length","nodeType":"MemberAccess","src":"2196:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4214,"name":"validatorManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"2162:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_ValidatorManager_$4775","typeString":"contract ValidatorManager"}},"id":4215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2179:16:17","memberName":"hasSupermajority","nodeType":"MemberAccess","referencedDeclaration":4753,"src":"2162:33:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view external returns (bool)"}},"id":4218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2162:52:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e6f2073757065726d616a6f72697479","id":4219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2228:18:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0","typeString":"literal_string \"No supermajority\""},"value":"No supermajority"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0","typeString":"literal_string \"No supermajority\""}],"id":4213,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2141:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2141:115:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4221,"nodeType":"ExpressionStatement","src":"2141:115:17"}]},"id":4223,"implemented":true,"kind":"function","modifiers":[],"name":"validateRequest","nameLocation":"1826:15:17","nodeType":"FunctionDefinition","parameters":{"id":4196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4192,"mutability":"mutable","name":"encodedMessage","nameLocation":"1864:14:17","nodeType":"VariableDeclaration","scope":4223,"src":"1851:27:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4191,"name":"bytes","nodeType":"ElementaryTypeName","src":"1851:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4195,"mutability":"mutable","name":"signatures","nameLocation":"1903:10:17","nodeType":"VariableDeclaration","scope":4223,"src":"1888:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4193,"name":"bytes","nodeType":"ElementaryTypeName","src":"1888:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4194,"nodeType":"ArrayTypeName","src":"1888:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1841:78:17"},"returnParameters":{"id":4197,"nodeType":"ParameterList","parameters":[],"src":"1933:0:17"},"scope":4434,"src":"1817:446:17","stateMutability":"view","virtual":false,"visibility":"private"},{"body":{"id":4303,"nodeType":"Block","src":"2455:584:17","statements":[{"expression":{"arguments":[{"id":4245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2473:26:17","subExpression":{"baseExpression":{"baseExpression":{"id":4240,"name":"dispatched","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"2474:10:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4242,"indexExpression":{"id":4241,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2485:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2474:18:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4244,"indexExpression":{"id":4243,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"2493:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2474:25:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c72656164792064697370617463686564","id":4246,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2501:20:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719","typeString":"literal_string \"Already dispatched\""},"value":"Already dispatched"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719","typeString":"literal_string \"Already dispatched\""}],"id":4239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2465:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2465:57:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4248,"nodeType":"ExpressionStatement","src":"2465:57:17"},{"assignments":[4250],"declarations":[{"constant":false,"id":4250,"mutability":"mutable","name":"message","nameLocation":"2546:7:17","nodeType":"VariableDeclaration","scope":4303,"src":"2533:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4249,"name":"bytes","nodeType":"ElementaryTypeName","src":"2533:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4260,"initialValue":{"arguments":[{"id":4253,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2580:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4254,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2600:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4255,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"2620:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"66616c7365","id":4256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2638:5:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"id":4257,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"2657:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4258,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"2679:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4251,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2556:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2560:6:17","memberName":"encode","nodeType":"MemberAccess","src":"2556:10:17","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2556:138:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2533:161:17"},{"expression":{"arguments":[{"id":4262,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4250,"src":"2720:7:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4263,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4236,"src":"2729:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"id":4261,"name":"validateRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"2704:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory[] memory) view"}},"id":4264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2704:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4265,"nodeType":"ExpressionStatement","src":"2704:36:17"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4267,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2759:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2766:4:17","memberName":"code","nodeType":"MemberAccess","src":"2759:11:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2771:6:17","memberName":"length","nodeType":"MemberAccess","src":"2759:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2780:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2759:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206c656e677468","id":4272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2783:13:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""},"value":"code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""}],"id":4266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2751:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2751:46:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4274,"nodeType":"ExpressionStatement","src":"2751:46:17"},{"assignments":[4276,4278],"declarations":[{"constant":false,"id":4276,"mutability":"mutable","name":"success","nameLocation":"2813:7:17","nodeType":"VariableDeclaration","scope":4303,"src":"2808:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4275,"name":"bool","nodeType":"ElementaryTypeName","src":"2808:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4278,"mutability":"mutable","name":"response","nameLocation":"2835:8:17","nodeType":"VariableDeclaration","scope":4303,"src":"2822:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4277,"name":"bytes","nodeType":"ElementaryTypeName","src":"2822:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4286,"initialValue":{"arguments":[{"id":4283,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"2887:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4284,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"2907:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4280,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2855:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4279,"name":"Bridged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"2847:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Bridged_$3756_$","typeString":"type(contract Bridged)"}},"id":4281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2847:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Bridged_$3756","typeString":"contract Bridged"}},"id":4282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2863:10:17","memberName":"dispatched","nodeType":"MemberAccess","referencedDeclaration":3700,"src":"2847:26:17","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) payable external returns (bool,bytes memory)"}},"id":4285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2847:74:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2807:114:17"},{"eventCall":{"arguments":[{"id":4288,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"2947:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4289,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"2955:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4290,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4276,"src":"2965:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4291,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4278,"src":"2974:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4292,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"2984:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4287,"name":"Dispatched","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4190,"src":"2936:10:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes4_$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes4,bool,bytes memory,uint256)"}},"id":4293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2936:54:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4294,"nodeType":"EmitStatement","src":"2931:59:17"},{"expression":{"id":4301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4295,"name":"dispatched","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4120,"src":"3000:10:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4298,"indexExpression":{"id":4296,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"3011:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3000:18:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4299,"indexExpression":{"id":4297,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"3019:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3000:25:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3028:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3000:32:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4302,"nodeType":"ExpressionStatement","src":"3000:32:17"}]},"functionSelector":"c1b2f734","id":4304,"implemented":true,"kind":"function","modifiers":[],"name":"dispatch","nameLocation":"2278:8:17","nodeType":"FunctionDefinition","parameters":{"id":4237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4225,"mutability":"mutable","name":"caller","nameLocation":"2304:6:17","nodeType":"VariableDeclaration","scope":4304,"src":"2296:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4224,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4227,"mutability":"mutable","name":"target","nameLocation":"2328:6:17","nodeType":"VariableDeclaration","scope":4304,"src":"2320:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4226,"name":"address","nodeType":"ElementaryTypeName","src":"2320:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4229,"mutability":"mutable","name":"call","nameLocation":"2357:4:17","nodeType":"VariableDeclaration","scope":4304,"src":"2344:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4228,"name":"bytes","nodeType":"ElementaryTypeName","src":"2344:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4231,"mutability":"mutable","name":"callback","nameLocation":"2378:8:17","nodeType":"VariableDeclaration","scope":4304,"src":"2371:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4230,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2371:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4233,"mutability":"mutable","name":"nonce","nameLocation":"2401:5:17","nodeType":"VariableDeclaration","scope":4304,"src":"2396:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4232,"name":"uint","nodeType":"ElementaryTypeName","src":"2396:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4236,"mutability":"mutable","name":"signatures","nameLocation":"2431:10:17","nodeType":"VariableDeclaration","scope":4304,"src":"2416:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4234,"name":"bytes","nodeType":"ElementaryTypeName","src":"2416:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4235,"nodeType":"ArrayTypeName","src":"2416:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"2286:161:17"},"returnParameters":{"id":4238,"nodeType":"ParameterList","parameters":[],"src":"2455:0:17"},"scope":4434,"src":"2269:770:17","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4338,"nodeType":"Block","src":"3199:132:17","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"id":4318,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"3217:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3224:4:17","memberName":"code","nodeType":"MemberAccess","src":"3217:11:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3229:6:17","memberName":"length","nodeType":"MemberAccess","src":"3217:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3238:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3217:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"636f6465206c656e677468","id":4323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3241:13:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""},"value":"code length"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3","typeString":"literal_string \"code length\""}],"id":4317,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3209:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3209:46:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4325,"nodeType":"ExpressionStatement","src":"3209:46:17"},{"expression":{"id":4336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"components":[{"id":4326,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4313,"src":"3266:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4327,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4315,"src":"3275:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":4328,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3265:19:17","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":4333,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4308,"src":"3311:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4334,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4310,"src":"3319:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":4330,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4306,"src":"3295:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4329,"name":"Bridged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3756,"src":"3287:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Bridged_$3756_$","typeString":"type(contract Bridged)"}},"id":4331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Bridged_$3756","typeString":"contract Bridged"}},"id":4332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3303:7:17","memberName":"queried","nodeType":"MemberAccess","referencedDeclaration":3731,"src":"3287:23:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory) view external returns (bool,bytes memory)"}},"id":4335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3287:37:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"3265:59:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4337,"nodeType":"ExpressionStatement","src":"3265:59:17"}]},"functionSelector":"adde344c","id":4339,"implemented":true,"kind":"function","modifiers":[],"name":"query","nameLocation":"3054:5:17","nodeType":"FunctionDefinition","parameters":{"id":4311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4306,"mutability":"mutable","name":"caller","nameLocation":"3077:6:17","nodeType":"VariableDeclaration","scope":4339,"src":"3069:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4305,"name":"address","nodeType":"ElementaryTypeName","src":"3069:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4308,"mutability":"mutable","name":"target","nameLocation":"3101:6:17","nodeType":"VariableDeclaration","scope":4339,"src":"3093:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4307,"name":"address","nodeType":"ElementaryTypeName","src":"3093:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4310,"mutability":"mutable","name":"call","nameLocation":"3130:4:17","nodeType":"VariableDeclaration","scope":4339,"src":"3117:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4309,"name":"bytes","nodeType":"ElementaryTypeName","src":"3117:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3059:81:17"},"returnParameters":{"id":4316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4313,"mutability":"mutable","name":"success","nameLocation":"3167:7:17","nodeType":"VariableDeclaration","scope":4339,"src":"3162:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4312,"name":"bool","nodeType":"ElementaryTypeName","src":"3162:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4315,"mutability":"mutable","name":"response","nameLocation":"3189:8:17","nodeType":"VariableDeclaration","scope":4339,"src":"3176:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4314,"name":"bytes","nodeType":"ElementaryTypeName","src":"3176:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3161:37:17"},"scope":4434,"src":"3045:286:17","stateMutability":"view","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf13856","id":4351,"name":"Resumed","nameLocation":"3343:7:17","nodeType":"EventDefinition","parameters":{"id":4350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4341,"indexed":true,"mutability":"mutable","name":"caller","nameLocation":"3376:6:17","nodeType":"VariableDeclaration","scope":4351,"src":"3360:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4340,"name":"address","nodeType":"ElementaryTypeName","src":"3360:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4343,"indexed":false,"mutability":"mutable","name":"call","nameLocation":"3398:4:17","nodeType":"VariableDeclaration","scope":4351,"src":"3392:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4342,"name":"bytes","nodeType":"ElementaryTypeName","src":"3392:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4345,"indexed":false,"mutability":"mutable","name":"success","nameLocation":"3417:7:17","nodeType":"VariableDeclaration","scope":4351,"src":"3412:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4344,"name":"bool","nodeType":"ElementaryTypeName","src":"3412:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4347,"indexed":false,"mutability":"mutable","name":"response","nameLocation":"3440:8:17","nodeType":"VariableDeclaration","scope":4351,"src":"3434:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4346,"name":"bytes","nodeType":"ElementaryTypeName","src":"3434:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4349,"indexed":true,"mutability":"mutable","name":"nonce","nameLocation":"3471:5:17","nodeType":"VariableDeclaration","scope":4351,"src":"3458:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4348,"name":"uint","nodeType":"ElementaryTypeName","src":"3458:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3350:132:17"},"src":"3337:146:17"},{"body":{"id":4432,"nodeType":"Block","src":"3754:656:17","statements":[{"expression":{"arguments":[{"id":4373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3772:23:17","subExpression":{"baseExpression":{"baseExpression":{"id":4368,"name":"resumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"3773:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4370,"indexExpression":{"id":4369,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"3781:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3773:15:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4372,"indexExpression":{"id":4371,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"3789:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3773:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416c726561647920726573756d6564","id":4374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3797:17:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a","typeString":"literal_string \"Already resumed\""},"value":"Already resumed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a","typeString":"literal_string \"Already resumed\""}],"id":4367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3764:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:51:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4376,"nodeType":"ExpressionStatement","src":"3764:51:17"},{"assignments":[4378],"declarations":[{"constant":false,"id":4378,"mutability":"mutable","name":"message","nameLocation":"3838:7:17","nodeType":"VariableDeclaration","scope":4432,"src":"3825:20:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4377,"name":"bytes","nodeType":"ElementaryTypeName","src":"3825:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4387,"initialValue":{"arguments":[{"id":4381,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"3872:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4382,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4355,"src":"3892:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4383,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"3914:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4384,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4359,"src":"3935:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4385,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"3957:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4379,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3848:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3852:6:17","memberName":"encode","nodeType":"MemberAccess","src":"3848:10:17","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":4386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3848:124:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3825:147:17"},{"expression":{"arguments":[{"id":4389,"name":"message","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4378,"src":"3998:7:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4390,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4364,"src":"4007:10:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}],"id":4388,"name":"validateRequest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"3982:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (bytes memory,bytes memory[] memory) view"}},"id":4391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3982:36:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4392,"nodeType":"ExpressionStatement","src":"3982:36:17"},{"assignments":[4394],"declarations":[{"constant":false,"id":4394,"mutability":"mutable","name":"call","nameLocation":"4042:4:17","nodeType":"VariableDeclaration","scope":4432,"src":"4029:17:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4393,"name":"bytes","nodeType":"ElementaryTypeName","src":"4029:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4402,"initialValue":{"arguments":[{"id":4397,"name":"callback","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4355,"src":"4085:8:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":4398,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4357,"src":"4107:7:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4399,"name":"response","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4359,"src":"4128:8:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4400,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"4150:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4395,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4049:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4053:18:17","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4049:22:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":4401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:116:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"4029:136:17"},{"assignments":[4404,4406],"declarations":[{"constant":false,"id":4404,"mutability":"mutable","name":"success2","nameLocation":"4181:8:17","nodeType":"VariableDeclaration","scope":4432,"src":"4176:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4403,"name":"bool","nodeType":"ElementaryTypeName","src":"4176:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4406,"mutability":"mutable","name":"response2","nameLocation":"4204:9:17","nodeType":"VariableDeclaration","scope":4432,"src":"4191:22:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4405,"name":"bytes","nodeType":"ElementaryTypeName","src":"4191:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4415,"initialValue":{"arguments":[{"id":4413,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"4294:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4407,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"4217:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4224:4:17","memberName":"call","nodeType":"MemberAccess","src":"4217:11:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value","gas"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":4409,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4249:3:17","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4253:5:17","memberName":"value","nodeType":"MemberAccess","src":"4249:9:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"313030303030","id":4411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4277:6:17","typeDescriptions":{"typeIdentifier":"t_rational_100000_by_1","typeString":"int_const 100000"},"value":"100000"}],"src":"4217:76:17","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$gasvalue","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":4414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4217:82:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4175:124:17"},{"eventCall":{"arguments":[{"id":4417,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"4323:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4418,"name":"call","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4394,"src":"4331:4:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4419,"name":"success2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4404,"src":"4337:8:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":4420,"name":"response2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4406,"src":"4347:9:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4421,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"4358:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4416,"name":"Resumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4351,"src":"4315:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (address,bytes memory,bool,bytes memory,uint256)"}},"id":4422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4315:49:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4423,"nodeType":"EmitStatement","src":"4310:54:17"},{"expression":{"id":4430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":4424,"name":"resumed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4126,"src":"4374:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_bool_$_$","typeString":"mapping(address => mapping(uint256 => bool))"}},"id":4427,"indexExpression":{"id":4425,"name":"caller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4353,"src":"4382:6:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4374:15:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_bool_$","typeString":"mapping(uint256 => bool)"}},"id":4428,"indexExpression":{"id":4426,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4361,"src":"4390:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4374:22:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":4429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4399:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4374:29:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4431,"nodeType":"ExpressionStatement","src":"4374:29:17"}]},"functionSelector":"0b0a6bd1","id":4433,"implemented":true,"kind":"function","modifiers":[],"name":"resume","nameLocation":"3569:6:17","nodeType":"FunctionDefinition","parameters":{"id":4365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4353,"mutability":"mutable","name":"caller","nameLocation":"3593:6:17","nodeType":"VariableDeclaration","scope":4433,"src":"3585:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4352,"name":"address","nodeType":"ElementaryTypeName","src":"3585:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4355,"mutability":"mutable","name":"callback","nameLocation":"3616:8:17","nodeType":"VariableDeclaration","scope":4433,"src":"3609:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4354,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3609:6:17","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"},{"constant":false,"id":4357,"mutability":"mutable","name":"success","nameLocation":"3639:7:17","nodeType":"VariableDeclaration","scope":4433,"src":"3634:12:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4356,"name":"bool","nodeType":"ElementaryTypeName","src":"3634:4:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4359,"mutability":"mutable","name":"response","nameLocation":"3669:8:17","nodeType":"VariableDeclaration","scope":4433,"src":"3656:21:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4358,"name":"bytes","nodeType":"ElementaryTypeName","src":"3656:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4361,"mutability":"mutable","name":"nonce","nameLocation":"3692:5:17","nodeType":"VariableDeclaration","scope":4433,"src":"3687:10:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4360,"name":"uint","nodeType":"ElementaryTypeName","src":"3687:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4364,"mutability":"mutable","name":"signatures","nameLocation":"3722:10:17","nodeType":"VariableDeclaration","scope":4433,"src":"3707:25:17","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4362,"name":"bytes","nodeType":"ElementaryTypeName","src":"3707:5:17","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4363,"nodeType":"ArrayTypeName","src":"3707:7:17","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"3575:163:17"},"returnParameters":{"id":4366,"nodeType":"ParameterList","parameters":[],"src":"3754:0:17"},"scope":4434,"src":"3560:850:17","stateMutability":"payable","virtual":false,"visibility":"public"}],"scope":4435,"src":"410:4002:17","usedErrors":[1087,1090,1093],"usedEvents":[4067,4140,4190,4351]}],"src":"46:4367:17"},"id":17},"contracts/Test.sol":{"ast":{"absolutePath":"contracts/Test.sol","exportedSymbols":{"Bridged":[3756],"Create2":[1180],"ECDSA":[1783],"EnumerableSet":[3629],"Initializable":[390],"MessageHashUtils":[1857],"Relayer":[4434],"Strings":[1435],"Target":[4571],"Twin":[4545],"ValidatorManager":[4775],"console":[12860]},"id":4572,"license":"UNLICENSED","nodeType":"SourceUnit","nodes":[{"id":4436,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"39:24:18"},{"absolutePath":"contracts/Bridged.sol","file":"./Bridged.sol","id":4437,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4572,"sourceUnit":3757,"src":"65:23:18","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[{"baseName":{"id":4438,"name":"Bridged","nameLocations":["107:7:18"],"nodeType":"IdentifierPath","referencedDeclaration":3756,"src":"107:7:18"},"id":4439,"nodeType":"InheritanceSpecifier","src":"107:7:18"}],"canonicalName":"Twin","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4545,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[4545,3756,390],"name":"Twin","nameLocation":"99:4:18","nodeType":"ContractDefinition","nodes":[{"body":{"id":4470,"nodeType":"Block","src":"184:219:18","statements":[{"assignments":[4449],"declarations":[{"constant":false,"id":4449,"mutability":"mutable","name":"nonce","nameLocation":"199:5:18","nodeType":"VariableDeclaration","scope":4470,"src":"194:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4448,"name":"uint","nodeType":"ElementaryTypeName","src":"194:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4462,"initialValue":{"arguments":[{"id":4451,"name":"target","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4441,"src":"226:6:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"746573742875696e7432353629","id":4454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"270:15:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_29e99f07d14aa8d30a12fa0b0789b43183ba1bf6b4a72b95459a3e397cca10d7","typeString":"literal_string \"test(uint256)\""},"value":"test(uint256)"},{"id":4455,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4443,"src":"287:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_29e99f07d14aa8d30a12fa0b0789b43183ba1bf6b4a72b95459a3e397cca10d7","typeString":"literal_string \"test(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4452,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"246:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"250:19:18","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"246:23:18","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"246:45:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":4457,"name":"readonly","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4445,"src":"305:8:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"expression":{"expression":{"id":4458,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"327:4:18","typeDescriptions":{"typeIdentifier":"t_contract$_Twin_$4545","typeString":"contract Twin"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"332:6:18","memberName":"finish","nodeType":"MemberAccess","referencedDeclaration":4544,"src":"327:11:18","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bool_$_t_bytes_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (bool,bytes memory,uint256) external"}},"id":4460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"339:8:18","memberName":"selector","nodeType":"MemberAccess","src":"327:20:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":4450,"name":"relay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"207:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_bool_$_t_bytes4_$returns$_t_uint256_$","typeString":"function (address,bytes memory,bool,bytes4) returns (uint256)"}},"id":4461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"207:150:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"194:163:18"},{"expression":{"arguments":[{"hexValue":"73746172742829","id":4466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"379:9:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7","typeString":"literal_string \"start()\""},"value":"start()"},{"id":4467,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4449,"src":"390:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9a655586dceb82dfa0af992b5d8ae7fa45053cb7fd6f141f541da7572978c7","typeString":"literal_string \"start()\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4463,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"367:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":4465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"375:3:18","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5504,"src":"367:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":4468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"367:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4469,"nodeType":"ExpressionStatement","src":"367:29:18"}]},"functionSelector":"c2ab4e3e","id":4471,"implemented":true,"kind":"function","modifiers":[],"name":"start","nameLocation":"130:5:18","nodeType":"FunctionDefinition","parameters":{"id":4446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4441,"mutability":"mutable","name":"target","nameLocation":"144:6:18","nodeType":"VariableDeclaration","scope":4471,"src":"136:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4440,"name":"address","nodeType":"ElementaryTypeName","src":"136:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4443,"mutability":"mutable","name":"num","nameLocation":"157:3:18","nodeType":"VariableDeclaration","scope":4471,"src":"152:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4442,"name":"uint","nodeType":"ElementaryTypeName","src":"152:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4445,"mutability":"mutable","name":"readonly","nameLocation":"167:8:18","nodeType":"VariableDeclaration","scope":4471,"src":"162:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4444,"name":"bool","nodeType":"ElementaryTypeName","src":"162:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"135:41:18"},"returnParameters":{"id":4447,"nodeType":"ParameterList","parameters":[],"src":"184:0:18"},"scope":4545,"src":"121:282:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"anonymous":false,"eventSelector":"7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b","id":4475,"name":"Succeeded","nameLocation":"415:9:18","nodeType":"EventDefinition","parameters":{"id":4474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4473,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4475,"src":"425:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4472,"name":"uint","nodeType":"ElementaryTypeName","src":"425:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"424:6:18"},"src":"409:22:18"},{"anonymous":false,"eventSelector":"c65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51","id":4479,"name":"Failed","nameLocation":"442:6:18","nodeType":"EventDefinition","parameters":{"id":4478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4477,"indexed":false,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4479,"src":"449:6:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4476,"name":"string","nodeType":"ElementaryTypeName","src":"449:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"448:8:18"},"src":"436:21:18"},{"body":{"id":4543,"nodeType":"Block","src":"574:319:18","statements":[{"expression":{"arguments":[{"hexValue":"66696e6973682829","id":4493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"596:10:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_d56b28892cd23ae1d883e9f2b762c21ac0b40a8ad9be751878434c76c15eead0","typeString":"literal_string \"finish()\""},"value":"finish()"},{"id":4494,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4485,"src":"608:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d56b28892cd23ae1d883e9f2b762c21ac0b40a8ad9be751878434c76c15eead0","typeString":"literal_string \"finish()\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4490,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"584:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":4492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"592:3:18","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5504,"src":"584:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) pure"}},"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"584:30:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4496,"nodeType":"ExpressionStatement","src":"584:30:18"},{"condition":{"id":4497,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4481,"src":"628:7:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4541,"nodeType":"Block","src":"735:152:18","statements":[{"assignments":[4514],"declarations":[{"constant":false,"id":4514,"mutability":"mutable","name":"sig","nameLocation":"756:3:18","nodeType":"VariableDeclaration","scope":4541,"src":"749:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4513,"name":"bytes4","nodeType":"ElementaryTypeName","src":"749:6:18","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":4521,"initialValue":{"arguments":[{"baseExpression":{"id":4517,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"769:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"34","id":4518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"774:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"id":4519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"769:7:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4516,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"762:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":{"id":4515,"name":"bytes4","nodeType":"ElementaryTypeName","src":"762:6:18","typeDescriptions":{}}},"id":4520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"762:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"749:28:18"},{"assignments":[4523],"declarations":[{"constant":false,"id":4523,"mutability":"mutable","name":"err","nameLocation":"804:3:18","nodeType":"VariableDeclaration","scope":4541,"src":"791:16:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4522,"name":"bytes","nodeType":"ElementaryTypeName","src":"791:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":4530,"initialValue":{"arguments":[{"baseExpression":{"id":4526,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"816:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"816:7:18","startExpression":{"hexValue":"34","id":4527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"820:1:18","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":4525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"810:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":4524,"name":"bytes","nodeType":"ElementaryTypeName","src":"810:5:18","typeDescriptions":{}}},"id":4529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"810:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"nodeType":"VariableDeclarationStatement","src":"791:33:18"},{"eventCall":{"arguments":[{"arguments":[{"id":4534,"name":"err","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4523,"src":"861:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"867:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":4535,"name":"string","nodeType":"ElementaryTypeName","src":"867:6:18","typeDescriptions":{}}}],"id":4537,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"866:8:18","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"}],"expression":{"id":4532,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"850:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4533,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"854:6:18","memberName":"decode","nodeType":"MemberAccess","src":"850:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"850:25:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":4531,"name":"Failed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4479,"src":"843:6:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":4539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"843:33:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4540,"nodeType":"EmitStatement","src":"838:38:18"}]},"id":4542,"nodeType":"IfStatement","src":"624:263:18","trueBody":{"id":4512,"nodeType":"Block","src":"637:92:18","statements":[{"assignments":[4499],"declarations":[{"constant":false,"id":4499,"mutability":"mutable","name":"num","nameLocation":"656:3:18","nodeType":"VariableDeclaration","scope":4512,"src":"651:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4498,"name":"uint","nodeType":"ElementaryTypeName","src":"651:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4507,"initialValue":{"arguments":[{"id":4502,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4483,"src":"673:3:18","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":4504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"679:4:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":4503,"name":"uint","nodeType":"ElementaryTypeName","src":"679:4:18","typeDescriptions":{}}}],"id":4505,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"678:6:18","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":4500,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"662:3:18","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"666:6:18","memberName":"decode","nodeType":"MemberAccess","src":"662:10:18","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":4506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"662:23:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"651:34:18"},{"eventCall":{"arguments":[{"id":4509,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4499,"src":"714:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4508,"name":"Succeeded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4475,"src":"704:9:18","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"704:14:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4511,"nodeType":"EmitStatement","src":"699:19:18"}]}}]},"functionSelector":"b2c642d1","id":4544,"implemented":true,"kind":"function","modifiers":[{"id":4488,"kind":"modifierInvocation","modifierName":{"id":4487,"name":"onlyRelayer","nameLocations":["562:11:18"],"nodeType":"IdentifierPath","referencedDeclaration":3667,"src":"562:11:18"},"nodeType":"ModifierInvocation","src":"562:11:18"}],"name":"finish","nameLocation":"472:6:18","nodeType":"FunctionDefinition","parameters":{"id":4486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4481,"mutability":"mutable","name":"success","nameLocation":"493:7:18","nodeType":"VariableDeclaration","scope":4544,"src":"488:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4480,"name":"bool","nodeType":"ElementaryTypeName","src":"488:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":4483,"mutability":"mutable","name":"res","nameLocation":"525:3:18","nodeType":"VariableDeclaration","scope":4544,"src":"510:18:18","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":4482,"name":"bytes","nodeType":"ElementaryTypeName","src":"510:5:18","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":4485,"mutability":"mutable","name":"nonce","nameLocation":"543:5:18","nodeType":"VariableDeclaration","scope":4544,"src":"538:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4484,"name":"uint","nodeType":"ElementaryTypeName","src":"538:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"478:76:18"},"returnParameters":{"id":4489,"nodeType":"ParameterList","parameters":[],"src":"574:0:18"},"scope":4545,"src":"463:430:18","stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"scope":4572,"src":"90:805:18","usedErrors":[153,156],"usedEvents":[161,4475,4479]},{"abstract":false,"baseContracts":[],"canonicalName":"Target","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4571,"internalFunctionIDs":{"4791":1},"linearizedBaseContracts":[4571],"name":"Target","nameLocation":"906:6:18","nodeType":"ContractDefinition","nodes":[{"body":{"id":4569,"nodeType":"Block","src":"970:104:18","statements":[{"expression":{"arguments":[{"hexValue":"746573742829","id":4555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"992:8:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8a8fd6dd9544ca87214e80c840685bd13ff4682cacb0c90821ed74b1d248926","typeString":"literal_string \"test()\""},"value":"test()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8a8fd6dd9544ca87214e80c840685bd13ff4682cacb0c90821ed74b1d248926","typeString":"literal_string \"test()\""}],"expression":{"id":4552,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12860,"src":"980:7:18","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$12860_$","typeString":"type(library console)"}},"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"988:3:18","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":5391,"src":"980:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) pure"}},"id":4556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"980:21:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4557,"nodeType":"ExpressionStatement","src":"980:21:18"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4559,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"1019:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"31303030","id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1025:4:18","typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"1019:10:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"546f6f206c61726765","id":4562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1031:11:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4","typeString":"literal_string \"Too large\""},"value":"Too large"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4","typeString":"literal_string \"Too large\""}],"id":4558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1011:7:18","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1011:32:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4564,"nodeType":"ExpressionStatement","src":"1011:32:18"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4565,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4547,"src":"1060:3:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":4566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1066:1:18","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1060:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4551,"id":4568,"nodeType":"Return","src":"1053:14:18"}]},"functionSelector":"29e99f07","id":4570,"implemented":true,"kind":"function","modifiers":[],"name":"test","nameLocation":"928:4:18","nodeType":"FunctionDefinition","parameters":{"id":4548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4547,"mutability":"mutable","name":"num","nameLocation":"938:3:18","nodeType":"VariableDeclaration","scope":4570,"src":"933:8:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4546,"name":"uint","nodeType":"ElementaryTypeName","src":"933:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"932:10:18"},"returnParameters":{"id":4551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4550,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4570,"src":"964:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4549,"name":"uint","nodeType":"ElementaryTypeName","src":"964:4:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"963:6:18"},"scope":4571,"src":"919:155:18","stateMutability":"pure","virtual":false,"visibility":"public"}],"scope":4572,"src":"897:179:18","usedErrors":[],"usedEvents":[]}],"src":"39:1038:18"},"id":18},"contracts/ValidatorManager.sol":{"ast":{"absolutePath":"contracts/ValidatorManager.sol","exportedSymbols":{"ECDSA":[1783],"EnumerableSet":[3629],"MessageHashUtils":[1857],"Strings":[1435],"ValidatorManager":[4775]},"id":4776,"license":"MIT OR Apache-2.0","nodeType":"SourceUnit","nodes":[{"id":4573,"literals":["solidity","^","0.8",".20"],"nodeType":"PragmaDirective","src":"46:24:19"},{"absolutePath":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","id":4574,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4776,"sourceUnit":3630,"src":"72:65:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","file":"@openzeppelin/contracts/utils/cryptography/ECDSA.sol","id":4575,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4776,"sourceUnit":1784,"src":"138:62:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","file":"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol","id":4576,"nameLocation":"-1:-1:-1","nodeType":"ImportDirective","scope":4776,"sourceUnit":1858,"src":"201:73:19","symbolAliases":[],"unitAlias":""},{"abstract":false,"baseContracts":[],"canonicalName":"ValidatorManager","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"id":4775,"linearizedBaseContracts":[4775],"name":"ValidatorManager","nameLocation":"285:16:19","nodeType":"ContractDefinition","nodes":[{"global":false,"id":4579,"libraryName":{"id":4577,"name":"ECDSA","nameLocations":["314:5:19"],"nodeType":"IdentifierPath","referencedDeclaration":1783,"src":"314:5:19"},"nodeType":"UsingForDirective","src":"308:24:19","typeName":{"id":4578,"name":"bytes32","nodeType":"ElementaryTypeName","src":"324:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"global":false,"id":4582,"libraryName":{"id":4580,"name":"MessageHashUtils","nameLocations":["343:16:19"],"nodeType":"IdentifierPath","referencedDeclaration":1857,"src":"343:16:19"},"nodeType":"UsingForDirective","src":"337:33:19","typeName":{"id":4581,"name":"bytes","nodeType":"ElementaryTypeName","src":"364:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}}},{"global":false,"id":4586,"libraryName":{"id":4583,"name":"EnumerableSet","nameLocations":["381:13:19"],"nodeType":"IdentifierPath","referencedDeclaration":3629,"src":"381:13:19"},"nodeType":"UsingForDirective","src":"375:49:19","typeName":{"id":4585,"nodeType":"UserDefinedTypeName","pathNode":{"id":4584,"name":"EnumerableSet.AddressSet","nameLocations":["399:13:19","413:10:19"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"399:24:19"},"referencedDeclaration":3342,"src":"399:24:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"constant":false,"id":4589,"mutability":"mutable","name":"_validators","nameLocation":"463:11:19","nodeType":"VariableDeclaration","scope":4775,"src":"430:44:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet"},"typeName":{"id":4588,"nodeType":"UserDefinedTypeName","pathNode":{"id":4587,"name":"EnumerableSet.AddressSet","nameLocations":["430:13:19","444:10:19"],"nodeType":"IdentifierPath","referencedDeclaration":3342,"src":"430:24:19"},"referencedDeclaration":3342,"src":"430:24:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}},"visibility":"private"},{"body":{"id":4614,"nodeType":"Block","src":"522:113:19","statements":[{"body":{"id":4612,"nodeType":"Block","src":"577:52:19","statements":[{"expression":{"arguments":[{"baseExpression":{"id":4607,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"604:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4609,"indexExpression":{"id":4608,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"615:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"604:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4606,"name":"addValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4628,"src":"591:12:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) returns (bool)"}},"id":4610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"591:27:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4611,"nodeType":"ExpressionStatement","src":"591:27:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"549:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4600,"name":"validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4592,"src":"553:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":4601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"564:6:19","memberName":"length","nodeType":"MemberAccess","src":"553:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"549:21:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4613,"initializationExpression":{"assignments":[4596],"declarations":[{"constant":false,"id":4596,"mutability":"mutable","name":"i","nameLocation":"542:1:19","nodeType":"VariableDeclaration","scope":4613,"src":"537:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4595,"name":"uint","nodeType":"ElementaryTypeName","src":"537:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4598,"initialValue":{"hexValue":"30","id":4597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"546:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"537:10:19"},"loopExpression":{"expression":{"id":4604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"572:3:19","subExpression":{"id":4603,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4596,"src":"572:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4605,"nodeType":"ExpressionStatement","src":"572:3:19"},"nodeType":"ForStatement","src":"532:97:19"}]},"id":4615,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","nodeType":"FunctionDefinition","parameters":{"id":4593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4592,"mutability":"mutable","name":"validators","nameLocation":"510:10:19","nodeType":"VariableDeclaration","scope":4615,"src":"493:27:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4590,"name":"address","nodeType":"ElementaryTypeName","src":"493:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4591,"nodeType":"ArrayTypeName","src":"493:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"492:29:19"},"returnParameters":{"id":4594,"nodeType":"ParameterList","parameters":[],"src":"522:0:19"},"scope":4775,"src":"481:154:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4627,"nodeType":"Block","src":"728:45:19","statements":[{"expression":{"arguments":[{"id":4624,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4617,"src":"761:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4622,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"745:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"757:3:19","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":3369,"src":"745:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$3342_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":4625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"745:21:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4621,"id":4626,"nodeType":"Return","src":"738:28:19"}]},"functionSelector":"4d238c8e","id":4628,"implemented":true,"kind":"function","modifiers":[],"name":"addValidator","nameLocation":"679:12:19","nodeType":"FunctionDefinition","parameters":{"id":4618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4617,"mutability":"mutable","name":"user","nameLocation":"700:4:19","nodeType":"VariableDeclaration","scope":4628,"src":"692:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4616,"name":"address","nodeType":"ElementaryTypeName","src":"692:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"691:14:19"},"returnParameters":{"id":4621,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4620,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4628,"src":"722:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4619,"name":"bool","nodeType":"ElementaryTypeName","src":"722:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"721:6:19"},"scope":4775,"src":"670:103:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4640,"nodeType":"Block","src":"869:48:19","statements":[{"expression":{"arguments":[{"id":4637,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4630,"src":"905:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4635,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"886:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"898:6:19","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":3396,"src":"886:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$3342_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"886:24:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4634,"id":4639,"nodeType":"Return","src":"879:31:19"}]},"functionSelector":"40a141ff","id":4641,"implemented":true,"kind":"function","modifiers":[],"name":"removeValidator","nameLocation":"817:15:19","nodeType":"FunctionDefinition","parameters":{"id":4631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4630,"mutability":"mutable","name":"user","nameLocation":"841:4:19","nodeType":"VariableDeclaration","scope":4641,"src":"833:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4629,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"832:14:19"},"returnParameters":{"id":4634,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4633,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4641,"src":"863:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4632,"name":"bool","nodeType":"ElementaryTypeName","src":"863:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"862:6:19"},"scope":4775,"src":"808:109:19","stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"body":{"id":4651,"nodeType":"Block","src":"1037:44:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4647,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"1054:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4648,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1066:6:19","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":3495,"src":"1054:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$3342_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":4649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:20:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":4646,"id":4650,"nodeType":"Return","src":"1047:27:19"}]},"functionSelector":"b7ab4db5","id":4652,"implemented":true,"kind":"function","modifiers":[],"name":"getValidators","nameLocation":"982:13:19","nodeType":"FunctionDefinition","parameters":{"id":4642,"nodeType":"ParameterList","parameters":[],"src":"995:2:19"},"returnParameters":{"id":4646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4652,"src":"1019:16:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":4643,"name":"address","nodeType":"ElementaryTypeName","src":"1019:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4644,"nodeType":"ArrayTypeName","src":"1019:9:19","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1018:18:19"},"scope":4775,"src":"973:108:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4664,"nodeType":"Block","src":"1149:50:19","statements":[{"expression":{"arguments":[{"id":4661,"name":"user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"1187:4:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4659,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"1166:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4660,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1178:8:19","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":3423,"src":"1166:20:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$3342_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":4662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1166:26:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4658,"id":4663,"nodeType":"Return","src":"1159:33:19"}]},"functionSelector":"facd743b","id":4665,"implemented":true,"kind":"function","modifiers":[],"name":"isValidator","nameLocation":"1096:11:19","nodeType":"FunctionDefinition","parameters":{"id":4655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4654,"mutability":"mutable","name":"user","nameLocation":"1116:4:19","nodeType":"VariableDeclaration","scope":4665,"src":"1108:12:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4653,"name":"address","nodeType":"ElementaryTypeName","src":"1108:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1107:14:19"},"returnParameters":{"id":4658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4657,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4665,"src":"1143:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4656,"name":"bool","nodeType":"ElementaryTypeName","src":"1143:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1142:6:19"},"scope":4775,"src":"1087:112:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4674,"nodeType":"Block","src":"1259:44:19","statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":4670,"name":"_validators","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"1276:11:19","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$3342_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":4671,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1288:6:19","memberName":"length","nodeType":"MemberAccess","referencedDeclaration":3438,"src":"1276:18:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$3342_storage_ptr_$returns$_t_uint256_$attached_to$_t_struct$_AddressSet_$3342_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (uint256)"}},"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1276:20:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4669,"id":4673,"nodeType":"Return","src":"1269:27:19"}]},"functionSelector":"ed612f8c","id":4675,"implemented":true,"kind":"function","modifiers":[],"name":"validatorsCount","nameLocation":"1214:15:19","nodeType":"FunctionDefinition","parameters":{"id":4666,"nodeType":"ParameterList","parameters":[],"src":"1229:2:19"},"returnParameters":{"id":4669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4668,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4675,"src":"1253:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4667,"name":"uint","nodeType":"ElementaryTypeName","src":"1253:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1252:6:19"},"scope":4775,"src":"1205:98:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4735,"nodeType":"Block","src":"1449:467:19","statements":[{"assignments":[4686],"declarations":[{"constant":false,"id":4686,"mutability":"mutable","name":"lastSigner","nameLocation":"1467:10:19","nodeType":"VariableDeclaration","scope":4735,"src":"1459:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4685,"name":"address","nodeType":"ElementaryTypeName","src":"1459:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4691,"initialValue":{"arguments":[{"hexValue":"30","id":4689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1488:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":4688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1480:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":4687,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:19","typeDescriptions":{}}},"id":4690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1480:10:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1459:31:19"},{"body":{"id":4731,"nodeType":"Block","src":"1546:343:19","statements":[{"assignments":[4704],"declarations":[{"constant":false,"id":4704,"mutability":"mutable","name":"signer","nameLocation":"1568:6:19","nodeType":"VariableDeclaration","scope":4731,"src":"1560:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4703,"name":"address","nodeType":"ElementaryTypeName","src":"1560:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4711,"initialValue":{"arguments":[{"baseExpression":{"id":4707,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4680,"src":"1606:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4709,"indexExpression":{"id":4708,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"1617:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1606:13:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4705,"name":"ethSignedMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4677,"src":"1577:20:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1598:7:19","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":1539,"src":"1577:28:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":4710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1577:43:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"1560:60:19"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":4715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4713,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"1659:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":4714,"name":"lastSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"1668:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1659:19:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5369676e617475726573206d75737420626520756e6971756520616e6420696e20696e6372656173696e67206f72646572","id":4716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1696:51:19","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42","typeString":"literal_string \"Signatures must be unique and in increasing order\""},"value":"Signatures must be unique and in increasing order"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42","typeString":"literal_string \"Signatures must be unique and in increasing order\""}],"id":4712,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1634:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1634:127:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4718,"nodeType":"ExpressionStatement","src":"1634:127:19"},{"condition":{"id":4722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"1779:20:19","subExpression":{"arguments":[{"id":4720,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"1792:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4719,"name":"isValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4665,"src":"1780:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1780:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4726,"nodeType":"IfStatement","src":"1775:71:19","trueBody":{"id":4725,"nodeType":"Block","src":"1801:45:19","statements":[{"expression":{"hexValue":"66616c7365","id":4723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1826:5:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":4684,"id":4724,"nodeType":"Return","src":"1819:12:19"}]}},{"expression":{"id":4729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":4727,"name":"lastSigner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4686,"src":"1859:10:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":4728,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4704,"src":"1872:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1859:19:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4730,"nodeType":"ExpressionStatement","src":"1859:19:19"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4696,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"1518:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":4697,"name":"signatures","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4680,"src":"1522:10:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":4698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1533:6:19","memberName":"length","nodeType":"MemberAccess","src":"1522:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1518:21:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4732,"initializationExpression":{"assignments":[4693],"declarations":[{"constant":false,"id":4693,"mutability":"mutable","name":"i","nameLocation":"1511:1:19","nodeType":"VariableDeclaration","scope":4732,"src":"1506:6:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4692,"name":"uint","nodeType":"ElementaryTypeName","src":"1506:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4695,"initialValue":{"hexValue":"30","id":4694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1515:1:19","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1506:10:19"},"loopExpression":{"expression":{"id":4701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1541:3:19","subExpression":{"id":4700,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"1541:1:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4702,"nodeType":"ExpressionStatement","src":"1541:3:19"},"nodeType":"ForStatement","src":"1501:388:19"},{"expression":{"hexValue":"74727565","id":4733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1905:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":4684,"id":4734,"nodeType":"Return","src":"1898:11:19"}]},"functionSelector":"7947c3fa","id":4736,"implemented":true,"kind":"function","modifiers":[],"name":"validateUniqueSignatures","nameLocation":"1318:24:19","nodeType":"FunctionDefinition","parameters":{"id":4681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4677,"mutability":"mutable","name":"ethSignedMessageHash","nameLocation":"1360:20:19","nodeType":"VariableDeclaration","scope":4736,"src":"1352:28:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4676,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1352:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4680,"mutability":"mutable","name":"signatures","nameLocation":"1405:10:19","nodeType":"VariableDeclaration","scope":4736,"src":"1390:25:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":4678,"name":"bytes","nodeType":"ElementaryTypeName","src":"1390:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":4679,"nodeType":"ArrayTypeName","src":"1390:7:19","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"1342:79:19"},"returnParameters":{"id":4684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4683,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4736,"src":"1443:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4682,"name":"bool","nodeType":"ElementaryTypeName","src":"1443:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1442:6:19"},"scope":4775,"src":"1309:607:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4752,"nodeType":"Block","src":"1987:57:19","statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":4743,"name":"count","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4738,"src":"2004:5:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"33","id":4744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2012:1:19","typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"2004:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":4746,"name":"validatorsCount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"2016:15:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2016:17:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":4748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2036:1:19","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2016:21:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2004:33:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4742,"id":4751,"nodeType":"Return","src":"1997:40:19"}]},"functionSelector":"3e99d941","id":4753,"implemented":true,"kind":"function","modifiers":[],"name":"hasSupermajority","nameLocation":"1931:16:19","nodeType":"FunctionDefinition","parameters":{"id":4739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4738,"mutability":"mutable","name":"count","nameLocation":"1953:5:19","nodeType":"VariableDeclaration","scope":4753,"src":"1948:10:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4737,"name":"uint","nodeType":"ElementaryTypeName","src":"1948:4:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1947:12:19"},"returnParameters":{"id":4742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4741,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4753,"src":"1981:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4740,"name":"bool","nodeType":"ElementaryTypeName","src":"1981:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1980:6:19"},"scope":4775,"src":"1922:122:19","stateMutability":"view","virtual":false,"visibility":"public"},{"body":{"id":4773,"nodeType":"Block","src":"2180:109:19","statements":[{"assignments":[4763],"declarations":[{"constant":false,"id":4763,"mutability":"mutable","name":"signer","nameLocation":"2198:6:19","nodeType":"VariableDeclaration","scope":4773,"src":"2190:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4762,"name":"address","nodeType":"ElementaryTypeName","src":"2190:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4768,"initialValue":{"arguments":[{"id":4766,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4757,"src":"2236:9:19","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4764,"name":"ethSignedMessageHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4755,"src":"2207:20:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2228:7:19","memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":1539,"src":"2207:28:19","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$attached_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":4767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2207:39:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2190:56:19"},{"expression":{"arguments":[{"id":4770,"name":"signer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4763,"src":"2275:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4769,"name":"isValidator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4665,"src":"2263:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":4771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2263:19:19","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":4761,"id":4772,"nodeType":"Return","src":"2256:26:19"}]},"functionSelector":"333daf92","id":4774,"implemented":true,"kind":"function","modifiers":[],"name":"validateSignature","nameLocation":"2059:17:19","nodeType":"FunctionDefinition","parameters":{"id":4758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4755,"mutability":"mutable","name":"ethSignedMessageHash","nameLocation":"2094:20:19","nodeType":"VariableDeclaration","scope":4774,"src":"2086:28:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2086:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":4757,"mutability":"mutable","name":"signature","nameLocation":"2137:9:19","nodeType":"VariableDeclaration","scope":4774,"src":"2124:22:19","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4756,"name":"bytes","nodeType":"ElementaryTypeName","src":"2124:5:19","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2076:76:19"},"returnParameters":{"id":4761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4760,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4774,"src":"2174:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4759,"name":"bool","nodeType":"ElementaryTypeName","src":"2174:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2173:6:19"},"scope":4775,"src":"2050:239:19","stateMutability":"view","virtual":false,"visibility":"public"}],"scope":4776,"src":"276:2015:19","usedErrors":[1446,1451,1456],"usedEvents":[]}],"src":"46:2246:19"},"id":19},"hardhat/console.sol":{"ast":{"absolutePath":"hardhat/console.sol","exportedSymbols":{"console":[12860]},"id":12861,"license":"MIT","nodeType":"SourceUnit","nodes":[{"id":4777,"literals":["solidity",">=","0.4",".22","<","0.9",".0"],"nodeType":"PragmaDirective","src":"32:32:20"},{"abstract":false,"baseContracts":[],"canonicalName":"console","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"id":12860,"linearizedBaseContracts":[12860],"name":"console","nameLocation":"74:7:20","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":4780,"mutability":"constant","name":"CONSOLE_ADDRESS","nameLocation":"105:15:20","nodeType":"VariableDeclaration","scope":12860,"src":"88:85:20","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4778,"name":"address","nodeType":"ElementaryTypeName","src":"88:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307830303030303030303030303030303030303036333646366537333646366336353265366336663637","id":4779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"131:42:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0x000000000000000000636F6e736F6c652e6c6f67"},"visibility":"internal"},{"body":{"id":4790,"nodeType":"Block","src":"255:388:20","statements":[{"assignments":[4786],"declarations":[{"constant":false,"id":4786,"mutability":"mutable","name":"consoleAddress","nameLocation":"273:14:20","nodeType":"VariableDeclaration","scope":4790,"src":"265:22:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4785,"name":"address","nodeType":"ElementaryTypeName","src":"265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":4788,"initialValue":{"id":4787,"name":"CONSOLE_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"290:15:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"265:40:20"},{"AST":{"nodeType":"YulBlock","src":"367:270:20","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"434:3:20"},"nodeType":"YulFunctionCall","src":"434:5:20"},{"name":"consoleAddress","nodeType":"YulIdentifier","src":"461:14:20"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"501:7:20"},{"kind":"number","nodeType":"YulLiteral","src":"510:2:20","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"497:3:20"},"nodeType":"YulFunctionCall","src":"497:16:20"},{"arguments":[{"name":"payload","nodeType":"YulIdentifier","src":"541:7:20"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"535:5:20"},"nodeType":"YulFunctionCall","src":"535:14:20"},{"kind":"number","nodeType":"YulLiteral","src":"571:1:20","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"594:1:20","type":"","value":"0"}],"functionName":{"name":"staticcall","nodeType":"YulIdentifier","src":"402:10:20"},"nodeType":"YulFunctionCall","src":"402:211:20"}],"functionName":{"name":"pop","nodeType":"YulIdentifier","src":"381:3:20"},"nodeType":"YulFunctionCall","src":"381:246:20"},"nodeType":"YulExpressionStatement","src":"381:246:20"}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":4786,"isOffset":false,"isSlot":false,"src":"461:14:20","valueSize":1},{"declaration":4782,"isOffset":false,"isSlot":false,"src":"501:7:20","valueSize":1},{"declaration":4782,"isOffset":false,"isSlot":false,"src":"541:7:20","valueSize":1}],"id":4789,"nodeType":"InlineAssembly","src":"358:279:20"}]},"id":4791,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayloadImplementation","nameLocation":"189:29:20","nodeType":"FunctionDefinition","parameters":{"id":4783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4782,"mutability":"mutable","name":"payload","nameLocation":"232:7:20","nodeType":"VariableDeclaration","scope":4791,"src":"219:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4781,"name":"bytes","nodeType":"ElementaryTypeName","src":"219:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"218:22:20"},"returnParameters":{"id":4784,"nodeType":"ParameterList","parameters":[],"src":"255:0:20"},"scope":12860,"src":"180:463:20","stateMutability":"view","virtual":false,"visibility":"internal"},{"body":{"id":4807,"nodeType":"Block","src":"783:62:20","statements":[{"AST":{"nodeType":"YulBlock","src":"802:37:20","statements":[{"nodeType":"YulAssignment","src":"816:13:20","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"825:4:20"},"variableNames":[{"name":"fnOut","nodeType":"YulIdentifier","src":"816:5:20"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":4797,"isOffset":false,"isSlot":false,"src":"825:4:20","valueSize":1},{"declaration":4804,"isOffset":false,"isSlot":false,"src":"816:5:20","valueSize":1}],"id":4806,"nodeType":"InlineAssembly","src":"793:46:20"}]},"id":4808,"implemented":true,"kind":"function","modifiers":[],"name":"_castToPure","nameLocation":"658:11:20","nodeType":"FunctionDefinition","parameters":{"id":4798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4797,"mutability":"mutable","name":"fnIn","nameLocation":"714:4:20","nodeType":"VariableDeclaration","scope":4808,"src":"677:41:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"typeName":{"id":4796,"nodeType":"FunctionTypeName","parameterTypes":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4796,"src":"686:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4792,"name":"bytes","nodeType":"ElementaryTypeName","src":"686:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"685:14:20"},"returnParameterTypes":{"id":4795,"nodeType":"ParameterList","parameters":[],"src":"714:0:20"},"src":"677:41:20","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) view"},"visibility":"internal"},"visibility":"internal"}],"src":"669:55:20"},"returnParameters":{"id":4805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4804,"mutability":"mutable","name":"fnOut","nameLocation":"776:5:20","nodeType":"VariableDeclaration","scope":4808,"src":"748:33:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"typeName":{"id":4803,"nodeType":"FunctionTypeName","parameterTypes":{"id":4801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4803,"src":"757:12:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4799,"name":"bytes","nodeType":"ElementaryTypeName","src":"757:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"756:14:20"},"returnParameterTypes":{"id":4802,"nodeType":"ParameterList","parameters":[],"src":"776:0:20"},"src":"748:33:20","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes) pure"},"visibility":"internal"},"visibility":"internal"}],"src":"747:35:20"},"scope":12860,"src":"649:196:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4819,"nodeType":"Block","src":"912:68:20","statements":[{"expression":{"arguments":[{"id":4816,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4810,"src":"965:7:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"id":4814,"name":"_sendLogPayloadImplementation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4791,"src":"934:29:20","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_internal_view$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) view"}],"id":4813,"name":"_castToPure","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4808,"src":"922:11:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_function_internal_view$_t_bytes_memory_ptr_$returns$__$_$returns$_t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$_$","typeString":"function (function (bytes memory) view) pure returns (function (bytes memory) pure)"}},"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"922:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4818,"nodeType":"ExpressionStatement","src":"922:51:20"}]},"id":4820,"implemented":true,"kind":"function","modifiers":[],"name":"_sendLogPayload","nameLocation":"860:15:20","nodeType":"FunctionDefinition","parameters":{"id":4811,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4810,"mutability":"mutable","name":"payload","nameLocation":"889:7:20","nodeType":"VariableDeclaration","scope":4820,"src":"876:20:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4809,"name":"bytes","nodeType":"ElementaryTypeName","src":"876:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"875:22:20"},"returnParameters":{"id":4812,"nodeType":"ParameterList","parameters":[],"src":"912:0:20"},"scope":12860,"src":"851:129:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4830,"nodeType":"Block","src":"1015:66:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672829","id":4826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1065:7:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""},"value":"log()"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51973ec9d4c1929bdd5b149c064d46aee47e92a7e2bb5f7a20c7b9cfb0d13b39","typeString":"literal_string \"log()\""}],"expression":{"id":4824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1041:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1045:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1041:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1041:32:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1025:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1025:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4829,"nodeType":"ExpressionStatement","src":"1025:49:20"}]},"id":4831,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"995:3:20","nodeType":"FunctionDefinition","parameters":{"id":4821,"nodeType":"ParameterList","parameters":[],"src":"998:2:20"},"returnParameters":{"id":4822,"nodeType":"ParameterList","parameters":[],"src":"1015:0:20"},"scope":12860,"src":"986:95:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4844,"nodeType":"Block","src":"1127:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728696e7432353629","id":4839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1177:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},"value":"log(int256)"},{"id":4840,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4833,"src":"1192:2:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d5b6cb95ba2d00a93cd4ffa61ec07ef4bb1694f20c02a3cccb170a38df81ef8","typeString":"literal_string \"log(int256)\""},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"id":4837,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1153:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4838,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1157:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1153:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1153:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4836,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1137:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1137:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4843,"nodeType":"ExpressionStatement","src":"1137:59:20"}]},"id":4845,"implemented":true,"kind":"function","modifiers":[],"name":"logInt","nameLocation":"1095:6:20","nodeType":"FunctionDefinition","parameters":{"id":4834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4833,"mutability":"mutable","name":"p0","nameLocation":"1109:2:20","nodeType":"VariableDeclaration","scope":4845,"src":"1102:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":4832,"name":"int256","nodeType":"ElementaryTypeName","src":"1102:6:20","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"1101:11:20"},"returnParameters":{"id":4835,"nodeType":"ParameterList","parameters":[],"src":"1127:0:20"},"scope":12860,"src":"1086:117:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4858,"nodeType":"Block","src":"1252:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1302:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":4854,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4847,"src":"1318:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":4851,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1278:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1282:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1278:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1278:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4850,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1262:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1262:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4857,"nodeType":"ExpressionStatement","src":"1262:60:20"}]},"id":4859,"implemented":true,"kind":"function","modifiers":[],"name":"logUint","nameLocation":"1218:7:20","nodeType":"FunctionDefinition","parameters":{"id":4848,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4847,"mutability":"mutable","name":"p0","nameLocation":"1234:2:20","nodeType":"VariableDeclaration","scope":4859,"src":"1226:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4846,"name":"uint256","nodeType":"ElementaryTypeName","src":"1226:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1225:12:20"},"returnParameters":{"id":4849,"nodeType":"ParameterList","parameters":[],"src":"1252:0:20"},"scope":12860,"src":"1209:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4872,"nodeType":"Block","src":"1386:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":4867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1436:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":4868,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4861,"src":"1451:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":4865,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1412:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4866,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1416:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1412:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1412:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4864,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1396:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1396:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4871,"nodeType":"ExpressionStatement","src":"1396:59:20"}]},"id":4873,"implemented":true,"kind":"function","modifiers":[],"name":"logString","nameLocation":"1344:9:20","nodeType":"FunctionDefinition","parameters":{"id":4862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4861,"mutability":"mutable","name":"p0","nameLocation":"1368:2:20","nodeType":"VariableDeclaration","scope":4873,"src":"1354:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":4860,"name":"string","nodeType":"ElementaryTypeName","src":"1354:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1353:18:20"},"returnParameters":{"id":4863,"nodeType":"ParameterList","parameters":[],"src":"1386:0:20"},"scope":12860,"src":"1335:127:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4886,"nodeType":"Block","src":"1508:74:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":4881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1558:11:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":4882,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4875,"src":"1571:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":4879,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1534:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1538:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1534:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1534:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4878,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1518:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1518:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4885,"nodeType":"ExpressionStatement","src":"1518:57:20"}]},"id":4887,"implemented":true,"kind":"function","modifiers":[],"name":"logBool","nameLocation":"1477:7:20","nodeType":"FunctionDefinition","parameters":{"id":4876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4875,"mutability":"mutable","name":"p0","nameLocation":"1490:2:20","nodeType":"VariableDeclaration","scope":4887,"src":"1485:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":4874,"name":"bool","nodeType":"ElementaryTypeName","src":"1485:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1484:9:20"},"returnParameters":{"id":4877,"nodeType":"ParameterList","parameters":[],"src":"1508:0:20"},"scope":12860,"src":"1468:114:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4900,"nodeType":"Block","src":"1634:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":4895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1684:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":4896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4889,"src":"1700:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":4893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1660:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1664:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1660:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1660:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1644:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1644:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4899,"nodeType":"ExpressionStatement","src":"1644:60:20"}]},"id":4901,"implemented":true,"kind":"function","modifiers":[],"name":"logAddress","nameLocation":"1597:10:20","nodeType":"FunctionDefinition","parameters":{"id":4890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4889,"mutability":"mutable","name":"p0","nameLocation":"1616:2:20","nodeType":"VariableDeclaration","scope":4901,"src":"1608:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4888,"name":"address","nodeType":"ElementaryTypeName","src":"1608:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1607:12:20"},"returnParameters":{"id":4891,"nodeType":"ParameterList","parameters":[],"src":"1634:0:20"},"scope":12860,"src":"1588:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4914,"nodeType":"Block","src":"1766:75:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728627974657329","id":4909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1816:12:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},"value":"log(bytes)"},{"id":4910,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4903,"src":"1830:2:20","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0be77f5642494da7d212b92a3472c4f471abb24e17467f41788e7de7915d6238","typeString":"literal_string \"log(bytes)\""},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":4907,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1792:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1796:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1792:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1792:41:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4906,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1776:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1776:58:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4913,"nodeType":"ExpressionStatement","src":"1776:58:20"}]},"id":4915,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes","nameLocation":"1726:8:20","nodeType":"FunctionDefinition","parameters":{"id":4904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4903,"mutability":"mutable","name":"p0","nameLocation":"1748:2:20","nodeType":"VariableDeclaration","scope":4915,"src":"1735:15:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":4902,"name":"bytes","nodeType":"ElementaryTypeName","src":"1735:5:20","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1734:17:20"},"returnParameters":{"id":4905,"nodeType":"ParameterList","parameters":[],"src":"1766:0:20"},"scope":12860,"src":"1717:124:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4928,"nodeType":"Block","src":"1891:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733129","id":4923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},"value":"log(bytes1)"},{"id":4924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4917,"src":"1956:2:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e18a1285e3dfba09579e846ff83d5e4ffae1b869c8fc4323752bab794e41041","typeString":"literal_string \"log(bytes1)\""},{"typeIdentifier":"t_bytes1","typeString":"bytes1"}],"expression":{"id":4921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1917:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1921:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"1917:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1917:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"1901:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1901:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4927,"nodeType":"ExpressionStatement","src":"1901:59:20"}]},"id":4929,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes1","nameLocation":"1856:9:20","nodeType":"FunctionDefinition","parameters":{"id":4918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4917,"mutability":"mutable","name":"p0","nameLocation":"1873:2:20","nodeType":"VariableDeclaration","scope":4929,"src":"1866:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"typeName":{"id":4916,"name":"bytes1","nodeType":"ElementaryTypeName","src":"1866:6:20","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"visibility":"internal"}],"src":"1865:11:20"},"returnParameters":{"id":4919,"nodeType":"ParameterList","parameters":[],"src":"1891:0:20"},"scope":12860,"src":"1847:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4942,"nodeType":"Block","src":"2017:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733229","id":4937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2067:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},"value":"log(bytes2)"},{"id":4938,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4931,"src":"2082:2:20","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9b622960ff3a0e86d35e876bfeba445fab6c5686604aa116c47c1e106921224","typeString":"literal_string \"log(bytes2)\""},{"typeIdentifier":"t_bytes2","typeString":"bytes2"}],"expression":{"id":4935,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2043:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2047:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2043:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2043:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4934,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2027:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2027:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4941,"nodeType":"ExpressionStatement","src":"2027:59:20"}]},"id":4943,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes2","nameLocation":"1982:9:20","nodeType":"FunctionDefinition","parameters":{"id":4932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4931,"mutability":"mutable","name":"p0","nameLocation":"1999:2:20","nodeType":"VariableDeclaration","scope":4943,"src":"1992:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"},"typeName":{"id":4930,"name":"bytes2","nodeType":"ElementaryTypeName","src":"1992:6:20","typeDescriptions":{"typeIdentifier":"t_bytes2","typeString":"bytes2"}},"visibility":"internal"}],"src":"1991:11:20"},"returnParameters":{"id":4933,"nodeType":"ParameterList","parameters":[],"src":"2017:0:20"},"scope":12860,"src":"1973:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4956,"nodeType":"Block","src":"2143:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733329","id":4951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2193:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},"value":"log(bytes3)"},{"id":4952,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4945,"src":"2208:2:20","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8349266851a1d92746f90a9696920643311d6bf462d9fa11e69718a636cbee","typeString":"literal_string \"log(bytes3)\""},{"typeIdentifier":"t_bytes3","typeString":"bytes3"}],"expression":{"id":4949,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2169:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2173:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2169:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2169:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4948,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2153:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4954,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2153:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4955,"nodeType":"ExpressionStatement","src":"2153:59:20"}]},"id":4957,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes3","nameLocation":"2108:9:20","nodeType":"FunctionDefinition","parameters":{"id":4946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4945,"mutability":"mutable","name":"p0","nameLocation":"2125:2:20","nodeType":"VariableDeclaration","scope":4957,"src":"2118:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"},"typeName":{"id":4944,"name":"bytes3","nodeType":"ElementaryTypeName","src":"2118:6:20","typeDescriptions":{"typeIdentifier":"t_bytes3","typeString":"bytes3"}},"visibility":"internal"}],"src":"2117:11:20"},"returnParameters":{"id":4947,"nodeType":"ParameterList","parameters":[],"src":"2143:0:20"},"scope":12860,"src":"2099:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4970,"nodeType":"Block","src":"2269:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733429","id":4965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2319:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},"value":"log(bytes4)"},{"id":4966,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"2334:2:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e05f48d17f80c0f06e82dc14f4be9f0f654dde2e722a8d8796ad7e07f5308d55","typeString":"literal_string \"log(bytes4)\""},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":4963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2295:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2299:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2295:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2295:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4962,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2279:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2279:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4969,"nodeType":"ExpressionStatement","src":"2279:59:20"}]},"id":4971,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes4","nameLocation":"2234:9:20","nodeType":"FunctionDefinition","parameters":{"id":4960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4959,"mutability":"mutable","name":"p0","nameLocation":"2251:2:20","nodeType":"VariableDeclaration","scope":4971,"src":"2244:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":4958,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2244:6:20","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2243:11:20"},"returnParameters":{"id":4961,"nodeType":"ParameterList","parameters":[],"src":"2269:0:20"},"scope":12860,"src":"2225:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4984,"nodeType":"Block","src":"2395:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733529","id":4979,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2445:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},"value":"log(bytes5)"},{"id":4980,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4973,"src":"2460:2:20","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a684808d222f8a67c08dd13085391d5e9d1825d9fb6e2da44a91b1a07d07401a","typeString":"literal_string \"log(bytes5)\""},{"typeIdentifier":"t_bytes5","typeString":"bytes5"}],"expression":{"id":4977,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2421:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4978,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2425:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2421:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2421:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4976,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2405:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2405:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4983,"nodeType":"ExpressionStatement","src":"2405:59:20"}]},"id":4985,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes5","nameLocation":"2360:9:20","nodeType":"FunctionDefinition","parameters":{"id":4974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4973,"mutability":"mutable","name":"p0","nameLocation":"2377:2:20","nodeType":"VariableDeclaration","scope":4985,"src":"2370:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"},"typeName":{"id":4972,"name":"bytes5","nodeType":"ElementaryTypeName","src":"2370:6:20","typeDescriptions":{"typeIdentifier":"t_bytes5","typeString":"bytes5"}},"visibility":"internal"}],"src":"2369:11:20"},"returnParameters":{"id":4975,"nodeType":"ParameterList","parameters":[],"src":"2395:0:20"},"scope":12860,"src":"2351:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":4998,"nodeType":"Block","src":"2521:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733629","id":4993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2571:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},"value":"log(bytes6)"},{"id":4994,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4987,"src":"2586:2:20","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae84a5910824668818be6031303edf0f6f3694b35d5e6f9683950d57ef12d330","typeString":"literal_string \"log(bytes6)\""},{"typeIdentifier":"t_bytes6","typeString":"bytes6"}],"expression":{"id":4991,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2547:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":4992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2551:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2547:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":4995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2547:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":4990,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2531:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2531:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4997,"nodeType":"ExpressionStatement","src":"2531:59:20"}]},"id":4999,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes6","nameLocation":"2486:9:20","nodeType":"FunctionDefinition","parameters":{"id":4988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4987,"mutability":"mutable","name":"p0","nameLocation":"2503:2:20","nodeType":"VariableDeclaration","scope":4999,"src":"2496:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"},"typeName":{"id":4986,"name":"bytes6","nodeType":"ElementaryTypeName","src":"2496:6:20","typeDescriptions":{"typeIdentifier":"t_bytes6","typeString":"bytes6"}},"visibility":"internal"}],"src":"2495:11:20"},"returnParameters":{"id":4989,"nodeType":"ParameterList","parameters":[],"src":"2521:0:20"},"scope":12860,"src":"2477:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5012,"nodeType":"Block","src":"2647:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733729","id":5007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2697:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},"value":"log(bytes7)"},{"id":5008,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5001,"src":"2712:2:20","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ed57e28813457436949e4ec0a834b3c8262cd6cebd21953ee0da3400ce2de29","typeString":"literal_string \"log(bytes7)\""},{"typeIdentifier":"t_bytes7","typeString":"bytes7"}],"expression":{"id":5005,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2673:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2677:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2673:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5004,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2657:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2657:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5011,"nodeType":"ExpressionStatement","src":"2657:59:20"}]},"id":5013,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes7","nameLocation":"2612:9:20","nodeType":"FunctionDefinition","parameters":{"id":5002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5001,"mutability":"mutable","name":"p0","nameLocation":"2629:2:20","nodeType":"VariableDeclaration","scope":5013,"src":"2622:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"},"typeName":{"id":5000,"name":"bytes7","nodeType":"ElementaryTypeName","src":"2622:6:20","typeDescriptions":{"typeIdentifier":"t_bytes7","typeString":"bytes7"}},"visibility":"internal"}],"src":"2621:11:20"},"returnParameters":{"id":5003,"nodeType":"ParameterList","parameters":[],"src":"2647:0:20"},"scope":12860,"src":"2603:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5026,"nodeType":"Block","src":"2773:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733829","id":5021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2823:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},"value":"log(bytes8)"},{"id":5022,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5015,"src":"2838:2:20","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f84252e5b28e1a0064346c7cd13650e2dd6020728ca468281bb2a28b42654b3","typeString":"literal_string \"log(bytes8)\""},{"typeIdentifier":"t_bytes8","typeString":"bytes8"}],"expression":{"id":5019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2799:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2803:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2799:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2799:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5018,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2783:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2783:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5025,"nodeType":"ExpressionStatement","src":"2783:59:20"}]},"id":5027,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes8","nameLocation":"2738:9:20","nodeType":"FunctionDefinition","parameters":{"id":5016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5015,"mutability":"mutable","name":"p0","nameLocation":"2755:2:20","nodeType":"VariableDeclaration","scope":5027,"src":"2748:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"},"typeName":{"id":5014,"name":"bytes8","nodeType":"ElementaryTypeName","src":"2748:6:20","typeDescriptions":{"typeIdentifier":"t_bytes8","typeString":"bytes8"}},"visibility":"internal"}],"src":"2747:11:20"},"returnParameters":{"id":5017,"nodeType":"ParameterList","parameters":[],"src":"2773:0:20"},"scope":12860,"src":"2729:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5040,"nodeType":"Block","src":"2899:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672862797465733929","id":5035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2949:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},"value":"log(bytes9)"},{"id":5036,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5029,"src":"2964:2:20","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90bd8cd0463fe91d31e59db57ee4cf8d778374c422b4b50e841266d9c2cc6667","typeString":"literal_string \"log(bytes9)\""},{"typeIdentifier":"t_bytes9","typeString":"bytes9"}],"expression":{"id":5033,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2925:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2929:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"2925:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2925:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5032,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"2909:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2909:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5039,"nodeType":"ExpressionStatement","src":"2909:59:20"}]},"id":5041,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes9","nameLocation":"2864:9:20","nodeType":"FunctionDefinition","parameters":{"id":5030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5029,"mutability":"mutable","name":"p0","nameLocation":"2881:2:20","nodeType":"VariableDeclaration","scope":5041,"src":"2874:9:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"},"typeName":{"id":5028,"name":"bytes9","nodeType":"ElementaryTypeName","src":"2874:6:20","typeDescriptions":{"typeIdentifier":"t_bytes9","typeString":"bytes9"}},"visibility":"internal"}],"src":"2873:11:20"},"returnParameters":{"id":5031,"nodeType":"ParameterList","parameters":[],"src":"2899:0:20"},"scope":12860,"src":"2855:120:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5054,"nodeType":"Block","src":"3027:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313029","id":5049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3077:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},"value":"log(bytes10)"},{"id":5050,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5043,"src":"3093:2:20","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_013d178bb749cf32d0f7243763667360eb91576261efe5ed9be72b4a2800fd66","typeString":"literal_string \"log(bytes10)\""},{"typeIdentifier":"t_bytes10","typeString":"bytes10"}],"expression":{"id":5047,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3053:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3057:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3053:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3053:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5046,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3037:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3037:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5053,"nodeType":"ExpressionStatement","src":"3037:60:20"}]},"id":5055,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes10","nameLocation":"2990:10:20","nodeType":"FunctionDefinition","parameters":{"id":5044,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5043,"mutability":"mutable","name":"p0","nameLocation":"3009:2:20","nodeType":"VariableDeclaration","scope":5055,"src":"3001:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"},"typeName":{"id":5042,"name":"bytes10","nodeType":"ElementaryTypeName","src":"3001:7:20","typeDescriptions":{"typeIdentifier":"t_bytes10","typeString":"bytes10"}},"visibility":"internal"}],"src":"3000:12:20"},"returnParameters":{"id":5045,"nodeType":"ParameterList","parameters":[],"src":"3027:0:20"},"scope":12860,"src":"2981:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5068,"nodeType":"Block","src":"3156:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313129","id":5063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3206:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},"value":"log(bytes11)"},{"id":5064,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5057,"src":"3222:2:20","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_04004a2e5bef8ca2e7ffd661b519aec3d9c1b8d0aa1e11656aab73b2726922d9","typeString":"literal_string \"log(bytes11)\""},{"typeIdentifier":"t_bytes11","typeString":"bytes11"}],"expression":{"id":5061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3182:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3186:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3182:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3182:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5060,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3166:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3166:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5067,"nodeType":"ExpressionStatement","src":"3166:60:20"}]},"id":5069,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes11","nameLocation":"3119:10:20","nodeType":"FunctionDefinition","parameters":{"id":5058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5057,"mutability":"mutable","name":"p0","nameLocation":"3138:2:20","nodeType":"VariableDeclaration","scope":5069,"src":"3130:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"},"typeName":{"id":5056,"name":"bytes11","nodeType":"ElementaryTypeName","src":"3130:7:20","typeDescriptions":{"typeIdentifier":"t_bytes11","typeString":"bytes11"}},"visibility":"internal"}],"src":"3129:12:20"},"returnParameters":{"id":5059,"nodeType":"ParameterList","parameters":[],"src":"3156:0:20"},"scope":12860,"src":"3110:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5082,"nodeType":"Block","src":"3285:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313229","id":5077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},"value":"log(bytes12)"},{"id":5078,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5071,"src":"3351:2:20","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_86a06abd704b9e5bab2216d456863046355f2def5304d8276c140d0d454fddf2","typeString":"literal_string \"log(bytes12)\""},{"typeIdentifier":"t_bytes12","typeString":"bytes12"}],"expression":{"id":5075,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3311:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3315:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3311:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3311:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5074,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3295:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3295:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5081,"nodeType":"ExpressionStatement","src":"3295:60:20"}]},"id":5083,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes12","nameLocation":"3248:10:20","nodeType":"FunctionDefinition","parameters":{"id":5072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5071,"mutability":"mutable","name":"p0","nameLocation":"3267:2:20","nodeType":"VariableDeclaration","scope":5083,"src":"3259:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"typeName":{"id":5070,"name":"bytes12","nodeType":"ElementaryTypeName","src":"3259:7:20","typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"visibility":"internal"}],"src":"3258:12:20"},"returnParameters":{"id":5073,"nodeType":"ParameterList","parameters":[],"src":"3285:0:20"},"scope":12860,"src":"3239:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5096,"nodeType":"Block","src":"3414:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313329","id":5091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3464:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},"value":"log(bytes13)"},{"id":5092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5085,"src":"3480:2:20","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94529e34a43ac6de2c3a0df402eee6114eb0f2ad065baefde0230cd3cf90e2ec","typeString":"literal_string \"log(bytes13)\""},{"typeIdentifier":"t_bytes13","typeString":"bytes13"}],"expression":{"id":5089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3440:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3444:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3440:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3440:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3424:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3424:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5095,"nodeType":"ExpressionStatement","src":"3424:60:20"}]},"id":5097,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes13","nameLocation":"3377:10:20","nodeType":"FunctionDefinition","parameters":{"id":5086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5085,"mutability":"mutable","name":"p0","nameLocation":"3396:2:20","nodeType":"VariableDeclaration","scope":5097,"src":"3388:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"},"typeName":{"id":5084,"name":"bytes13","nodeType":"ElementaryTypeName","src":"3388:7:20","typeDescriptions":{"typeIdentifier":"t_bytes13","typeString":"bytes13"}},"visibility":"internal"}],"src":"3387:12:20"},"returnParameters":{"id":5087,"nodeType":"ParameterList","parameters":[],"src":"3414:0:20"},"scope":12860,"src":"3368:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5110,"nodeType":"Block","src":"3543:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313429","id":5105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3593:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},"value":"log(bytes14)"},{"id":5106,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5099,"src":"3609:2:20","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9266f07faf32c88bbdb01ce418243acbc1c63e15d6e3afa16078186ba711f278","typeString":"literal_string \"log(bytes14)\""},{"typeIdentifier":"t_bytes14","typeString":"bytes14"}],"expression":{"id":5103,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3569:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3573:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3569:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3569:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5102,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3553:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5109,"nodeType":"ExpressionStatement","src":"3553:60:20"}]},"id":5111,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes14","nameLocation":"3506:10:20","nodeType":"FunctionDefinition","parameters":{"id":5100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5099,"mutability":"mutable","name":"p0","nameLocation":"3525:2:20","nodeType":"VariableDeclaration","scope":5111,"src":"3517:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"},"typeName":{"id":5098,"name":"bytes14","nodeType":"ElementaryTypeName","src":"3517:7:20","typeDescriptions":{"typeIdentifier":"t_bytes14","typeString":"bytes14"}},"visibility":"internal"}],"src":"3516:12:20"},"returnParameters":{"id":5101,"nodeType":"ParameterList","parameters":[],"src":"3543:0:20"},"scope":12860,"src":"3497:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5124,"nodeType":"Block","src":"3672:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313529","id":5119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3722:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},"value":"log(bytes15)"},{"id":5120,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5113,"src":"3738:2:20","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da9574e0bf3f23e09c3d85c9f5226065bb36281f2a5d78c7e38f6ffd58919606","typeString":"literal_string \"log(bytes15)\""},{"typeIdentifier":"t_bytes15","typeString":"bytes15"}],"expression":{"id":5117,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3698:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3702:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3698:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5121,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3698:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5116,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3682:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3682:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5123,"nodeType":"ExpressionStatement","src":"3682:60:20"}]},"id":5125,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes15","nameLocation":"3635:10:20","nodeType":"FunctionDefinition","parameters":{"id":5114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5113,"mutability":"mutable","name":"p0","nameLocation":"3654:2:20","nodeType":"VariableDeclaration","scope":5125,"src":"3646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"},"typeName":{"id":5112,"name":"bytes15","nodeType":"ElementaryTypeName","src":"3646:7:20","typeDescriptions":{"typeIdentifier":"t_bytes15","typeString":"bytes15"}},"visibility":"internal"}],"src":"3645:12:20"},"returnParameters":{"id":5115,"nodeType":"ParameterList","parameters":[],"src":"3672:0:20"},"scope":12860,"src":"3626:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5138,"nodeType":"Block","src":"3801:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313629","id":5133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3851:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},"value":"log(bytes16)"},{"id":5134,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5127,"src":"3867:2:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665c61046af0adc4969f9d2f111b654775bd58f112b63e5ce7dfff29c000e9f3","typeString":"literal_string \"log(bytes16)\""},{"typeIdentifier":"t_bytes16","typeString":"bytes16"}],"expression":{"id":5131,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3827:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3831:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3827:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3827:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5130,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3811:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3811:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5137,"nodeType":"ExpressionStatement","src":"3811:60:20"}]},"id":5139,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes16","nameLocation":"3764:10:20","nodeType":"FunctionDefinition","parameters":{"id":5128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5127,"mutability":"mutable","name":"p0","nameLocation":"3783:2:20","nodeType":"VariableDeclaration","scope":5139,"src":"3775:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"},"typeName":{"id":5126,"name":"bytes16","nodeType":"ElementaryTypeName","src":"3775:7:20","typeDescriptions":{"typeIdentifier":"t_bytes16","typeString":"bytes16"}},"visibility":"internal"}],"src":"3774:12:20"},"returnParameters":{"id":5129,"nodeType":"ParameterList","parameters":[],"src":"3801:0:20"},"scope":12860,"src":"3755:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5152,"nodeType":"Block","src":"3930:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313729","id":5147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3980:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},"value":"log(bytes17)"},{"id":5148,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"3996:2:20","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_339f673a0c008974259a0022c9b150cc5d1af8c58584412fe373d84bd08d4ea3","typeString":"literal_string \"log(bytes17)\""},{"typeIdentifier":"t_bytes17","typeString":"bytes17"}],"expression":{"id":5145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3956:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3960:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"3956:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5144,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"3940:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3940:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5151,"nodeType":"ExpressionStatement","src":"3940:60:20"}]},"id":5153,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes17","nameLocation":"3893:10:20","nodeType":"FunctionDefinition","parameters":{"id":5142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5141,"mutability":"mutable","name":"p0","nameLocation":"3912:2:20","nodeType":"VariableDeclaration","scope":5153,"src":"3904:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"},"typeName":{"id":5140,"name":"bytes17","nodeType":"ElementaryTypeName","src":"3904:7:20","typeDescriptions":{"typeIdentifier":"t_bytes17","typeString":"bytes17"}},"visibility":"internal"}],"src":"3903:12:20"},"returnParameters":{"id":5143,"nodeType":"ParameterList","parameters":[],"src":"3930:0:20"},"scope":12860,"src":"3884:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5166,"nodeType":"Block","src":"4059:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313829","id":5161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4109:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},"value":"log(bytes18)"},{"id":5162,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5155,"src":"4125:2:20","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4d23d9af6458d5ddc7cb8128a2f36bf147c9db4fe277dfe0fe7be41def62116","typeString":"literal_string \"log(bytes18)\""},{"typeIdentifier":"t_bytes18","typeString":"bytes18"}],"expression":{"id":5159,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4085:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4089:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4085:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4085:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5158,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4069:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5165,"nodeType":"ExpressionStatement","src":"4069:60:20"}]},"id":5167,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes18","nameLocation":"4022:10:20","nodeType":"FunctionDefinition","parameters":{"id":5156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5155,"mutability":"mutable","name":"p0","nameLocation":"4041:2:20","nodeType":"VariableDeclaration","scope":5167,"src":"4033:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"},"typeName":{"id":5154,"name":"bytes18","nodeType":"ElementaryTypeName","src":"4033:7:20","typeDescriptions":{"typeIdentifier":"t_bytes18","typeString":"bytes18"}},"visibility":"internal"}],"src":"4032:12:20"},"returnParameters":{"id":5157,"nodeType":"ParameterList","parameters":[],"src":"4059:0:20"},"scope":12860,"src":"4013:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5180,"nodeType":"Block","src":"4188:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573313929","id":5175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4238:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},"value":"log(bytes19)"},{"id":5176,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5169,"src":"4254:2:20","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e6b5a33524ca650028e2fad735b4ab50285bba37658119d2da303bee98aeada","typeString":"literal_string \"log(bytes19)\""},{"typeIdentifier":"t_bytes19","typeString":"bytes19"}],"expression":{"id":5173,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4214:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4218:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4214:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4214:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5172,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4198:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4198:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5179,"nodeType":"ExpressionStatement","src":"4198:60:20"}]},"id":5181,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes19","nameLocation":"4151:10:20","nodeType":"FunctionDefinition","parameters":{"id":5170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5169,"mutability":"mutable","name":"p0","nameLocation":"4170:2:20","nodeType":"VariableDeclaration","scope":5181,"src":"4162:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"},"typeName":{"id":5168,"name":"bytes19","nodeType":"ElementaryTypeName","src":"4162:7:20","typeDescriptions":{"typeIdentifier":"t_bytes19","typeString":"bytes19"}},"visibility":"internal"}],"src":"4161:12:20"},"returnParameters":{"id":5171,"nodeType":"ParameterList","parameters":[],"src":"4188:0:20"},"scope":12860,"src":"4142:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5194,"nodeType":"Block","src":"4317:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323029","id":5189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4367:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},"value":"log(bytes20)"},{"id":5190,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5183,"src":"4383:2:20","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5188e3e9b3f117a223e2e428d0e13d089f3a53913e479000b94b85266ecf8231","typeString":"literal_string \"log(bytes20)\""},{"typeIdentifier":"t_bytes20","typeString":"bytes20"}],"expression":{"id":5187,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4343:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4347:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4343:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4343:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5186,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4327:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4327:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5193,"nodeType":"ExpressionStatement","src":"4327:60:20"}]},"id":5195,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes20","nameLocation":"4280:10:20","nodeType":"FunctionDefinition","parameters":{"id":5184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5183,"mutability":"mutable","name":"p0","nameLocation":"4299:2:20","nodeType":"VariableDeclaration","scope":5195,"src":"4291:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"typeName":{"id":5182,"name":"bytes20","nodeType":"ElementaryTypeName","src":"4291:7:20","typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"visibility":"internal"}],"src":"4290:12:20"},"returnParameters":{"id":5185,"nodeType":"ParameterList","parameters":[],"src":"4317:0:20"},"scope":12860,"src":"4271:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5208,"nodeType":"Block","src":"4446:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323129","id":5203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4496:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},"value":"log(bytes21)"},{"id":5204,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"4512:2:20","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e9da35608192a6b38ad5ef62cf738886973b011b8cdb7e81cdd51b4c3dfe8ad7","typeString":"literal_string \"log(bytes21)\""},{"typeIdentifier":"t_bytes21","typeString":"bytes21"}],"expression":{"id":5201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4472:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4476:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4472:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4472:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5200,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4456:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4456:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5207,"nodeType":"ExpressionStatement","src":"4456:60:20"}]},"id":5209,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes21","nameLocation":"4409:10:20","nodeType":"FunctionDefinition","parameters":{"id":5198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5197,"mutability":"mutable","name":"p0","nameLocation":"4428:2:20","nodeType":"VariableDeclaration","scope":5209,"src":"4420:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"},"typeName":{"id":5196,"name":"bytes21","nodeType":"ElementaryTypeName","src":"4420:7:20","typeDescriptions":{"typeIdentifier":"t_bytes21","typeString":"bytes21"}},"visibility":"internal"}],"src":"4419:12:20"},"returnParameters":{"id":5199,"nodeType":"ParameterList","parameters":[],"src":"4446:0:20"},"scope":12860,"src":"4400:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5222,"nodeType":"Block","src":"4575:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323229","id":5217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4625:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},"value":"log(bytes22)"},{"id":5218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5211,"src":"4641:2:20","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d5fae89c25bed6f12b105f52db0a0ff6f5c8313613e12eccd3059bb7f7ea6575","typeString":"literal_string \"log(bytes22)\""},{"typeIdentifier":"t_bytes22","typeString":"bytes22"}],"expression":{"id":5215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4601:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4605:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4601:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4601:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4585:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4585:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"4585:60:20"}]},"id":5223,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes22","nameLocation":"4538:10:20","nodeType":"FunctionDefinition","parameters":{"id":5212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5211,"mutability":"mutable","name":"p0","nameLocation":"4557:2:20","nodeType":"VariableDeclaration","scope":5223,"src":"4549:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"},"typeName":{"id":5210,"name":"bytes22","nodeType":"ElementaryTypeName","src":"4549:7:20","typeDescriptions":{"typeIdentifier":"t_bytes22","typeString":"bytes22"}},"visibility":"internal"}],"src":"4548:12:20"},"returnParameters":{"id":5213,"nodeType":"ParameterList","parameters":[],"src":"4575:0:20"},"scope":12860,"src":"4529:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5236,"nodeType":"Block","src":"4704:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323329","id":5231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4754:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},"value":"log(bytes23)"},{"id":5232,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5225,"src":"4770:2:20","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aba1cf0dcd316c862bc06d4cf532375fed11c1e0897ba81a04ee0b22d3f14061","typeString":"literal_string \"log(bytes23)\""},{"typeIdentifier":"t_bytes23","typeString":"bytes23"}],"expression":{"id":5229,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4730:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4734:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4730:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4730:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5228,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4714:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4714:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5235,"nodeType":"ExpressionStatement","src":"4714:60:20"}]},"id":5237,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes23","nameLocation":"4667:10:20","nodeType":"FunctionDefinition","parameters":{"id":5226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5225,"mutability":"mutable","name":"p0","nameLocation":"4686:2:20","nodeType":"VariableDeclaration","scope":5237,"src":"4678:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"},"typeName":{"id":5224,"name":"bytes23","nodeType":"ElementaryTypeName","src":"4678:7:20","typeDescriptions":{"typeIdentifier":"t_bytes23","typeString":"bytes23"}},"visibility":"internal"}],"src":"4677:12:20"},"returnParameters":{"id":5227,"nodeType":"ParameterList","parameters":[],"src":"4704:0:20"},"scope":12860,"src":"4658:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5250,"nodeType":"Block","src":"4833:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323429","id":5245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4883:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},"value":"log(bytes24)"},{"id":5246,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5239,"src":"4899:2:20","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f1b35b3488a5452bceb48624d6ba2a791e58f0e9c0f4b86b8f51186ec7a7edf4","typeString":"literal_string \"log(bytes24)\""},{"typeIdentifier":"t_bytes24","typeString":"bytes24"}],"expression":{"id":5243,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4859:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4863:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4859:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4859:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5242,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4843:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4843:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5249,"nodeType":"ExpressionStatement","src":"4843:60:20"}]},"id":5251,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes24","nameLocation":"4796:10:20","nodeType":"FunctionDefinition","parameters":{"id":5240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5239,"mutability":"mutable","name":"p0","nameLocation":"4815:2:20","nodeType":"VariableDeclaration","scope":5251,"src":"4807:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"},"typeName":{"id":5238,"name":"bytes24","nodeType":"ElementaryTypeName","src":"4807:7:20","typeDescriptions":{"typeIdentifier":"t_bytes24","typeString":"bytes24"}},"visibility":"internal"}],"src":"4806:12:20"},"returnParameters":{"id":5241,"nodeType":"ParameterList","parameters":[],"src":"4833:0:20"},"scope":12860,"src":"4787:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5264,"nodeType":"Block","src":"4962:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323529","id":5259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5012:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},"value":"log(bytes25)"},{"id":5260,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5253,"src":"5028:2:20","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0b84bc580db9be1295ee23dff6122da1f70381c83abf9a74953cca11238eda25","typeString":"literal_string \"log(bytes25)\""},{"typeIdentifier":"t_bytes25","typeString":"bytes25"}],"expression":{"id":5257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4988:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4992:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"4988:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4988:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5256,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"4972:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4972:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5263,"nodeType":"ExpressionStatement","src":"4972:60:20"}]},"id":5265,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes25","nameLocation":"4925:10:20","nodeType":"FunctionDefinition","parameters":{"id":5254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5253,"mutability":"mutable","name":"p0","nameLocation":"4944:2:20","nodeType":"VariableDeclaration","scope":5265,"src":"4936:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"},"typeName":{"id":5252,"name":"bytes25","nodeType":"ElementaryTypeName","src":"4936:7:20","typeDescriptions":{"typeIdentifier":"t_bytes25","typeString":"bytes25"}},"visibility":"internal"}],"src":"4935:12:20"},"returnParameters":{"id":5255,"nodeType":"ParameterList","parameters":[],"src":"4962:0:20"},"scope":12860,"src":"4916:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5278,"nodeType":"Block","src":"5091:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323629","id":5273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5141:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},"value":"log(bytes26)"},{"id":5274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"5157:2:20","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8b149f18dc341f1a56e26c6c24a5233eec3bbb2ab017e9e86e663aae743965b","typeString":"literal_string \"log(bytes26)\""},{"typeIdentifier":"t_bytes26","typeString":"bytes26"}],"expression":{"id":5271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5117:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5121:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5117:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5117:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5101:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5101:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5277,"nodeType":"ExpressionStatement","src":"5101:60:20"}]},"id":5279,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes26","nameLocation":"5054:10:20","nodeType":"FunctionDefinition","parameters":{"id":5268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5267,"mutability":"mutable","name":"p0","nameLocation":"5073:2:20","nodeType":"VariableDeclaration","scope":5279,"src":"5065:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"},"typeName":{"id":5266,"name":"bytes26","nodeType":"ElementaryTypeName","src":"5065:7:20","typeDescriptions":{"typeIdentifier":"t_bytes26","typeString":"bytes26"}},"visibility":"internal"}],"src":"5064:12:20"},"returnParameters":{"id":5269,"nodeType":"ParameterList","parameters":[],"src":"5091:0:20"},"scope":12860,"src":"5045:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5292,"nodeType":"Block","src":"5220:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323729","id":5287,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5270:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},"value":"log(bytes27)"},{"id":5288,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"5286:2:20","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3a3757dda92e8e238aa23ff7f6f62e31074f6acccca8986ec1286b5a835236b6","typeString":"literal_string \"log(bytes27)\""},{"typeIdentifier":"t_bytes27","typeString":"bytes27"}],"expression":{"id":5285,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5246:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5250:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5246:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5246:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5284,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5230:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5230:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5291,"nodeType":"ExpressionStatement","src":"5230:60:20"}]},"id":5293,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes27","nameLocation":"5183:10:20","nodeType":"FunctionDefinition","parameters":{"id":5282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5281,"mutability":"mutable","name":"p0","nameLocation":"5202:2:20","nodeType":"VariableDeclaration","scope":5293,"src":"5194:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"},"typeName":{"id":5280,"name":"bytes27","nodeType":"ElementaryTypeName","src":"5194:7:20","typeDescriptions":{"typeIdentifier":"t_bytes27","typeString":"bytes27"}},"visibility":"internal"}],"src":"5193:12:20"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[],"src":"5220:0:20"},"scope":12860,"src":"5174:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5306,"nodeType":"Block","src":"5349:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323829","id":5301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5399:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},"value":"log(bytes28)"},{"id":5302,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5295,"src":"5415:2:20","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c82aeaee74a6ddec4ccd5cfe60e816752c02c70838f0908bd4a6e82866b3a042","typeString":"literal_string \"log(bytes28)\""},{"typeIdentifier":"t_bytes28","typeString":"bytes28"}],"expression":{"id":5299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5375:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5379:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5375:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5375:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5298,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5359:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5359:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5305,"nodeType":"ExpressionStatement","src":"5359:60:20"}]},"id":5307,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes28","nameLocation":"5312:10:20","nodeType":"FunctionDefinition","parameters":{"id":5296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5295,"mutability":"mutable","name":"p0","nameLocation":"5331:2:20","nodeType":"VariableDeclaration","scope":5307,"src":"5323:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"},"typeName":{"id":5294,"name":"bytes28","nodeType":"ElementaryTypeName","src":"5323:7:20","typeDescriptions":{"typeIdentifier":"t_bytes28","typeString":"bytes28"}},"visibility":"internal"}],"src":"5322:12:20"},"returnParameters":{"id":5297,"nodeType":"ParameterList","parameters":[],"src":"5349:0:20"},"scope":12860,"src":"5303:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5320,"nodeType":"Block","src":"5478:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573323929","id":5315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5528:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},"value":"log(bytes29)"},{"id":5316,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5309,"src":"5544:2:20","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b69c3d5f782ef1bdb62d5bb42d4987f16799030ba447bb153d465bd3a3a5667","typeString":"literal_string \"log(bytes29)\""},{"typeIdentifier":"t_bytes29","typeString":"bytes29"}],"expression":{"id":5313,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5504:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5314,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5508:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5504:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5312,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5488:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5488:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5319,"nodeType":"ExpressionStatement","src":"5488:60:20"}]},"id":5321,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes29","nameLocation":"5441:10:20","nodeType":"FunctionDefinition","parameters":{"id":5310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5309,"mutability":"mutable","name":"p0","nameLocation":"5460:2:20","nodeType":"VariableDeclaration","scope":5321,"src":"5452:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"},"typeName":{"id":5308,"name":"bytes29","nodeType":"ElementaryTypeName","src":"5452:7:20","typeDescriptions":{"typeIdentifier":"t_bytes29","typeString":"bytes29"}},"visibility":"internal"}],"src":"5451:12:20"},"returnParameters":{"id":5311,"nodeType":"ParameterList","parameters":[],"src":"5478:0:20"},"scope":12860,"src":"5432:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5334,"nodeType":"Block","src":"5607:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333029","id":5329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5657:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},"value":"log(bytes30)"},{"id":5330,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5323,"src":"5673:2:20","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ee12c4edbd73d98174a6bf3454562c4874f59cb381176b662ca65f625f97d6ad","typeString":"literal_string \"log(bytes30)\""},{"typeIdentifier":"t_bytes30","typeString":"bytes30"}],"expression":{"id":5327,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5633:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5328,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5637:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5633:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5633:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5326,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5617:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5617:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5333,"nodeType":"ExpressionStatement","src":"5617:60:20"}]},"id":5335,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes30","nameLocation":"5570:10:20","nodeType":"FunctionDefinition","parameters":{"id":5324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5323,"mutability":"mutable","name":"p0","nameLocation":"5589:2:20","nodeType":"VariableDeclaration","scope":5335,"src":"5581:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"},"typeName":{"id":5322,"name":"bytes30","nodeType":"ElementaryTypeName","src":"5581:7:20","typeDescriptions":{"typeIdentifier":"t_bytes30","typeString":"bytes30"}},"visibility":"internal"}],"src":"5580:12:20"},"returnParameters":{"id":5325,"nodeType":"ParameterList","parameters":[],"src":"5607:0:20"},"scope":12860,"src":"5561:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5348,"nodeType":"Block","src":"5736:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333129","id":5343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},"value":"log(bytes31)"},{"id":5344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5337,"src":"5802:2:20","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c2854d92a0707e582e2710f9c9d3f148fdcf7e7da3b4270c2cfa3e223a2c50ce","typeString":"literal_string \"log(bytes31)\""},{"typeIdentifier":"t_bytes31","typeString":"bytes31"}],"expression":{"id":5341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5762:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5766:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5762:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5762:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5746:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5746:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5347,"nodeType":"ExpressionStatement","src":"5746:60:20"}]},"id":5349,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes31","nameLocation":"5699:10:20","nodeType":"FunctionDefinition","parameters":{"id":5338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5337,"mutability":"mutable","name":"p0","nameLocation":"5718:2:20","nodeType":"VariableDeclaration","scope":5349,"src":"5710:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"},"typeName":{"id":5336,"name":"bytes31","nodeType":"ElementaryTypeName","src":"5710:7:20","typeDescriptions":{"typeIdentifier":"t_bytes31","typeString":"bytes31"}},"visibility":"internal"}],"src":"5709:12:20"},"returnParameters":{"id":5339,"nodeType":"ParameterList","parameters":[],"src":"5736:0:20"},"scope":12860,"src":"5690:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5362,"nodeType":"Block","src":"5865:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286279746573333229","id":5357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5915:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},"value":"log(bytes32)"},{"id":5358,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5351,"src":"5931:2:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27b7cf8513ac6b65cae720183e1e60e67f8a9d92c01286c19d51d4e30aa269da","typeString":"literal_string \"log(bytes32)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5355,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5891:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5895:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"5891:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5354,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5875:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5875:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5361,"nodeType":"ExpressionStatement","src":"5875:60:20"}]},"id":5363,"implemented":true,"kind":"function","modifiers":[],"name":"logBytes32","nameLocation":"5828:10:20","nodeType":"FunctionDefinition","parameters":{"id":5352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5351,"mutability":"mutable","name":"p0","nameLocation":"5847:2:20","nodeType":"VariableDeclaration","scope":5363,"src":"5839:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5350,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5839:7:20","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5838:12:20"},"returnParameters":{"id":5353,"nodeType":"ParameterList","parameters":[],"src":"5865:0:20"},"scope":12860,"src":"5819:123:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5376,"nodeType":"Block","src":"5987:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e7432353629","id":5371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6037:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},"value":"log(uint256)"},{"id":5372,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5365,"src":"6053:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f82c50f1848136e6c140b186ea0c768b7deda5efffe42c25e96336a90b26c744","typeString":"literal_string \"log(uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5369,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6013:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6017:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6013:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6013:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5368,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"5997:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5997:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5375,"nodeType":"ExpressionStatement","src":"5997:60:20"}]},"id":5377,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"5957:3:20","nodeType":"FunctionDefinition","parameters":{"id":5366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5365,"mutability":"mutable","name":"p0","nameLocation":"5969:2:20","nodeType":"VariableDeclaration","scope":5377,"src":"5961:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5364,"name":"uint256","nodeType":"ElementaryTypeName","src":"5961:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5960:12:20"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[],"src":"5987:0:20"},"scope":12860,"src":"5948:116:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5390,"nodeType":"Block","src":"6115:76:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e6729","id":5385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6165:13:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},"value":"log(string)"},{"id":5386,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5379,"src":"6180:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_41304facd9323d75b11bcdd609cb38effffdb05710f7caf0e9b16c6d9d709f50","typeString":"literal_string \"log(string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5383,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6141:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6145:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6141:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6141:42:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5382,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6125:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6125:59:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5389,"nodeType":"ExpressionStatement","src":"6125:59:20"}]},"id":5391,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6079:3:20","nodeType":"FunctionDefinition","parameters":{"id":5380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5379,"mutability":"mutable","name":"p0","nameLocation":"6097:2:20","nodeType":"VariableDeclaration","scope":5391,"src":"6083:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5378,"name":"string","nodeType":"ElementaryTypeName","src":"6083:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6082:18:20"},"returnParameters":{"id":5381,"nodeType":"ParameterList","parameters":[],"src":"6115:0:20"},"scope":12860,"src":"6070:121:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5404,"nodeType":"Block","src":"6233:74:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c29","id":5399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6283:11:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},"value":"log(bool)"},{"id":5400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5393,"src":"6296:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_32458eed3feca62a69292a55ca8a755ae4e6cdc57a38d15c298330064467fdd7","typeString":"literal_string \"log(bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6259:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6263:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6259:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6259:40:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6243:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6243:57:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5403,"nodeType":"ExpressionStatement","src":"6243:57:20"}]},"id":5405,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6206:3:20","nodeType":"FunctionDefinition","parameters":{"id":5394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5393,"mutability":"mutable","name":"p0","nameLocation":"6215:2:20","nodeType":"VariableDeclaration","scope":5405,"src":"6210:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5392,"name":"bool","nodeType":"ElementaryTypeName","src":"6210:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6209:9:20"},"returnParameters":{"id":5395,"nodeType":"ParameterList","parameters":[],"src":"6233:0:20"},"scope":12860,"src":"6197:110:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5418,"nodeType":"Block","src":"6352:77:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f67286164647265737329","id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6402:14:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},"value":"log(address)"},{"id":5414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"6418:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c2ecbc2212ac38c2f9ec89aa5fcef7f532a5db24dbf7cad1f48bc82843b7428","typeString":"literal_string \"log(address)\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6378:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6382:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6378:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:43:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6362:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5417,"nodeType":"ExpressionStatement","src":"6362:60:20"}]},"id":5419,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6322:3:20","nodeType":"FunctionDefinition","parameters":{"id":5408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5407,"mutability":"mutable","name":"p0","nameLocation":"6334:2:20","nodeType":"VariableDeclaration","scope":5419,"src":"6326:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5406,"name":"address","nodeType":"ElementaryTypeName","src":"6326:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6325:12:20"},"returnParameters":{"id":5409,"nodeType":"ParameterList","parameters":[],"src":"6352:0:20"},"scope":12860,"src":"6313:116:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5435,"nodeType":"Block","src":"6486:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e7432353629","id":5429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6536:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},"value":"log(uint256,uint256)"},{"id":5430,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5421,"src":"6560:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5431,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5423,"src":"6564:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f666715aa6b8e8ce32bd39173f51eea0643fdd246a826c4756c2f168022b6eb5","typeString":"literal_string \"log(uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5427,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6512:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6516:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6512:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6512:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5426,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6496:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5434,"nodeType":"ExpressionStatement","src":"6496:72:20"}]},"id":5436,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6444:3:20","nodeType":"FunctionDefinition","parameters":{"id":5424,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5421,"mutability":"mutable","name":"p0","nameLocation":"6456:2:20","nodeType":"VariableDeclaration","scope":5436,"src":"6448:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5420,"name":"uint256","nodeType":"ElementaryTypeName","src":"6448:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5423,"mutability":"mutable","name":"p1","nameLocation":"6468:2:20","nodeType":"VariableDeclaration","scope":5436,"src":"6460:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5422,"name":"uint256","nodeType":"ElementaryTypeName","src":"6460:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6447:24:20"},"returnParameters":{"id":5425,"nodeType":"ParameterList","parameters":[],"src":"6486:0:20"},"scope":12860,"src":"6435:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5452,"nodeType":"Block","src":"6638:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e6729","id":5446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6688:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},"value":"log(uint256,string)"},{"id":5447,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"6711:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5448,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5440,"src":"6715:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_643fd0df4c7dfb004c6169012c8aec390bd7246941d7fe467022f10f2da987c3","typeString":"literal_string \"log(uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5444,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6664:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6668:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6664:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6664:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5443,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6648:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6648:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5451,"nodeType":"ExpressionStatement","src":"6648:71:20"}]},"id":5453,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6590:3:20","nodeType":"FunctionDefinition","parameters":{"id":5441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5438,"mutability":"mutable","name":"p0","nameLocation":"6602:2:20","nodeType":"VariableDeclaration","scope":5453,"src":"6594:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5437,"name":"uint256","nodeType":"ElementaryTypeName","src":"6594:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5440,"mutability":"mutable","name":"p1","nameLocation":"6620:2:20","nodeType":"VariableDeclaration","scope":5453,"src":"6606:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5439,"name":"string","nodeType":"ElementaryTypeName","src":"6606:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"6593:30:20"},"returnParameters":{"id":5442,"nodeType":"ParameterList","parameters":[],"src":"6638:0:20"},"scope":12860,"src":"6581:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5469,"nodeType":"Block","src":"6780:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c29","id":5463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6830:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},"value":"log(uint256,bool)"},{"id":5464,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5455,"src":"6851:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5465,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5457,"src":"6855:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c9d7eb3a75db315653a5c0996fcea52a2b2692643ce8ace4d8b12bb9da6c1f2","typeString":"literal_string \"log(uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6806:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6810:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6806:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6806:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5460,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6790:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6790:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5468,"nodeType":"ExpressionStatement","src":"6790:69:20"}]},"id":5470,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6741:3:20","nodeType":"FunctionDefinition","parameters":{"id":5458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5455,"mutability":"mutable","name":"p0","nameLocation":"6753:2:20","nodeType":"VariableDeclaration","scope":5470,"src":"6745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5454,"name":"uint256","nodeType":"ElementaryTypeName","src":"6745:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5457,"mutability":"mutable","name":"p1","nameLocation":"6762:2:20","nodeType":"VariableDeclaration","scope":5470,"src":"6757:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5456,"name":"bool","nodeType":"ElementaryTypeName","src":"6757:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6744:21:20"},"returnParameters":{"id":5459,"nodeType":"ParameterList","parameters":[],"src":"6780:0:20"},"scope":12860,"src":"6732:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5486,"nodeType":"Block","src":"6923:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c6164647265737329","id":5480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6973:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},"value":"log(uint256,address)"},{"id":5481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5472,"src":"6997:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5474,"src":"7001:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69276c86d20522c49707664308d424b84905ef92219f3146bcaacedc72eaed27","typeString":"literal_string \"log(uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6949:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6953:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"6949:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6949:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"6933:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6933:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5485,"nodeType":"ExpressionStatement","src":"6933:72:20"}]},"id":5487,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"6881:3:20","nodeType":"FunctionDefinition","parameters":{"id":5475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5472,"mutability":"mutable","name":"p0","nameLocation":"6893:2:20","nodeType":"VariableDeclaration","scope":5487,"src":"6885:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5471,"name":"uint256","nodeType":"ElementaryTypeName","src":"6885:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5474,"mutability":"mutable","name":"p1","nameLocation":"6905:2:20","nodeType":"VariableDeclaration","scope":5487,"src":"6897:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5473,"name":"address","nodeType":"ElementaryTypeName","src":"6897:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6884:24:20"},"returnParameters":{"id":5476,"nodeType":"ParameterList","parameters":[],"src":"6923:0:20"},"scope":12860,"src":"6872:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5503,"nodeType":"Block","src":"7075:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e7432353629","id":5497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7125:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},"value":"log(string,uint256)"},{"id":5498,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"7148:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5499,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5491,"src":"7152:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b60e72ccf6d57ab53eb84d7e94a9545806ed7f93c4d5673f11a64f03471e584e","typeString":"literal_string \"log(string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5495,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7101:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7105:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7101:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7101:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5494,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7085:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7085:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5502,"nodeType":"ExpressionStatement","src":"7085:71:20"}]},"id":5504,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7027:3:20","nodeType":"FunctionDefinition","parameters":{"id":5492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5489,"mutability":"mutable","name":"p0","nameLocation":"7045:2:20","nodeType":"VariableDeclaration","scope":5504,"src":"7031:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5488,"name":"string","nodeType":"ElementaryTypeName","src":"7031:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5491,"mutability":"mutable","name":"p1","nameLocation":"7057:2:20","nodeType":"VariableDeclaration","scope":5504,"src":"7049:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5490,"name":"uint256","nodeType":"ElementaryTypeName","src":"7049:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7030:30:20"},"returnParameters":{"id":5493,"nodeType":"ParameterList","parameters":[],"src":"7075:0:20"},"scope":12860,"src":"7018:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5520,"nodeType":"Block","src":"7232:87:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e6729","id":5514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7282:20:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},"value":"log(string,string)"},{"id":5515,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5506,"src":"7304:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5516,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5508,"src":"7308:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4b5c4277d556d03fbf5ee534fba41dc13982b44f2fa82f1d48fdd8b5b5b692ac","typeString":"literal_string \"log(string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5512,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7258:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7262:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7258:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7258:53:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5511,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7242:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7242:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5519,"nodeType":"ExpressionStatement","src":"7242:70:20"}]},"id":5521,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7178:3:20","nodeType":"FunctionDefinition","parameters":{"id":5509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5506,"mutability":"mutable","name":"p0","nameLocation":"7196:2:20","nodeType":"VariableDeclaration","scope":5521,"src":"7182:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5505,"name":"string","nodeType":"ElementaryTypeName","src":"7182:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5508,"mutability":"mutable","name":"p1","nameLocation":"7214:2:20","nodeType":"VariableDeclaration","scope":5521,"src":"7200:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5507,"name":"string","nodeType":"ElementaryTypeName","src":"7200:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7181:36:20"},"returnParameters":{"id":5510,"nodeType":"ParameterList","parameters":[],"src":"7232:0:20"},"scope":12860,"src":"7169:150:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5537,"nodeType":"Block","src":"7379:85:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c29","id":5531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:18:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},"value":"log(string,bool)"},{"id":5532,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5523,"src":"7449:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5533,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5525,"src":"7453:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3b556354c088fbb43886eb83c2a04bc7089663f964d22be308197a236f5b870","typeString":"literal_string \"log(string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5529,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7405:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5530,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7409:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7405:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7405:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5528,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7389:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7389:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5536,"nodeType":"ExpressionStatement","src":"7389:68:20"}]},"id":5538,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7334:3:20","nodeType":"FunctionDefinition","parameters":{"id":5526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5523,"mutability":"mutable","name":"p0","nameLocation":"7352:2:20","nodeType":"VariableDeclaration","scope":5538,"src":"7338:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5522,"name":"string","nodeType":"ElementaryTypeName","src":"7338:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5525,"mutability":"mutable","name":"p1","nameLocation":"7361:2:20","nodeType":"VariableDeclaration","scope":5538,"src":"7356:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5524,"name":"bool","nodeType":"ElementaryTypeName","src":"7356:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7337:27:20"},"returnParameters":{"id":5527,"nodeType":"ParameterList","parameters":[],"src":"7379:0:20"},"scope":12860,"src":"7325:139:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5554,"nodeType":"Block","src":"7527:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c6164647265737329","id":5548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7577:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},"value":"log(string,address)"},{"id":5549,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5540,"src":"7600:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5550,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5542,"src":"7604:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_319af333460570a1937bf195dd33445c0d0951c59127da6f1f038b9fdce3fd72","typeString":"literal_string \"log(string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7553:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7557:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7553:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7553:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5545,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7537:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7537:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5553,"nodeType":"ExpressionStatement","src":"7537:71:20"}]},"id":5555,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7479:3:20","nodeType":"FunctionDefinition","parameters":{"id":5543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5540,"mutability":"mutable","name":"p0","nameLocation":"7497:2:20","nodeType":"VariableDeclaration","scope":5555,"src":"7483:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5539,"name":"string","nodeType":"ElementaryTypeName","src":"7483:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5542,"mutability":"mutable","name":"p1","nameLocation":"7509:2:20","nodeType":"VariableDeclaration","scope":5555,"src":"7501:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5541,"name":"address","nodeType":"ElementaryTypeName","src":"7501:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7482:30:20"},"returnParameters":{"id":5544,"nodeType":"ParameterList","parameters":[],"src":"7527:0:20"},"scope":12860,"src":"7470:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5571,"nodeType":"Block","src":"7669:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e7432353629","id":5565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7719:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},"value":"log(bool,uint256)"},{"id":5566,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5557,"src":"7740:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5567,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5559,"src":"7744:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_399174d3d0c43cb9677bce4fa1b5541fc60a002cbf23e154f1abcbb5f02cf2d7","typeString":"literal_string \"log(bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5563,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7695:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7699:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7695:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7695:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5562,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7679:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7679:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5570,"nodeType":"ExpressionStatement","src":"7679:69:20"}]},"id":5572,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7630:3:20","nodeType":"FunctionDefinition","parameters":{"id":5560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5557,"mutability":"mutable","name":"p0","nameLocation":"7639:2:20","nodeType":"VariableDeclaration","scope":5572,"src":"7634:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5556,"name":"bool","nodeType":"ElementaryTypeName","src":"7634:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5559,"mutability":"mutable","name":"p1","nameLocation":"7651:2:20","nodeType":"VariableDeclaration","scope":5572,"src":"7643:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5558,"name":"uint256","nodeType":"ElementaryTypeName","src":"7643:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7633:21:20"},"returnParameters":{"id":5561,"nodeType":"ParameterList","parameters":[],"src":"7669:0:20"},"scope":12860,"src":"7621:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5588,"nodeType":"Block","src":"7815:85:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e6729","id":5582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7865:18:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},"value":"log(bool,string)"},{"id":5583,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5574,"src":"7885:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5584,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5576,"src":"7889:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8feac5256a5b88d7ca0173065b796567ecbc9d75ec022fa0f044eb427f962b84","typeString":"literal_string \"log(bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5580,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7841:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7845:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7841:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7841:51:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5579,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7825:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7825:68:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5587,"nodeType":"ExpressionStatement","src":"7825:68:20"}]},"id":5589,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7770:3:20","nodeType":"FunctionDefinition","parameters":{"id":5577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5574,"mutability":"mutable","name":"p0","nameLocation":"7779:2:20","nodeType":"VariableDeclaration","scope":5589,"src":"7774:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5573,"name":"bool","nodeType":"ElementaryTypeName","src":"7774:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5576,"mutability":"mutable","name":"p1","nameLocation":"7797:2:20","nodeType":"VariableDeclaration","scope":5589,"src":"7783:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5575,"name":"string","nodeType":"ElementaryTypeName","src":"7783:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"7773:27:20"},"returnParameters":{"id":5578,"nodeType":"ParameterList","parameters":[],"src":"7815:0:20"},"scope":12860,"src":"7761:139:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5605,"nodeType":"Block","src":"7951:83:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c29","id":5599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8001:16:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},"value":"log(bool,bool)"},{"id":5600,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5591,"src":"8019:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5601,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5593,"src":"8023:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2a110e83227fbe26ff7524076f2091da3e9aa01d70b93677da53b41d22f4fb15","typeString":"literal_string \"log(bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5597,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7977:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7981:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"7977:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7977:49:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5596,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"7961:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7961:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5604,"nodeType":"ExpressionStatement","src":"7961:66:20"}]},"id":5606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"7915:3:20","nodeType":"FunctionDefinition","parameters":{"id":5594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5591,"mutability":"mutable","name":"p0","nameLocation":"7924:2:20","nodeType":"VariableDeclaration","scope":5606,"src":"7919:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5590,"name":"bool","nodeType":"ElementaryTypeName","src":"7919:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5593,"mutability":"mutable","name":"p1","nameLocation":"7933:2:20","nodeType":"VariableDeclaration","scope":5606,"src":"7928:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5592,"name":"bool","nodeType":"ElementaryTypeName","src":"7928:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7918:18:20"},"returnParameters":{"id":5595,"nodeType":"ParameterList","parameters":[],"src":"7951:0:20"},"scope":12860,"src":"7906:128:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5622,"nodeType":"Block","src":"8088:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c6164647265737329","id":5616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8138:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},"value":"log(bool,address)"},{"id":5617,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5608,"src":"8159:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5618,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5610,"src":"8163:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_853c4849443241e2249adafa4f69c8bb738b0f17c7a0a9d9997450cd71db4d55","typeString":"literal_string \"log(bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5614,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8114:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8118:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8114:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5613,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8098:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8098:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5621,"nodeType":"ExpressionStatement","src":"8098:69:20"}]},"id":5623,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8049:3:20","nodeType":"FunctionDefinition","parameters":{"id":5611,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5608,"mutability":"mutable","name":"p0","nameLocation":"8058:2:20","nodeType":"VariableDeclaration","scope":5623,"src":"8053:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5607,"name":"bool","nodeType":"ElementaryTypeName","src":"8053:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5610,"mutability":"mutable","name":"p1","nameLocation":"8070:2:20","nodeType":"VariableDeclaration","scope":5623,"src":"8062:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5609,"name":"address","nodeType":"ElementaryTypeName","src":"8062:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8052:21:20"},"returnParameters":{"id":5612,"nodeType":"ParameterList","parameters":[],"src":"8088:0:20"},"scope":12860,"src":"8040:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5639,"nodeType":"Block","src":"8231:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e7432353629","id":5633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8281:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},"value":"log(address,uint256)"},{"id":5634,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5625,"src":"8305:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5635,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5627,"src":"8309:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8309e8a8b132619bdb25dffa9d595ba1ecb7835540fd62622dad33018c4a0d3e","typeString":"literal_string \"log(address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5631,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8257:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8261:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8257:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8257:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5630,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8241:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8241:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5638,"nodeType":"ExpressionStatement","src":"8241:72:20"}]},"id":5640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8189:3:20","nodeType":"FunctionDefinition","parameters":{"id":5628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5625,"mutability":"mutable","name":"p0","nameLocation":"8201:2:20","nodeType":"VariableDeclaration","scope":5640,"src":"8193:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5624,"name":"address","nodeType":"ElementaryTypeName","src":"8193:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5627,"mutability":"mutable","name":"p1","nameLocation":"8213:2:20","nodeType":"VariableDeclaration","scope":5640,"src":"8205:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5626,"name":"uint256","nodeType":"ElementaryTypeName","src":"8205:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8192:24:20"},"returnParameters":{"id":5629,"nodeType":"ParameterList","parameters":[],"src":"8231:0:20"},"scope":12860,"src":"8180:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5656,"nodeType":"Block","src":"8383:88:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e6729","id":5650,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8433:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},"value":"log(address,string)"},{"id":5651,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"8456:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5652,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5644,"src":"8460:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_759f86bbdd0758679ecefbd32ea620068b2339dddd9e45ee0fa567ee6c81f0ab","typeString":"literal_string \"log(address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5648,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8409:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5649,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8413:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8409:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8409:54:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5647,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8393:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8393:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5655,"nodeType":"ExpressionStatement","src":"8393:71:20"}]},"id":5657,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8335:3:20","nodeType":"FunctionDefinition","parameters":{"id":5645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5642,"mutability":"mutable","name":"p0","nameLocation":"8347:2:20","nodeType":"VariableDeclaration","scope":5657,"src":"8339:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5641,"name":"address","nodeType":"ElementaryTypeName","src":"8339:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5644,"mutability":"mutable","name":"p1","nameLocation":"8365:2:20","nodeType":"VariableDeclaration","scope":5657,"src":"8351:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5643,"name":"string","nodeType":"ElementaryTypeName","src":"8351:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8338:30:20"},"returnParameters":{"id":5646,"nodeType":"ParameterList","parameters":[],"src":"8383:0:20"},"scope":12860,"src":"8326:145:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5673,"nodeType":"Block","src":"8525:86:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c29","id":5667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8575:19:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},"value":"log(address,bool)"},{"id":5668,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5659,"src":"8596:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5669,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5661,"src":"8600:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_75b605d31a3bf49c8d814696c7c66216d3a7e81348c450078f032e425592f72b","typeString":"literal_string \"log(address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5665,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8551:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8555:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8551:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8551:52:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5664,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8535:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8535:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5672,"nodeType":"ExpressionStatement","src":"8535:69:20"}]},"id":5674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8486:3:20","nodeType":"FunctionDefinition","parameters":{"id":5662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5659,"mutability":"mutable","name":"p0","nameLocation":"8498:2:20","nodeType":"VariableDeclaration","scope":5674,"src":"8490:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5658,"name":"address","nodeType":"ElementaryTypeName","src":"8490:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5661,"mutability":"mutable","name":"p1","nameLocation":"8507:2:20","nodeType":"VariableDeclaration","scope":5674,"src":"8502:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5660,"name":"bool","nodeType":"ElementaryTypeName","src":"8502:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8489:21:20"},"returnParameters":{"id":5663,"nodeType":"ParameterList","parameters":[],"src":"8525:0:20"},"scope":12860,"src":"8477:134:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5690,"nodeType":"Block","src":"8668:89:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c6164647265737329","id":5684,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8718:22:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},"value":"log(address,address)"},{"id":5685,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5676,"src":"8742:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5686,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5678,"src":"8746:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_daf0d4aa9a5679e832ac921da67b43572b4326ee2565442d3ed255b48cfb5161","typeString":"literal_string \"log(address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5682,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8694:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8698:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8694:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8694:55:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5681,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8678:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8678:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5689,"nodeType":"ExpressionStatement","src":"8678:72:20"}]},"id":5691,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8626:3:20","nodeType":"FunctionDefinition","parameters":{"id":5679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5676,"mutability":"mutable","name":"p0","nameLocation":"8638:2:20","nodeType":"VariableDeclaration","scope":5691,"src":"8630:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5675,"name":"address","nodeType":"ElementaryTypeName","src":"8630:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5678,"mutability":"mutable","name":"p1","nameLocation":"8650:2:20","nodeType":"VariableDeclaration","scope":5691,"src":"8642:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5677,"name":"address","nodeType":"ElementaryTypeName","src":"8642:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8629:24:20"},"returnParameters":{"id":5680,"nodeType":"ParameterList","parameters":[],"src":"8668:0:20"},"scope":12860,"src":"8617:140:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5710,"nodeType":"Block","src":"8826:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e7432353629","id":5703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8876:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256)"},{"id":5704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5693,"src":"8908:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5695,"src":"8912:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"8916:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d1ed7a3c020c4f5939654147940a147a8e4e638fa1e8f5664b5efbd1e1f3c4a6","typeString":"literal_string \"log(uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"8852:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"8856:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"8852:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8852:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"8836:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8836:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5709,"nodeType":"ExpressionStatement","src":"8836:84:20"}]},"id":5711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8772:3:20","nodeType":"FunctionDefinition","parameters":{"id":5698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5693,"mutability":"mutable","name":"p0","nameLocation":"8784:2:20","nodeType":"VariableDeclaration","scope":5711,"src":"8776:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5692,"name":"uint256","nodeType":"ElementaryTypeName","src":"8776:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5695,"mutability":"mutable","name":"p1","nameLocation":"8796:2:20","nodeType":"VariableDeclaration","scope":5711,"src":"8788:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5694,"name":"uint256","nodeType":"ElementaryTypeName","src":"8788:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5697,"mutability":"mutable","name":"p2","nameLocation":"8808:2:20","nodeType":"VariableDeclaration","scope":5711,"src":"8800:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5696,"name":"uint256","nodeType":"ElementaryTypeName","src":"8800:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8775:36:20"},"returnParameters":{"id":5699,"nodeType":"ParameterList","parameters":[],"src":"8826:0:20"},"scope":12860,"src":"8763:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5730,"nodeType":"Block","src":"9002:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e6729","id":5723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9052:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},"value":"log(uint256,uint256,string)"},{"id":5724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5713,"src":"9083:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5715,"src":"9087:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5717,"src":"9091:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_71d04af2c0d71f035017c73ec9440d8cef06157a84f0febe8ec74eca98138262","typeString":"literal_string \"log(uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9028:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9032:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9028:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9028:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9012:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9012:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5729,"nodeType":"ExpressionStatement","src":"9012:83:20"}]},"id":5731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"8942:3:20","nodeType":"FunctionDefinition","parameters":{"id":5718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5713,"mutability":"mutable","name":"p0","nameLocation":"8954:2:20","nodeType":"VariableDeclaration","scope":5731,"src":"8946:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5712,"name":"uint256","nodeType":"ElementaryTypeName","src":"8946:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5715,"mutability":"mutable","name":"p1","nameLocation":"8966:2:20","nodeType":"VariableDeclaration","scope":5731,"src":"8958:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5714,"name":"uint256","nodeType":"ElementaryTypeName","src":"8958:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5717,"mutability":"mutable","name":"p2","nameLocation":"8984:2:20","nodeType":"VariableDeclaration","scope":5731,"src":"8970:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5716,"name":"string","nodeType":"ElementaryTypeName","src":"8970:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"8945:42:20"},"returnParameters":{"id":5719,"nodeType":"ParameterList","parameters":[],"src":"9002:0:20"},"scope":12860,"src":"8933:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5750,"nodeType":"Block","src":"9168:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c29","id":5743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9218:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},"value":"log(uint256,uint256,bool)"},{"id":5744,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5733,"src":"9247:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5745,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5735,"src":"9251:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5746,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"9255:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4766da72b632663e3b9911d02d6f30e0cf213f928bdb9f6fd840851875d9fce0","typeString":"literal_string \"log(uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9194:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9198:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9194:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9194:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5740,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9178:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9178:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5749,"nodeType":"ExpressionStatement","src":"9178:81:20"}]},"id":5751,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9117:3:20","nodeType":"FunctionDefinition","parameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5733,"mutability":"mutable","name":"p0","nameLocation":"9129:2:20","nodeType":"VariableDeclaration","scope":5751,"src":"9121:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5732,"name":"uint256","nodeType":"ElementaryTypeName","src":"9121:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5735,"mutability":"mutable","name":"p1","nameLocation":"9141:2:20","nodeType":"VariableDeclaration","scope":5751,"src":"9133:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5734,"name":"uint256","nodeType":"ElementaryTypeName","src":"9133:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5737,"mutability":"mutable","name":"p2","nameLocation":"9150:2:20","nodeType":"VariableDeclaration","scope":5751,"src":"9145:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5736,"name":"bool","nodeType":"ElementaryTypeName","src":"9145:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9120:33:20"},"returnParameters":{"id":5739,"nodeType":"ParameterList","parameters":[],"src":"9168:0:20"},"scope":12860,"src":"9108:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5770,"nodeType":"Block","src":"9335:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c6164647265737329","id":5763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9385:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},"value":"log(uint256,uint256,address)"},{"id":5764,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5753,"src":"9417:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5765,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5755,"src":"9421:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5766,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5757,"src":"9425:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c96b331e359852d9a7254105926ce8dfcc42dd4fce56a736cfb981b4c2984c1","typeString":"literal_string \"log(uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9361:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9365:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9361:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9361:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5760,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9345:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9345:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5769,"nodeType":"ExpressionStatement","src":"9345:84:20"}]},"id":5771,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9281:3:20","nodeType":"FunctionDefinition","parameters":{"id":5758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5753,"mutability":"mutable","name":"p0","nameLocation":"9293:2:20","nodeType":"VariableDeclaration","scope":5771,"src":"9285:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5752,"name":"uint256","nodeType":"ElementaryTypeName","src":"9285:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5755,"mutability":"mutable","name":"p1","nameLocation":"9305:2:20","nodeType":"VariableDeclaration","scope":5771,"src":"9297:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5754,"name":"uint256","nodeType":"ElementaryTypeName","src":"9297:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5757,"mutability":"mutable","name":"p2","nameLocation":"9317:2:20","nodeType":"VariableDeclaration","scope":5771,"src":"9309:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5756,"name":"address","nodeType":"ElementaryTypeName","src":"9309:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9284:36:20"},"returnParameters":{"id":5759,"nodeType":"ParameterList","parameters":[],"src":"9335:0:20"},"scope":12860,"src":"9272:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5790,"nodeType":"Block","src":"9511:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e7432353629","id":5783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9561:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},"value":"log(uint256,string,uint256)"},{"id":5784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5773,"src":"9592:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5775,"src":"9596:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5777,"src":"9600:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_37aa7d4c835edd965b1201d9c03f13272bd937d8e244ab84a153693e2f2f30c0","typeString":"literal_string \"log(uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9537:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9541:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9537:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9537:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9521:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9521:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5789,"nodeType":"ExpressionStatement","src":"9521:83:20"}]},"id":5791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9451:3:20","nodeType":"FunctionDefinition","parameters":{"id":5778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5773,"mutability":"mutable","name":"p0","nameLocation":"9463:2:20","nodeType":"VariableDeclaration","scope":5791,"src":"9455:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5772,"name":"uint256","nodeType":"ElementaryTypeName","src":"9455:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5775,"mutability":"mutable","name":"p1","nameLocation":"9481:2:20","nodeType":"VariableDeclaration","scope":5791,"src":"9467:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5774,"name":"string","nodeType":"ElementaryTypeName","src":"9467:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5777,"mutability":"mutable","name":"p2","nameLocation":"9493:2:20","nodeType":"VariableDeclaration","scope":5791,"src":"9485:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5776,"name":"uint256","nodeType":"ElementaryTypeName","src":"9485:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9454:42:20"},"returnParameters":{"id":5779,"nodeType":"ParameterList","parameters":[],"src":"9511:0:20"},"scope":12860,"src":"9442:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5810,"nodeType":"Block","src":"9692:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e6729","id":5803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9742:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},"value":"log(uint256,string,string)"},{"id":5804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5793,"src":"9772:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5795,"src":"9776:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5797,"src":"9780:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b115611f13262589f336fb650c9278bd1879123a635e6a638f94e6cbdb1c1b35","typeString":"literal_string \"log(uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9718:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9722:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9718:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9718:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9702:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9702:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5809,"nodeType":"ExpressionStatement","src":"9702:82:20"}]},"id":5811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9626:3:20","nodeType":"FunctionDefinition","parameters":{"id":5798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5793,"mutability":"mutable","name":"p0","nameLocation":"9638:2:20","nodeType":"VariableDeclaration","scope":5811,"src":"9630:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5792,"name":"uint256","nodeType":"ElementaryTypeName","src":"9630:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5795,"mutability":"mutable","name":"p1","nameLocation":"9656:2:20","nodeType":"VariableDeclaration","scope":5811,"src":"9642:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5794,"name":"string","nodeType":"ElementaryTypeName","src":"9642:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5797,"mutability":"mutable","name":"p2","nameLocation":"9674:2:20","nodeType":"VariableDeclaration","scope":5811,"src":"9660:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5796,"name":"string","nodeType":"ElementaryTypeName","src":"9660:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"9629:48:20"},"returnParameters":{"id":5799,"nodeType":"ParameterList","parameters":[],"src":"9692:0:20"},"scope":12860,"src":"9617:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5830,"nodeType":"Block","src":"9863:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c29","id":5823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9913:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},"value":"log(uint256,string,bool)"},{"id":5824,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"9941:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5825,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"9945:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5826,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5817,"src":"9949:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4ceda75ad13e534e8b5089564c6a40ae80cd33aac3e77ef1f87a233c1d43067a","typeString":"literal_string \"log(uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"9889:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9893:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"9889:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9889:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5820,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"9873:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5829,"nodeType":"ExpressionStatement","src":"9873:80:20"}]},"id":5831,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9806:3:20","nodeType":"FunctionDefinition","parameters":{"id":5818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5813,"mutability":"mutable","name":"p0","nameLocation":"9818:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"9810:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5812,"name":"uint256","nodeType":"ElementaryTypeName","src":"9810:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5815,"mutability":"mutable","name":"p1","nameLocation":"9836:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"9822:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5814,"name":"string","nodeType":"ElementaryTypeName","src":"9822:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5817,"mutability":"mutable","name":"p2","nameLocation":"9845:2:20","nodeType":"VariableDeclaration","scope":5831,"src":"9840:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5816,"name":"bool","nodeType":"ElementaryTypeName","src":"9840:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9809:39:20"},"returnParameters":{"id":5819,"nodeType":"ParameterList","parameters":[],"src":"9863:0:20"},"scope":12860,"src":"9797:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5850,"nodeType":"Block","src":"10035:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c6164647265737329","id":5843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10085:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},"value":"log(uint256,string,address)"},{"id":5844,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5833,"src":"10116:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5845,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5835,"src":"10120:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":5846,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5837,"src":"10124:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7afac959002f7dcdccdf461a7e6db7810eebd7217c0b7c30905b3c7e89b561f2","typeString":"literal_string \"log(uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10065:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10061:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10061:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5840,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10045:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10045:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5849,"nodeType":"ExpressionStatement","src":"10045:83:20"}]},"id":5851,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"9975:3:20","nodeType":"FunctionDefinition","parameters":{"id":5838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5833,"mutability":"mutable","name":"p0","nameLocation":"9987:2:20","nodeType":"VariableDeclaration","scope":5851,"src":"9979:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5832,"name":"uint256","nodeType":"ElementaryTypeName","src":"9979:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5835,"mutability":"mutable","name":"p1","nameLocation":"10005:2:20","nodeType":"VariableDeclaration","scope":5851,"src":"9991:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5834,"name":"string","nodeType":"ElementaryTypeName","src":"9991:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":5837,"mutability":"mutable","name":"p2","nameLocation":"10017:2:20","nodeType":"VariableDeclaration","scope":5851,"src":"10009:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5836,"name":"address","nodeType":"ElementaryTypeName","src":"10009:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9978:42:20"},"returnParameters":{"id":5839,"nodeType":"ParameterList","parameters":[],"src":"10035:0:20"},"scope":12860,"src":"9966:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5870,"nodeType":"Block","src":"10201:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e7432353629","id":5863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10251:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},"value":"log(uint256,bool,uint256)"},{"id":5864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5853,"src":"10280:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5855,"src":"10284:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5857,"src":"10288:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_200980147f19b368809aab41084ebebcf1e19d47edd13f2d540a6327cec213d1","typeString":"literal_string \"log(uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10227:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10231:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10227:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10227:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10211:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10211:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5869,"nodeType":"ExpressionStatement","src":"10211:81:20"}]},"id":5871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10150:3:20","nodeType":"FunctionDefinition","parameters":{"id":5858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5853,"mutability":"mutable","name":"p0","nameLocation":"10162:2:20","nodeType":"VariableDeclaration","scope":5871,"src":"10154:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5852,"name":"uint256","nodeType":"ElementaryTypeName","src":"10154:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5855,"mutability":"mutable","name":"p1","nameLocation":"10171:2:20","nodeType":"VariableDeclaration","scope":5871,"src":"10166:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5854,"name":"bool","nodeType":"ElementaryTypeName","src":"10166:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5857,"mutability":"mutable","name":"p2","nameLocation":"10183:2:20","nodeType":"VariableDeclaration","scope":5871,"src":"10175:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10175:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10153:33:20"},"returnParameters":{"id":5859,"nodeType":"ParameterList","parameters":[],"src":"10201:0:20"},"scope":12860,"src":"10141:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5890,"nodeType":"Block","src":"10371:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e6729","id":5883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10421:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},"value":"log(uint256,bool,string)"},{"id":5884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5873,"src":"10449:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5875,"src":"10453:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5877,"src":"10457:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_85775021582c57b14e9e0b33e0f693439478099486817fe4214a503f559f37df","typeString":"literal_string \"log(uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10397:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10401:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10397:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10397:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10381:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10381:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5889,"nodeType":"ExpressionStatement","src":"10381:80:20"}]},"id":5891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10314:3:20","nodeType":"FunctionDefinition","parameters":{"id":5878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5873,"mutability":"mutable","name":"p0","nameLocation":"10326:2:20","nodeType":"VariableDeclaration","scope":5891,"src":"10318:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5872,"name":"uint256","nodeType":"ElementaryTypeName","src":"10318:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5875,"mutability":"mutable","name":"p1","nameLocation":"10335:2:20","nodeType":"VariableDeclaration","scope":5891,"src":"10330:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5874,"name":"bool","nodeType":"ElementaryTypeName","src":"10330:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5877,"mutability":"mutable","name":"p2","nameLocation":"10353:2:20","nodeType":"VariableDeclaration","scope":5891,"src":"10339:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5876,"name":"string","nodeType":"ElementaryTypeName","src":"10339:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10317:39:20"},"returnParameters":{"id":5879,"nodeType":"ParameterList","parameters":[],"src":"10371:0:20"},"scope":12860,"src":"10305:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5910,"nodeType":"Block","src":"10531:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c29","id":5903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10581:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},"value":"log(uint256,bool,bool)"},{"id":5904,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5893,"src":"10607:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5905,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5895,"src":"10611:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5906,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5897,"src":"10615:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_207186500d54a80dae0e8fae760b583cb518c2c49967db59c8f7e5596879c0b6","typeString":"literal_string \"log(uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5901,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10557:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10561:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10557:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10557:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5900,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10541:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10541:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5909,"nodeType":"ExpressionStatement","src":"10541:78:20"}]},"id":5911,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10483:3:20","nodeType":"FunctionDefinition","parameters":{"id":5898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5893,"mutability":"mutable","name":"p0","nameLocation":"10495:2:20","nodeType":"VariableDeclaration","scope":5911,"src":"10487:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5892,"name":"uint256","nodeType":"ElementaryTypeName","src":"10487:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5895,"mutability":"mutable","name":"p1","nameLocation":"10504:2:20","nodeType":"VariableDeclaration","scope":5911,"src":"10499:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5894,"name":"bool","nodeType":"ElementaryTypeName","src":"10499:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5897,"mutability":"mutable","name":"p2","nameLocation":"10513:2:20","nodeType":"VariableDeclaration","scope":5911,"src":"10508:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5896,"name":"bool","nodeType":"ElementaryTypeName","src":"10508:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"10486:30:20"},"returnParameters":{"id":5899,"nodeType":"ParameterList","parameters":[],"src":"10531:0:20"},"scope":12860,"src":"10474:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5930,"nodeType":"Block","src":"10692:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c6164647265737329","id":5923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10742:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},"value":"log(uint256,bool,address)"},{"id":5924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5913,"src":"10771:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5925,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5915,"src":"10775:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":5926,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5917,"src":"10779:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35085f7b74fe0b67ab2d779d94b2a1efc14ce8d637e06ffda83ca305116f3c99","typeString":"literal_string \"log(uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10718:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10722:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10718:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10718:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10702:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10702:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5929,"nodeType":"ExpressionStatement","src":"10702:81:20"}]},"id":5931,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10641:3:20","nodeType":"FunctionDefinition","parameters":{"id":5918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5913,"mutability":"mutable","name":"p0","nameLocation":"10653:2:20","nodeType":"VariableDeclaration","scope":5931,"src":"10645:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5912,"name":"uint256","nodeType":"ElementaryTypeName","src":"10645:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5915,"mutability":"mutable","name":"p1","nameLocation":"10662:2:20","nodeType":"VariableDeclaration","scope":5931,"src":"10657:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5914,"name":"bool","nodeType":"ElementaryTypeName","src":"10657:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":5917,"mutability":"mutable","name":"p2","nameLocation":"10674:2:20","nodeType":"VariableDeclaration","scope":5931,"src":"10666:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5916,"name":"address","nodeType":"ElementaryTypeName","src":"10666:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10644:33:20"},"returnParameters":{"id":5919,"nodeType":"ParameterList","parameters":[],"src":"10692:0:20"},"scope":12860,"src":"10632:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5950,"nodeType":"Block","src":"10859:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e7432353629","id":5943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10909:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},"value":"log(uint256,address,uint256)"},{"id":5944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5933,"src":"10941:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5935,"src":"10945:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"10949:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a9b5ed5e0cc67953f5b0a58c12e9694944af5a126321ab88870dec3bc05a9ae","typeString":"literal_string \"log(uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10885:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10889:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"10885:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10885:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"10869:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10869:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5949,"nodeType":"ExpressionStatement","src":"10869:84:20"}]},"id":5951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10805:3:20","nodeType":"FunctionDefinition","parameters":{"id":5938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5933,"mutability":"mutable","name":"p0","nameLocation":"10817:2:20","nodeType":"VariableDeclaration","scope":5951,"src":"10809:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5932,"name":"uint256","nodeType":"ElementaryTypeName","src":"10809:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5935,"mutability":"mutable","name":"p1","nameLocation":"10829:2:20","nodeType":"VariableDeclaration","scope":5951,"src":"10821:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5934,"name":"address","nodeType":"ElementaryTypeName","src":"10821:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5937,"mutability":"mutable","name":"p2","nameLocation":"10841:2:20","nodeType":"VariableDeclaration","scope":5951,"src":"10833:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5936,"name":"uint256","nodeType":"ElementaryTypeName","src":"10833:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10808:36:20"},"returnParameters":{"id":5939,"nodeType":"ParameterList","parameters":[],"src":"10859:0:20"},"scope":12860,"src":"10796:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5970,"nodeType":"Block","src":"11035:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e6729","id":5963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11085:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},"value":"log(uint256,address,string)"},{"id":5964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5953,"src":"11116:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5955,"src":"11120:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5957,"src":"11124:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63cb41f9a63efe5dfacd3a2836bdef664d136fd6113f8e931c31a919af38935c","typeString":"literal_string \"log(uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":5961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11061:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11065:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11061:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11061:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11045:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11045:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5969,"nodeType":"ExpressionStatement","src":"11045:83:20"}]},"id":5971,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"10975:3:20","nodeType":"FunctionDefinition","parameters":{"id":5958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5953,"mutability":"mutable","name":"p0","nameLocation":"10987:2:20","nodeType":"VariableDeclaration","scope":5971,"src":"10979:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5952,"name":"uint256","nodeType":"ElementaryTypeName","src":"10979:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5955,"mutability":"mutable","name":"p1","nameLocation":"10999:2:20","nodeType":"VariableDeclaration","scope":5971,"src":"10991:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5954,"name":"address","nodeType":"ElementaryTypeName","src":"10991:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5957,"mutability":"mutable","name":"p2","nameLocation":"11017:2:20","nodeType":"VariableDeclaration","scope":5971,"src":"11003:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5956,"name":"string","nodeType":"ElementaryTypeName","src":"11003:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10978:42:20"},"returnParameters":{"id":5959,"nodeType":"ParameterList","parameters":[],"src":"11035:0:20"},"scope":12860,"src":"10966:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":5990,"nodeType":"Block","src":"11201:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c29","id":5983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11251:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},"value":"log(uint256,address,bool)"},{"id":5984,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5973,"src":"11280:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5985,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5975,"src":"11284:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5986,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5977,"src":"11288:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b6ec042c5598a780a5bfae5e9ea2c50c251da4c38db3a134b8857be618f0c5c","typeString":"literal_string \"log(uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":5981,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11227:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11231:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11227:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":5987,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11227:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5980,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11211:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":5988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11211:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5989,"nodeType":"ExpressionStatement","src":"11211:81:20"}]},"id":5991,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11150:3:20","nodeType":"FunctionDefinition","parameters":{"id":5978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5973,"mutability":"mutable","name":"p0","nameLocation":"11162:2:20","nodeType":"VariableDeclaration","scope":5991,"src":"11154:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5972,"name":"uint256","nodeType":"ElementaryTypeName","src":"11154:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5975,"mutability":"mutable","name":"p1","nameLocation":"11174:2:20","nodeType":"VariableDeclaration","scope":5991,"src":"11166:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5974,"name":"address","nodeType":"ElementaryTypeName","src":"11166:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5977,"mutability":"mutable","name":"p2","nameLocation":"11183:2:20","nodeType":"VariableDeclaration","scope":5991,"src":"11178:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5976,"name":"bool","nodeType":"ElementaryTypeName","src":"11178:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11153:33:20"},"returnParameters":{"id":5979,"nodeType":"ParameterList","parameters":[],"src":"11201:0:20"},"scope":12860,"src":"11141:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6010,"nodeType":"Block","src":"11368:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c6164647265737329","id":6003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11418:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},"value":"log(uint256,address,address)"},{"id":6004,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5993,"src":"11450:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6005,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5995,"src":"11454:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6006,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5997,"src":"11458:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bcfd9be04f8d6b8ee1ae73075f8fe8db10e4b254a56103daa450197029a55fda","typeString":"literal_string \"log(uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6001,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11394:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11398:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11394:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11394:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6000,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11378:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11378:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6009,"nodeType":"ExpressionStatement","src":"11378:84:20"}]},"id":6011,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11314:3:20","nodeType":"FunctionDefinition","parameters":{"id":5998,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5993,"mutability":"mutable","name":"p0","nameLocation":"11326:2:20","nodeType":"VariableDeclaration","scope":6011,"src":"11318:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5992,"name":"uint256","nodeType":"ElementaryTypeName","src":"11318:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5995,"mutability":"mutable","name":"p1","nameLocation":"11338:2:20","nodeType":"VariableDeclaration","scope":6011,"src":"11330:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5994,"name":"address","nodeType":"ElementaryTypeName","src":"11330:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5997,"mutability":"mutable","name":"p2","nameLocation":"11350:2:20","nodeType":"VariableDeclaration","scope":6011,"src":"11342:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5996,"name":"address","nodeType":"ElementaryTypeName","src":"11342:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11317:36:20"},"returnParameters":{"id":5999,"nodeType":"ParameterList","parameters":[],"src":"11368:0:20"},"scope":12860,"src":"11305:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6030,"nodeType":"Block","src":"11544:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e7432353629","id":6023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11594:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},"value":"log(string,uint256,uint256)"},{"id":6024,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6013,"src":"11625:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6025,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6015,"src":"11629:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6026,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6017,"src":"11633:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca47c4ebe9fba29faff9e6b57fbe69e17216e7526486c463d61c06e8992beece","typeString":"literal_string \"log(string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6021,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11570:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11574:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11570:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11570:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6020,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11554:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11554:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6029,"nodeType":"ExpressionStatement","src":"11554:83:20"}]},"id":6031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11484:3:20","nodeType":"FunctionDefinition","parameters":{"id":6018,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6013,"mutability":"mutable","name":"p0","nameLocation":"11502:2:20","nodeType":"VariableDeclaration","scope":6031,"src":"11488:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6012,"name":"string","nodeType":"ElementaryTypeName","src":"11488:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6015,"mutability":"mutable","name":"p1","nameLocation":"11514:2:20","nodeType":"VariableDeclaration","scope":6031,"src":"11506:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6014,"name":"uint256","nodeType":"ElementaryTypeName","src":"11506:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6017,"mutability":"mutable","name":"p2","nameLocation":"11526:2:20","nodeType":"VariableDeclaration","scope":6031,"src":"11518:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6016,"name":"uint256","nodeType":"ElementaryTypeName","src":"11518:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11487:42:20"},"returnParameters":{"id":6019,"nodeType":"ParameterList","parameters":[],"src":"11544:0:20"},"scope":12860,"src":"11475:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6050,"nodeType":"Block","src":"11725:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e6729","id":6043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11775:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},"value":"log(string,uint256,string)"},{"id":6044,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"11805:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6045,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"11809:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6046,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6037,"src":"11813:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5970e089c65c5d431d60f26e6cf1ec3984c873a96b59f1aed9fc44cdf9078bcf","typeString":"literal_string \"log(string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11751:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11755:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11751:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11751:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6040,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11735:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11735:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6049,"nodeType":"ExpressionStatement","src":"11735:82:20"}]},"id":6051,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11659:3:20","nodeType":"FunctionDefinition","parameters":{"id":6038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6033,"mutability":"mutable","name":"p0","nameLocation":"11677:2:20","nodeType":"VariableDeclaration","scope":6051,"src":"11663:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6032,"name":"string","nodeType":"ElementaryTypeName","src":"11663:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6035,"mutability":"mutable","name":"p1","nameLocation":"11689:2:20","nodeType":"VariableDeclaration","scope":6051,"src":"11681:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6034,"name":"uint256","nodeType":"ElementaryTypeName","src":"11681:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6037,"mutability":"mutable","name":"p2","nameLocation":"11707:2:20","nodeType":"VariableDeclaration","scope":6051,"src":"11693:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6036,"name":"string","nodeType":"ElementaryTypeName","src":"11693:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11662:48:20"},"returnParameters":{"id":6039,"nodeType":"ParameterList","parameters":[],"src":"11725:0:20"},"scope":12860,"src":"11650:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6070,"nodeType":"Block","src":"11896:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c29","id":6063,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11946:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},"value":"log(string,uint256,bool)"},{"id":6064,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"11974:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6065,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6055,"src":"11978:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6066,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6057,"src":"11982:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ca7733b1b473f13a94152fab2b969755f42d925703a46c93a1825aad614f145e","typeString":"literal_string \"log(string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6061,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11922:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11926:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"11922:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11922:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6060,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"11906:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11906:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6069,"nodeType":"ExpressionStatement","src":"11906:80:20"}]},"id":6071,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"11839:3:20","nodeType":"FunctionDefinition","parameters":{"id":6058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6053,"mutability":"mutable","name":"p0","nameLocation":"11857:2:20","nodeType":"VariableDeclaration","scope":6071,"src":"11843:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6052,"name":"string","nodeType":"ElementaryTypeName","src":"11843:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6055,"mutability":"mutable","name":"p1","nameLocation":"11869:2:20","nodeType":"VariableDeclaration","scope":6071,"src":"11861:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6054,"name":"uint256","nodeType":"ElementaryTypeName","src":"11861:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6057,"mutability":"mutable","name":"p2","nameLocation":"11878:2:20","nodeType":"VariableDeclaration","scope":6071,"src":"11873:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6056,"name":"bool","nodeType":"ElementaryTypeName","src":"11873:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"11842:39:20"},"returnParameters":{"id":6059,"nodeType":"ParameterList","parameters":[],"src":"11896:0:20"},"scope":12860,"src":"11830:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6090,"nodeType":"Block","src":"12068:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c6164647265737329","id":6083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12118:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},"value":"log(string,uint256,address)"},{"id":6084,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"12149:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6085,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6075,"src":"12153:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6086,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6077,"src":"12157:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c7ec4485ea8bf18e646e5381f7318f45423199ed371307bc9171a4242f27335","typeString":"literal_string \"log(string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6081,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12094:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12098:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12094:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12094:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6080,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12078:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12078:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6089,"nodeType":"ExpressionStatement","src":"12078:83:20"}]},"id":6091,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12008:3:20","nodeType":"FunctionDefinition","parameters":{"id":6078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6073,"mutability":"mutable","name":"p0","nameLocation":"12026:2:20","nodeType":"VariableDeclaration","scope":6091,"src":"12012:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6072,"name":"string","nodeType":"ElementaryTypeName","src":"12012:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6075,"mutability":"mutable","name":"p1","nameLocation":"12038:2:20","nodeType":"VariableDeclaration","scope":6091,"src":"12030:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6074,"name":"uint256","nodeType":"ElementaryTypeName","src":"12030:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6077,"mutability":"mutable","name":"p2","nameLocation":"12050:2:20","nodeType":"VariableDeclaration","scope":6091,"src":"12042:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6076,"name":"address","nodeType":"ElementaryTypeName","src":"12042:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12011:42:20"},"returnParameters":{"id":6079,"nodeType":"ParameterList","parameters":[],"src":"12068:0:20"},"scope":12860,"src":"11999:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6110,"nodeType":"Block","src":"12249:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e7432353629","id":6103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12299:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},"value":"log(string,string,uint256)"},{"id":6104,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"12329:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6105,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6095,"src":"12333:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6106,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6097,"src":"12337:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5821efa12787fd2b80909e807f1dcc73717b87128d89e827e5b876178f2fdbd0","typeString":"literal_string \"log(string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6101,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12275:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6102,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12279:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12275:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12275:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6100,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12259:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12259:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6109,"nodeType":"ExpressionStatement","src":"12259:82:20"}]},"id":6111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12183:3:20","nodeType":"FunctionDefinition","parameters":{"id":6098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6093,"mutability":"mutable","name":"p0","nameLocation":"12201:2:20","nodeType":"VariableDeclaration","scope":6111,"src":"12187:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6092,"name":"string","nodeType":"ElementaryTypeName","src":"12187:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6095,"mutability":"mutable","name":"p1","nameLocation":"12219:2:20","nodeType":"VariableDeclaration","scope":6111,"src":"12205:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6094,"name":"string","nodeType":"ElementaryTypeName","src":"12205:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6097,"mutability":"mutable","name":"p2","nameLocation":"12231:2:20","nodeType":"VariableDeclaration","scope":6111,"src":"12223:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6096,"name":"uint256","nodeType":"ElementaryTypeName","src":"12223:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12186:48:20"},"returnParameters":{"id":6099,"nodeType":"ParameterList","parameters":[],"src":"12249:0:20"},"scope":12860,"src":"12174:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6130,"nodeType":"Block","src":"12435:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e6729","id":6123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12485:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},"value":"log(string,string,string)"},{"id":6124,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6113,"src":"12514:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6125,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6115,"src":"12518:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6126,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6117,"src":"12522:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ced7cef693312206c21f0e92e3b54e2e16bf33db5eec350c78866822c665e1f","typeString":"literal_string \"log(string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12461:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12465:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12461:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12461:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6120,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12445:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12445:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6129,"nodeType":"ExpressionStatement","src":"12445:81:20"}]},"id":6131,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12363:3:20","nodeType":"FunctionDefinition","parameters":{"id":6118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6113,"mutability":"mutable","name":"p0","nameLocation":"12381:2:20","nodeType":"VariableDeclaration","scope":6131,"src":"12367:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6112,"name":"string","nodeType":"ElementaryTypeName","src":"12367:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6115,"mutability":"mutable","name":"p1","nameLocation":"12399:2:20","nodeType":"VariableDeclaration","scope":6131,"src":"12385:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6114,"name":"string","nodeType":"ElementaryTypeName","src":"12385:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6117,"mutability":"mutable","name":"p2","nameLocation":"12417:2:20","nodeType":"VariableDeclaration","scope":6131,"src":"12403:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6116,"name":"string","nodeType":"ElementaryTypeName","src":"12403:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"12366:54:20"},"returnParameters":{"id":6119,"nodeType":"ParameterList","parameters":[],"src":"12435:0:20"},"scope":12860,"src":"12354:179:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6150,"nodeType":"Block","src":"12611:96:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c29","id":6143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12661:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},"value":"log(string,string,bool)"},{"id":6144,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6133,"src":"12688:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6145,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6135,"src":"12692:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6146,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6137,"src":"12696:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b0e0f9b5ad960213f9ab262d120ce4ec3edffc58d1ad51b99628a777e82d8acb","typeString":"literal_string \"log(string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6141,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12637:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6142,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12641:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12637:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12637:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6140,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12621:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12621:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6149,"nodeType":"ExpressionStatement","src":"12621:79:20"}]},"id":6151,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12548:3:20","nodeType":"FunctionDefinition","parameters":{"id":6138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6133,"mutability":"mutable","name":"p0","nameLocation":"12566:2:20","nodeType":"VariableDeclaration","scope":6151,"src":"12552:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6132,"name":"string","nodeType":"ElementaryTypeName","src":"12552:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6135,"mutability":"mutable","name":"p1","nameLocation":"12584:2:20","nodeType":"VariableDeclaration","scope":6151,"src":"12570:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6134,"name":"string","nodeType":"ElementaryTypeName","src":"12570:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6137,"mutability":"mutable","name":"p2","nameLocation":"12593:2:20","nodeType":"VariableDeclaration","scope":6151,"src":"12588:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6136,"name":"bool","nodeType":"ElementaryTypeName","src":"12588:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"12551:45:20"},"returnParameters":{"id":6139,"nodeType":"ParameterList","parameters":[],"src":"12611:0:20"},"scope":12860,"src":"12539:168:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6170,"nodeType":"Block","src":"12788:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c6164647265737329","id":6163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12838:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},"value":"log(string,string,address)"},{"id":6164,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6153,"src":"12868:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6165,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6155,"src":"12872:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6166,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6157,"src":"12876:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_95ed0195ee22a092ad93d352c33e8dc78b91f0c01eab9cff270af55b2ae65768","typeString":"literal_string \"log(string,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6161,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12814:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12818:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12814:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12814:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6160,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12798:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12798:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6169,"nodeType":"ExpressionStatement","src":"12798:82:20"}]},"id":6171,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12722:3:20","nodeType":"FunctionDefinition","parameters":{"id":6158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6153,"mutability":"mutable","name":"p0","nameLocation":"12740:2:20","nodeType":"VariableDeclaration","scope":6171,"src":"12726:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6152,"name":"string","nodeType":"ElementaryTypeName","src":"12726:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6155,"mutability":"mutable","name":"p1","nameLocation":"12758:2:20","nodeType":"VariableDeclaration","scope":6171,"src":"12744:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6154,"name":"string","nodeType":"ElementaryTypeName","src":"12744:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6157,"mutability":"mutable","name":"p2","nameLocation":"12770:2:20","nodeType":"VariableDeclaration","scope":6171,"src":"12762:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6156,"name":"address","nodeType":"ElementaryTypeName","src":"12762:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12725:48:20"},"returnParameters":{"id":6159,"nodeType":"ParameterList","parameters":[],"src":"12788:0:20"},"scope":12860,"src":"12713:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6190,"nodeType":"Block","src":"12959:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e7432353629","id":6183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13009:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},"value":"log(string,bool,uint256)"},{"id":6184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6173,"src":"13037:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"13041:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6177,"src":"13045:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c95958d6bc6e492868f9bea34fa0d5d3bf60736d44598880e7a9a99746b5d26a","typeString":"literal_string \"log(string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12985:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12989:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"12985:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12985:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"12969:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12969:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6189,"nodeType":"ExpressionStatement","src":"12969:80:20"}]},"id":6191,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"12902:3:20","nodeType":"FunctionDefinition","parameters":{"id":6178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6173,"mutability":"mutable","name":"p0","nameLocation":"12920:2:20","nodeType":"VariableDeclaration","scope":6191,"src":"12906:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6172,"name":"string","nodeType":"ElementaryTypeName","src":"12906:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6175,"mutability":"mutable","name":"p1","nameLocation":"12929:2:20","nodeType":"VariableDeclaration","scope":6191,"src":"12924:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6174,"name":"bool","nodeType":"ElementaryTypeName","src":"12924:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6177,"mutability":"mutable","name":"p2","nameLocation":"12941:2:20","nodeType":"VariableDeclaration","scope":6191,"src":"12933:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6176,"name":"uint256","nodeType":"ElementaryTypeName","src":"12933:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12905:39:20"},"returnParameters":{"id":6179,"nodeType":"ParameterList","parameters":[],"src":"12959:0:20"},"scope":12860,"src":"12893:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6210,"nodeType":"Block","src":"13134:96:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e6729","id":6203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13184:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},"value":"log(string,bool,string)"},{"id":6204,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6193,"src":"13211:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6205,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6195,"src":"13215:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6206,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6197,"src":"13219:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e298f47d872a89293d316b9b936000a26f83eda2ba3171b2f9f16e2bf618c3e7","typeString":"literal_string \"log(string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6201,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13160:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6202,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13164:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13160:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13160:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6200,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13144:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13144:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6209,"nodeType":"ExpressionStatement","src":"13144:79:20"}]},"id":6211,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13071:3:20","nodeType":"FunctionDefinition","parameters":{"id":6198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6193,"mutability":"mutable","name":"p0","nameLocation":"13089:2:20","nodeType":"VariableDeclaration","scope":6211,"src":"13075:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6192,"name":"string","nodeType":"ElementaryTypeName","src":"13075:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6195,"mutability":"mutable","name":"p1","nameLocation":"13098:2:20","nodeType":"VariableDeclaration","scope":6211,"src":"13093:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6194,"name":"bool","nodeType":"ElementaryTypeName","src":"13093:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6197,"mutability":"mutable","name":"p2","nameLocation":"13116:2:20","nodeType":"VariableDeclaration","scope":6211,"src":"13102:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6196,"name":"string","nodeType":"ElementaryTypeName","src":"13102:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13074:45:20"},"returnParameters":{"id":6199,"nodeType":"ParameterList","parameters":[],"src":"13134:0:20"},"scope":12860,"src":"13062:168:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6230,"nodeType":"Block","src":"13299:94:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c29","id":6223,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13349:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},"value":"log(string,bool,bool)"},{"id":6224,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6213,"src":"13374:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6225,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6215,"src":"13378:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6226,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6217,"src":"13382:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_850b7ad637241a873b861925ccffb71aaffb030b1df8850f324c9804bc7b443d","typeString":"literal_string \"log(string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6221,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13325:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13329:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13325:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13325:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6220,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13309:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13309:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6229,"nodeType":"ExpressionStatement","src":"13309:77:20"}]},"id":6231,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13245:3:20","nodeType":"FunctionDefinition","parameters":{"id":6218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6213,"mutability":"mutable","name":"p0","nameLocation":"13263:2:20","nodeType":"VariableDeclaration","scope":6231,"src":"13249:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6212,"name":"string","nodeType":"ElementaryTypeName","src":"13249:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6215,"mutability":"mutable","name":"p1","nameLocation":"13272:2:20","nodeType":"VariableDeclaration","scope":6231,"src":"13267:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6214,"name":"bool","nodeType":"ElementaryTypeName","src":"13267:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6217,"mutability":"mutable","name":"p2","nameLocation":"13281:2:20","nodeType":"VariableDeclaration","scope":6231,"src":"13276:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6216,"name":"bool","nodeType":"ElementaryTypeName","src":"13276:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13248:36:20"},"returnParameters":{"id":6219,"nodeType":"ParameterList","parameters":[],"src":"13299:0:20"},"scope":12860,"src":"13236:157:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6250,"nodeType":"Block","src":"13465:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c6164647265737329","id":6243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13515:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},"value":"log(string,bool,address)"},{"id":6244,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6233,"src":"13543:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6245,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6235,"src":"13547:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6246,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6237,"src":"13551:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_932bbb385d479707ff387e3bb2d8968a7b4115e938510c531aa15b50507fc27f","typeString":"literal_string \"log(string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6241,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13491:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13495:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13491:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13491:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6240,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13475:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13475:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6249,"nodeType":"ExpressionStatement","src":"13475:80:20"}]},"id":6251,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13408:3:20","nodeType":"FunctionDefinition","parameters":{"id":6238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6233,"mutability":"mutable","name":"p0","nameLocation":"13426:2:20","nodeType":"VariableDeclaration","scope":6251,"src":"13412:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6232,"name":"string","nodeType":"ElementaryTypeName","src":"13412:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6235,"mutability":"mutable","name":"p1","nameLocation":"13435:2:20","nodeType":"VariableDeclaration","scope":6251,"src":"13430:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6234,"name":"bool","nodeType":"ElementaryTypeName","src":"13430:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6237,"mutability":"mutable","name":"p2","nameLocation":"13447:2:20","nodeType":"VariableDeclaration","scope":6251,"src":"13439:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6236,"name":"address","nodeType":"ElementaryTypeName","src":"13439:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13411:39:20"},"returnParameters":{"id":6239,"nodeType":"ParameterList","parameters":[],"src":"13465:0:20"},"scope":12860,"src":"13399:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6270,"nodeType":"Block","src":"13637:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e7432353629","id":6263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13687:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},"value":"log(string,address,uint256)"},{"id":6264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6253,"src":"13718:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"13722:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6257,"src":"13726:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d26b92533630e908cb95a1b2ed09291c6aa98f8da7094a2325f8c86cd45e5e4","typeString":"literal_string \"log(string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13663:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13667:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13663:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13663:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13647:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13647:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6269,"nodeType":"ExpressionStatement","src":"13647:83:20"}]},"id":6271,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13577:3:20","nodeType":"FunctionDefinition","parameters":{"id":6258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6253,"mutability":"mutable","name":"p0","nameLocation":"13595:2:20","nodeType":"VariableDeclaration","scope":6271,"src":"13581:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6252,"name":"string","nodeType":"ElementaryTypeName","src":"13581:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6255,"mutability":"mutable","name":"p1","nameLocation":"13607:2:20","nodeType":"VariableDeclaration","scope":6271,"src":"13599:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6254,"name":"address","nodeType":"ElementaryTypeName","src":"13599:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6257,"mutability":"mutable","name":"p2","nameLocation":"13619:2:20","nodeType":"VariableDeclaration","scope":6271,"src":"13611:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6256,"name":"uint256","nodeType":"ElementaryTypeName","src":"13611:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13580:42:20"},"returnParameters":{"id":6259,"nodeType":"ParameterList","parameters":[],"src":"13637:0:20"},"scope":12860,"src":"13568:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6290,"nodeType":"Block","src":"13818:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e6729","id":6283,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13868:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},"value":"log(string,address,string)"},{"id":6284,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6273,"src":"13898:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6285,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6275,"src":"13902:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6286,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6277,"src":"13906:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e9ad4f87059a51cce5555e129ca819f7e5d52e9c65a4e175882207ee47d634","typeString":"literal_string \"log(string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6281,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"13844:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13848:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"13844:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13844:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6280,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13828:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13828:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6289,"nodeType":"ExpressionStatement","src":"13828:82:20"}]},"id":6291,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13752:3:20","nodeType":"FunctionDefinition","parameters":{"id":6278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6273,"mutability":"mutable","name":"p0","nameLocation":"13770:2:20","nodeType":"VariableDeclaration","scope":6291,"src":"13756:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6272,"name":"string","nodeType":"ElementaryTypeName","src":"13756:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6275,"mutability":"mutable","name":"p1","nameLocation":"13782:2:20","nodeType":"VariableDeclaration","scope":6291,"src":"13774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6274,"name":"address","nodeType":"ElementaryTypeName","src":"13774:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6277,"mutability":"mutable","name":"p2","nameLocation":"13800:2:20","nodeType":"VariableDeclaration","scope":6291,"src":"13786:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6276,"name":"string","nodeType":"ElementaryTypeName","src":"13786:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"13755:48:20"},"returnParameters":{"id":6279,"nodeType":"ParameterList","parameters":[],"src":"13818:0:20"},"scope":12860,"src":"13743:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6310,"nodeType":"Block","src":"13989:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c29","id":6303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14039:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},"value":"log(string,address,bool)"},{"id":6304,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"14067:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6305,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6295,"src":"14071:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6306,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6297,"src":"14075:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c91d5ed4480e0b3323f998bcee9594aa98173c7324b015a4713a7c8429afd0b8","typeString":"literal_string \"log(string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6301,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14015:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6302,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14019:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14015:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14015:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6300,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"13999:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6308,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13999:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6309,"nodeType":"ExpressionStatement","src":"13999:80:20"}]},"id":6311,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"13932:3:20","nodeType":"FunctionDefinition","parameters":{"id":6298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6293,"mutability":"mutable","name":"p0","nameLocation":"13950:2:20","nodeType":"VariableDeclaration","scope":6311,"src":"13936:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6292,"name":"string","nodeType":"ElementaryTypeName","src":"13936:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6295,"mutability":"mutable","name":"p1","nameLocation":"13962:2:20","nodeType":"VariableDeclaration","scope":6311,"src":"13954:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6294,"name":"address","nodeType":"ElementaryTypeName","src":"13954:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6297,"mutability":"mutable","name":"p2","nameLocation":"13971:2:20","nodeType":"VariableDeclaration","scope":6311,"src":"13966:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6296,"name":"bool","nodeType":"ElementaryTypeName","src":"13966:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13935:39:20"},"returnParameters":{"id":6299,"nodeType":"ParameterList","parameters":[],"src":"13989:0:20"},"scope":12860,"src":"13923:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6330,"nodeType":"Block","src":"14161:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c6164647265737329","id":6323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14211:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},"value":"log(string,address,address)"},{"id":6324,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6313,"src":"14242:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6325,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6315,"src":"14246:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6326,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6317,"src":"14250:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fcec75e0902c9d61eded5d9f2eed16d5b0f2cd255fe6fa77733f59e1063823e8","typeString":"literal_string \"log(string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6321,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14187:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14191:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14187:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14187:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6320,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14171:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14171:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6329,"nodeType":"ExpressionStatement","src":"14171:83:20"}]},"id":6331,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14101:3:20","nodeType":"FunctionDefinition","parameters":{"id":6318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6313,"mutability":"mutable","name":"p0","nameLocation":"14119:2:20","nodeType":"VariableDeclaration","scope":6331,"src":"14105:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6312,"name":"string","nodeType":"ElementaryTypeName","src":"14105:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6315,"mutability":"mutable","name":"p1","nameLocation":"14131:2:20","nodeType":"VariableDeclaration","scope":6331,"src":"14123:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6314,"name":"address","nodeType":"ElementaryTypeName","src":"14123:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6317,"mutability":"mutable","name":"p2","nameLocation":"14143:2:20","nodeType":"VariableDeclaration","scope":6331,"src":"14135:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6316,"name":"address","nodeType":"ElementaryTypeName","src":"14135:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14104:42:20"},"returnParameters":{"id":6319,"nodeType":"ParameterList","parameters":[],"src":"14161:0:20"},"scope":12860,"src":"14092:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6350,"nodeType":"Block","src":"14327:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e7432353629","id":6343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14377:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},"value":"log(bool,uint256,uint256)"},{"id":6344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"14406:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6345,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6335,"src":"14410:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6346,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6337,"src":"14414:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_371033677da72158a60d6dc6ec9fa4683ad37ad854670ba3fcf814603cf8bb28","typeString":"literal_string \"log(bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14353:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14357:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14353:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14353:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14337:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14337:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6349,"nodeType":"ExpressionStatement","src":"14337:81:20"}]},"id":6351,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14276:3:20","nodeType":"FunctionDefinition","parameters":{"id":6338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6333,"mutability":"mutable","name":"p0","nameLocation":"14285:2:20","nodeType":"VariableDeclaration","scope":6351,"src":"14280:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6332,"name":"bool","nodeType":"ElementaryTypeName","src":"14280:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6335,"mutability":"mutable","name":"p1","nameLocation":"14297:2:20","nodeType":"VariableDeclaration","scope":6351,"src":"14289:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6334,"name":"uint256","nodeType":"ElementaryTypeName","src":"14289:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6337,"mutability":"mutable","name":"p2","nameLocation":"14309:2:20","nodeType":"VariableDeclaration","scope":6351,"src":"14301:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6336,"name":"uint256","nodeType":"ElementaryTypeName","src":"14301:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14279:33:20"},"returnParameters":{"id":6339,"nodeType":"ParameterList","parameters":[],"src":"14327:0:20"},"scope":12860,"src":"14267:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6370,"nodeType":"Block","src":"14497:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e6729","id":6363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14547:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},"value":"log(bool,uint256,string)"},{"id":6364,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6353,"src":"14575:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6365,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6355,"src":"14579:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6366,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6357,"src":"14583:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3fc3970359ec5bcd4a409af812c658e77b7983043c9e7299db566fbd8131447","typeString":"literal_string \"log(bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6361,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14523:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14527:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14523:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14523:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6360,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14507:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14507:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6369,"nodeType":"ExpressionStatement","src":"14507:80:20"}]},"id":6371,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14440:3:20","nodeType":"FunctionDefinition","parameters":{"id":6358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6353,"mutability":"mutable","name":"p0","nameLocation":"14449:2:20","nodeType":"VariableDeclaration","scope":6371,"src":"14444:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6352,"name":"bool","nodeType":"ElementaryTypeName","src":"14444:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6355,"mutability":"mutable","name":"p1","nameLocation":"14461:2:20","nodeType":"VariableDeclaration","scope":6371,"src":"14453:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6354,"name":"uint256","nodeType":"ElementaryTypeName","src":"14453:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6357,"mutability":"mutable","name":"p2","nameLocation":"14479:2:20","nodeType":"VariableDeclaration","scope":6371,"src":"14465:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6356,"name":"string","nodeType":"ElementaryTypeName","src":"14465:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"14443:39:20"},"returnParameters":{"id":6359,"nodeType":"ParameterList","parameters":[],"src":"14497:0:20"},"scope":12860,"src":"14431:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6390,"nodeType":"Block","src":"14657:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c29","id":6383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14707:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},"value":"log(bool,uint256,bool)"},{"id":6384,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"14733:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6385,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6375,"src":"14737:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6386,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6377,"src":"14741:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8defba9dac8a3ed4ad0f711b733171fd223b5d127b3485540d69bec05995a26","typeString":"literal_string \"log(bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6381,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14683:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14687:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14683:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14683:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6380,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14667:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14667:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6389,"nodeType":"ExpressionStatement","src":"14667:78:20"}]},"id":6391,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14609:3:20","nodeType":"FunctionDefinition","parameters":{"id":6378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6373,"mutability":"mutable","name":"p0","nameLocation":"14618:2:20","nodeType":"VariableDeclaration","scope":6391,"src":"14613:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6372,"name":"bool","nodeType":"ElementaryTypeName","src":"14613:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6375,"mutability":"mutable","name":"p1","nameLocation":"14630:2:20","nodeType":"VariableDeclaration","scope":6391,"src":"14622:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6374,"name":"uint256","nodeType":"ElementaryTypeName","src":"14622:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6377,"mutability":"mutable","name":"p2","nameLocation":"14639:2:20","nodeType":"VariableDeclaration","scope":6391,"src":"14634:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6376,"name":"bool","nodeType":"ElementaryTypeName","src":"14634:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"14612:30:20"},"returnParameters":{"id":6379,"nodeType":"ParameterList","parameters":[],"src":"14657:0:20"},"scope":12860,"src":"14600:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6410,"nodeType":"Block","src":"14818:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c6164647265737329","id":6403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14868:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},"value":"log(bool,uint256,address)"},{"id":6404,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6393,"src":"14897:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6405,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6395,"src":"14901:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6406,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6397,"src":"14905:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_088ef9d2f4d01d13401423c19b7f189200a7ad3f567d9e20f37299f94f92f574","typeString":"literal_string \"log(bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6401,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"14844:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6402,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14848:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"14844:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14844:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6400,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14828:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14828:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6409,"nodeType":"ExpressionStatement","src":"14828:81:20"}]},"id":6411,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14767:3:20","nodeType":"FunctionDefinition","parameters":{"id":6398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6393,"mutability":"mutable","name":"p0","nameLocation":"14776:2:20","nodeType":"VariableDeclaration","scope":6411,"src":"14771:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6392,"name":"bool","nodeType":"ElementaryTypeName","src":"14771:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6395,"mutability":"mutable","name":"p1","nameLocation":"14788:2:20","nodeType":"VariableDeclaration","scope":6411,"src":"14780:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6394,"name":"uint256","nodeType":"ElementaryTypeName","src":"14780:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6397,"mutability":"mutable","name":"p2","nameLocation":"14800:2:20","nodeType":"VariableDeclaration","scope":6411,"src":"14792:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6396,"name":"address","nodeType":"ElementaryTypeName","src":"14792:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14770:33:20"},"returnParameters":{"id":6399,"nodeType":"ParameterList","parameters":[],"src":"14818:0:20"},"scope":12860,"src":"14758:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6430,"nodeType":"Block","src":"14988:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e7432353629","id":6423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15038:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},"value":"log(bool,string,uint256)"},{"id":6424,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6413,"src":"15066:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6425,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6415,"src":"15070:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6426,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6417,"src":"15074:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1093ee11e671928331708700100b356c86a8494f33b170ddcffd95462a0adf64","typeString":"literal_string \"log(bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15014:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15018:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15014:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15014:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6420,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"14998:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14998:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6429,"nodeType":"ExpressionStatement","src":"14998:80:20"}]},"id":6431,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"14931:3:20","nodeType":"FunctionDefinition","parameters":{"id":6418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6413,"mutability":"mutable","name":"p0","nameLocation":"14940:2:20","nodeType":"VariableDeclaration","scope":6431,"src":"14935:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6412,"name":"bool","nodeType":"ElementaryTypeName","src":"14935:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6415,"mutability":"mutable","name":"p1","nameLocation":"14958:2:20","nodeType":"VariableDeclaration","scope":6431,"src":"14944:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6414,"name":"string","nodeType":"ElementaryTypeName","src":"14944:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6417,"mutability":"mutable","name":"p2","nameLocation":"14970:2:20","nodeType":"VariableDeclaration","scope":6431,"src":"14962:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6416,"name":"uint256","nodeType":"ElementaryTypeName","src":"14962:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14934:39:20"},"returnParameters":{"id":6419,"nodeType":"ParameterList","parameters":[],"src":"14988:0:20"},"scope":12860,"src":"14922:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6450,"nodeType":"Block","src":"15163:96:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e6729","id":6443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15213:25:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},"value":"log(bool,string,string)"},{"id":6444,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6433,"src":"15240:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6445,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6435,"src":"15244:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6446,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6437,"src":"15248:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b076847f8b4aee0cfbf46ec501532f9f3c85a581aff135287ff8e917c0a39102","typeString":"literal_string \"log(bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6441,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15189:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15193:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15189:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15189:62:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6440,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15173:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15173:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6449,"nodeType":"ExpressionStatement","src":"15173:79:20"}]},"id":6451,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15100:3:20","nodeType":"FunctionDefinition","parameters":{"id":6438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6433,"mutability":"mutable","name":"p0","nameLocation":"15109:2:20","nodeType":"VariableDeclaration","scope":6451,"src":"15104:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6432,"name":"bool","nodeType":"ElementaryTypeName","src":"15104:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6435,"mutability":"mutable","name":"p1","nameLocation":"15127:2:20","nodeType":"VariableDeclaration","scope":6451,"src":"15113:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6434,"name":"string","nodeType":"ElementaryTypeName","src":"15113:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6437,"mutability":"mutable","name":"p2","nameLocation":"15145:2:20","nodeType":"VariableDeclaration","scope":6451,"src":"15131:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6436,"name":"string","nodeType":"ElementaryTypeName","src":"15131:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15103:45:20"},"returnParameters":{"id":6439,"nodeType":"ParameterList","parameters":[],"src":"15163:0:20"},"scope":12860,"src":"15091:168:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6470,"nodeType":"Block","src":"15328:94:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c29","id":6463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15378:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},"value":"log(bool,string,bool)"},{"id":6464,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"15403:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6465,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6455,"src":"15407:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6466,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6457,"src":"15411:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dbb4c2477dacc98e0e5b96fd6ca6bf0ae1f82dd042439d9f53f8d963bef43eaa","typeString":"literal_string \"log(bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6461,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15354:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15358:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15354:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15354:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6460,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15338:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15338:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6469,"nodeType":"ExpressionStatement","src":"15338:77:20"}]},"id":6471,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15274:3:20","nodeType":"FunctionDefinition","parameters":{"id":6458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6453,"mutability":"mutable","name":"p0","nameLocation":"15283:2:20","nodeType":"VariableDeclaration","scope":6471,"src":"15278:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6452,"name":"bool","nodeType":"ElementaryTypeName","src":"15278:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6455,"mutability":"mutable","name":"p1","nameLocation":"15301:2:20","nodeType":"VariableDeclaration","scope":6471,"src":"15287:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6454,"name":"string","nodeType":"ElementaryTypeName","src":"15287:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6457,"mutability":"mutable","name":"p2","nameLocation":"15310:2:20","nodeType":"VariableDeclaration","scope":6471,"src":"15305:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6456,"name":"bool","nodeType":"ElementaryTypeName","src":"15305:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15277:36:20"},"returnParameters":{"id":6459,"nodeType":"ParameterList","parameters":[],"src":"15328:0:20"},"scope":12860,"src":"15265:157:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6490,"nodeType":"Block","src":"15494:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c6164647265737329","id":6483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15544:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},"value":"log(bool,string,address)"},{"id":6484,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6473,"src":"15572:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6485,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6475,"src":"15576:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6486,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6477,"src":"15580:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9591b953c9b1d0af9d1e3bc0f6ea9aa5b0e1af8c702f85b36e21b9b2d7e4da79","typeString":"literal_string \"log(bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6481,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15520:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6482,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15524:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15520:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15520:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6480,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15504:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15504:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6489,"nodeType":"ExpressionStatement","src":"15504:80:20"}]},"id":6491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15437:3:20","nodeType":"FunctionDefinition","parameters":{"id":6478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6473,"mutability":"mutable","name":"p0","nameLocation":"15446:2:20","nodeType":"VariableDeclaration","scope":6491,"src":"15441:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6472,"name":"bool","nodeType":"ElementaryTypeName","src":"15441:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6475,"mutability":"mutable","name":"p1","nameLocation":"15464:2:20","nodeType":"VariableDeclaration","scope":6491,"src":"15450:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6474,"name":"string","nodeType":"ElementaryTypeName","src":"15450:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6477,"mutability":"mutable","name":"p2","nameLocation":"15476:2:20","nodeType":"VariableDeclaration","scope":6491,"src":"15468:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6476,"name":"address","nodeType":"ElementaryTypeName","src":"15468:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15440:39:20"},"returnParameters":{"id":6479,"nodeType":"ParameterList","parameters":[],"src":"15494:0:20"},"scope":12860,"src":"15428:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6510,"nodeType":"Block","src":"15654:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e7432353629","id":6503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15704:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},"value":"log(bool,bool,uint256)"},{"id":6504,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6493,"src":"15730:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6505,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6495,"src":"15734:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6506,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6497,"src":"15738:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12f216023a0243e7ece19b75fc4619b59ea663e0aefdf2e4b1faa16a9fa3a211","typeString":"literal_string \"log(bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15680:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15684:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15680:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15680:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6500,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15664:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15664:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6509,"nodeType":"ExpressionStatement","src":"15664:78:20"}]},"id":6511,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15606:3:20","nodeType":"FunctionDefinition","parameters":{"id":6498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6493,"mutability":"mutable","name":"p0","nameLocation":"15615:2:20","nodeType":"VariableDeclaration","scope":6511,"src":"15610:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6492,"name":"bool","nodeType":"ElementaryTypeName","src":"15610:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6495,"mutability":"mutable","name":"p1","nameLocation":"15624:2:20","nodeType":"VariableDeclaration","scope":6511,"src":"15619:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6494,"name":"bool","nodeType":"ElementaryTypeName","src":"15619:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6497,"mutability":"mutable","name":"p2","nameLocation":"15636:2:20","nodeType":"VariableDeclaration","scope":6511,"src":"15628:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6496,"name":"uint256","nodeType":"ElementaryTypeName","src":"15628:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15609:30:20"},"returnParameters":{"id":6499,"nodeType":"ParameterList","parameters":[],"src":"15654:0:20"},"scope":12860,"src":"15597:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6530,"nodeType":"Block","src":"15818:94:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e6729","id":6523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15868:23:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},"value":"log(bool,bool,string)"},{"id":6524,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"15893:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6525,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"15897:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6526,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"15901:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2555fa465662416fc443b21c515f245dc550a66f7c658773f7bd7ad91c82f2cc","typeString":"literal_string \"log(bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6521,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15844:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"15848:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15844:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15844:60:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6520,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15828:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15828:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6529,"nodeType":"ExpressionStatement","src":"15828:77:20"}]},"id":6531,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15764:3:20","nodeType":"FunctionDefinition","parameters":{"id":6518,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6513,"mutability":"mutable","name":"p0","nameLocation":"15773:2:20","nodeType":"VariableDeclaration","scope":6531,"src":"15768:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6512,"name":"bool","nodeType":"ElementaryTypeName","src":"15768:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6515,"mutability":"mutable","name":"p1","nameLocation":"15782:2:20","nodeType":"VariableDeclaration","scope":6531,"src":"15777:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6514,"name":"bool","nodeType":"ElementaryTypeName","src":"15777:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6517,"mutability":"mutable","name":"p2","nameLocation":"15800:2:20","nodeType":"VariableDeclaration","scope":6531,"src":"15786:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6516,"name":"string","nodeType":"ElementaryTypeName","src":"15786:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"15767:36:20"},"returnParameters":{"id":6519,"nodeType":"ParameterList","parameters":[],"src":"15818:0:20"},"scope":12860,"src":"15755:157:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6550,"nodeType":"Block","src":"15972:92:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c29","id":6543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16022:21:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},"value":"log(bool,bool,bool)"},{"id":6544,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6533,"src":"16045:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6545,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6535,"src":"16049:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6546,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6537,"src":"16053:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50709698278bb02f656e4ac53a2ae8ef0ec4064d340360a5fa4d933e9a742590","typeString":"literal_string \"log(bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6541,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"15998:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16002:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"15998:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15998:58:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6540,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"15982:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15982:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6549,"nodeType":"ExpressionStatement","src":"15982:75:20"}]},"id":6551,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"15927:3:20","nodeType":"FunctionDefinition","parameters":{"id":6538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6533,"mutability":"mutable","name":"p0","nameLocation":"15936:2:20","nodeType":"VariableDeclaration","scope":6551,"src":"15931:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6532,"name":"bool","nodeType":"ElementaryTypeName","src":"15931:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6535,"mutability":"mutable","name":"p1","nameLocation":"15945:2:20","nodeType":"VariableDeclaration","scope":6551,"src":"15940:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6534,"name":"bool","nodeType":"ElementaryTypeName","src":"15940:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6537,"mutability":"mutable","name":"p2","nameLocation":"15954:2:20","nodeType":"VariableDeclaration","scope":6551,"src":"15949:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6536,"name":"bool","nodeType":"ElementaryTypeName","src":"15949:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"15930:27:20"},"returnParameters":{"id":6539,"nodeType":"ParameterList","parameters":[],"src":"15972:0:20"},"scope":12860,"src":"15918:146:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6570,"nodeType":"Block","src":"16127:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c6164647265737329","id":6563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16177:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},"value":"log(bool,bool,address)"},{"id":6564,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6553,"src":"16203:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6565,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6555,"src":"16207:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6566,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6557,"src":"16211:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1078f68da6ddbbe80f829fe8d54d1f2c6347e1ee4ec5a2a7a3a330ada9eccf81","typeString":"literal_string \"log(bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6561,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16153:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16157:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16153:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16153:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6560,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16137:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16137:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6569,"nodeType":"ExpressionStatement","src":"16137:78:20"}]},"id":6571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16079:3:20","nodeType":"FunctionDefinition","parameters":{"id":6558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6553,"mutability":"mutable","name":"p0","nameLocation":"16088:2:20","nodeType":"VariableDeclaration","scope":6571,"src":"16083:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6552,"name":"bool","nodeType":"ElementaryTypeName","src":"16083:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6555,"mutability":"mutable","name":"p1","nameLocation":"16097:2:20","nodeType":"VariableDeclaration","scope":6571,"src":"16092:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6554,"name":"bool","nodeType":"ElementaryTypeName","src":"16092:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6557,"mutability":"mutable","name":"p2","nameLocation":"16109:2:20","nodeType":"VariableDeclaration","scope":6571,"src":"16101:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6556,"name":"address","nodeType":"ElementaryTypeName","src":"16101:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16082:30:20"},"returnParameters":{"id":6559,"nodeType":"ParameterList","parameters":[],"src":"16127:0:20"},"scope":12860,"src":"16070:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6590,"nodeType":"Block","src":"16288:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e7432353629","id":6583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16338:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},"value":"log(bool,address,uint256)"},{"id":6584,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6573,"src":"16367:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6585,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6575,"src":"16371:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6586,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6577,"src":"16375:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f7b9afb4f9ee9df3fee50155d0accfa23536f443bcbc89ec11f75df422d05ac","typeString":"literal_string \"log(bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16314:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16318:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16314:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16314:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6580,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16298:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16298:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6589,"nodeType":"ExpressionStatement","src":"16298:81:20"}]},"id":6591,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16237:3:20","nodeType":"FunctionDefinition","parameters":{"id":6578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6573,"mutability":"mutable","name":"p0","nameLocation":"16246:2:20","nodeType":"VariableDeclaration","scope":6591,"src":"16241:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6572,"name":"bool","nodeType":"ElementaryTypeName","src":"16241:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6575,"mutability":"mutable","name":"p1","nameLocation":"16258:2:20","nodeType":"VariableDeclaration","scope":6591,"src":"16250:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6574,"name":"address","nodeType":"ElementaryTypeName","src":"16250:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6577,"mutability":"mutable","name":"p2","nameLocation":"16270:2:20","nodeType":"VariableDeclaration","scope":6591,"src":"16262:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6576,"name":"uint256","nodeType":"ElementaryTypeName","src":"16262:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16240:33:20"},"returnParameters":{"id":6579,"nodeType":"ParameterList","parameters":[],"src":"16288:0:20"},"scope":12860,"src":"16228:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6610,"nodeType":"Block","src":"16458:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e6729","id":6603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16508:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},"value":"log(bool,address,string)"},{"id":6604,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6593,"src":"16536:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6605,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6595,"src":"16540:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6606,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6597,"src":"16544:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de9a927090b15ed84eefc0c471675a23ce67fd75011b1652fe17ca2dd0dcd06d","typeString":"literal_string \"log(bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6601,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16484:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16488:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16484:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16484:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6600,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16468:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16468:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6609,"nodeType":"ExpressionStatement","src":"16468:80:20"}]},"id":6611,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16401:3:20","nodeType":"FunctionDefinition","parameters":{"id":6598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6593,"mutability":"mutable","name":"p0","nameLocation":"16410:2:20","nodeType":"VariableDeclaration","scope":6611,"src":"16405:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6592,"name":"bool","nodeType":"ElementaryTypeName","src":"16405:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6595,"mutability":"mutable","name":"p1","nameLocation":"16422:2:20","nodeType":"VariableDeclaration","scope":6611,"src":"16414:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6594,"name":"address","nodeType":"ElementaryTypeName","src":"16414:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6597,"mutability":"mutable","name":"p2","nameLocation":"16440:2:20","nodeType":"VariableDeclaration","scope":6611,"src":"16426:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6596,"name":"string","nodeType":"ElementaryTypeName","src":"16426:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"16404:39:20"},"returnParameters":{"id":6599,"nodeType":"ParameterList","parameters":[],"src":"16458:0:20"},"scope":12860,"src":"16392:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6630,"nodeType":"Block","src":"16618:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c29","id":6623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16668:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},"value":"log(bool,address,bool)"},{"id":6624,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6613,"src":"16694:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6625,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6615,"src":"16698:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6626,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6617,"src":"16702:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_18c9c746c9d0e38e4dc234ee76e678bbaa4e473eca3dce0969637d7f01e4a908","typeString":"literal_string \"log(bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6621,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16644:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16648:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16644:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16644:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6620,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16628:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16628:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6629,"nodeType":"ExpressionStatement","src":"16628:78:20"}]},"id":6631,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16570:3:20","nodeType":"FunctionDefinition","parameters":{"id":6618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6613,"mutability":"mutable","name":"p0","nameLocation":"16579:2:20","nodeType":"VariableDeclaration","scope":6631,"src":"16574:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6612,"name":"bool","nodeType":"ElementaryTypeName","src":"16574:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6615,"mutability":"mutable","name":"p1","nameLocation":"16591:2:20","nodeType":"VariableDeclaration","scope":6631,"src":"16583:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6614,"name":"address","nodeType":"ElementaryTypeName","src":"16583:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6617,"mutability":"mutable","name":"p2","nameLocation":"16600:2:20","nodeType":"VariableDeclaration","scope":6631,"src":"16595:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6616,"name":"bool","nodeType":"ElementaryTypeName","src":"16595:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"16573:30:20"},"returnParameters":{"id":6619,"nodeType":"ParameterList","parameters":[],"src":"16618:0:20"},"scope":12860,"src":"16561:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6650,"nodeType":"Block","src":"16779:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c6164647265737329","id":6643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16829:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},"value":"log(bool,address,address)"},{"id":6644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6633,"src":"16858:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6635,"src":"16862:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6637,"src":"16866:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2763667477f08a6a3f8ce84e1cc1aeb5e67ee2996f5f36e8939da2b8b8f0265","typeString":"literal_string \"log(bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16805:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16809:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16805:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16805:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16789:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16789:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6649,"nodeType":"ExpressionStatement","src":"16789:81:20"}]},"id":6651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16728:3:20","nodeType":"FunctionDefinition","parameters":{"id":6638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6633,"mutability":"mutable","name":"p0","nameLocation":"16737:2:20","nodeType":"VariableDeclaration","scope":6651,"src":"16732:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6632,"name":"bool","nodeType":"ElementaryTypeName","src":"16732:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6635,"mutability":"mutable","name":"p1","nameLocation":"16749:2:20","nodeType":"VariableDeclaration","scope":6651,"src":"16741:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6634,"name":"address","nodeType":"ElementaryTypeName","src":"16741:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6637,"mutability":"mutable","name":"p2","nameLocation":"16761:2:20","nodeType":"VariableDeclaration","scope":6651,"src":"16753:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6636,"name":"address","nodeType":"ElementaryTypeName","src":"16753:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16731:33:20"},"returnParameters":{"id":6639,"nodeType":"ParameterList","parameters":[],"src":"16779:0:20"},"scope":12860,"src":"16719:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6670,"nodeType":"Block","src":"16946:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e7432353629","id":6663,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16996:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},"value":"log(address,uint256,uint256)"},{"id":6664,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6653,"src":"17028:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6665,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"17032:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6666,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6657,"src":"17036:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b69bcaf6823fa467c87c127df102001d1ca4e8a6dc08cab8aa1e5ab4a0ae8c76","typeString":"literal_string \"log(address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6661,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"16972:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6662,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16976:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"16972:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16972:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6660,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"16956:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16956:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6669,"nodeType":"ExpressionStatement","src":"16956:84:20"}]},"id":6671,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"16892:3:20","nodeType":"FunctionDefinition","parameters":{"id":6658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6653,"mutability":"mutable","name":"p0","nameLocation":"16904:2:20","nodeType":"VariableDeclaration","scope":6671,"src":"16896:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6652,"name":"address","nodeType":"ElementaryTypeName","src":"16896:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6655,"mutability":"mutable","name":"p1","nameLocation":"16916:2:20","nodeType":"VariableDeclaration","scope":6671,"src":"16908:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6654,"name":"uint256","nodeType":"ElementaryTypeName","src":"16908:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6657,"mutability":"mutable","name":"p2","nameLocation":"16928:2:20","nodeType":"VariableDeclaration","scope":6671,"src":"16920:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6656,"name":"uint256","nodeType":"ElementaryTypeName","src":"16920:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16895:36:20"},"returnParameters":{"id":6659,"nodeType":"ParameterList","parameters":[],"src":"16946:0:20"},"scope":12860,"src":"16883:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6690,"nodeType":"Block","src":"17122:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e6729","id":6683,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17172:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},"value":"log(address,uint256,string)"},{"id":6684,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6673,"src":"17203:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6685,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6675,"src":"17207:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6686,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6677,"src":"17211:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1f2e8aa7ff0c088860d7b3f0d1dc288d8e8a07808525cc31a5691f1bc0e149d","typeString":"literal_string \"log(address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6681,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17148:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17152:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17148:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17148:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6680,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17132:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17132:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6689,"nodeType":"ExpressionStatement","src":"17132:83:20"}]},"id":6691,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17062:3:20","nodeType":"FunctionDefinition","parameters":{"id":6678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6673,"mutability":"mutable","name":"p0","nameLocation":"17074:2:20","nodeType":"VariableDeclaration","scope":6691,"src":"17066:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6672,"name":"address","nodeType":"ElementaryTypeName","src":"17066:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6675,"mutability":"mutable","name":"p1","nameLocation":"17086:2:20","nodeType":"VariableDeclaration","scope":6691,"src":"17078:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6674,"name":"uint256","nodeType":"ElementaryTypeName","src":"17078:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6677,"mutability":"mutable","name":"p2","nameLocation":"17104:2:20","nodeType":"VariableDeclaration","scope":6691,"src":"17090:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6676,"name":"string","nodeType":"ElementaryTypeName","src":"17090:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17065:42:20"},"returnParameters":{"id":6679,"nodeType":"ParameterList","parameters":[],"src":"17122:0:20"},"scope":12860,"src":"17053:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6710,"nodeType":"Block","src":"17288:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c29","id":6703,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17338:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},"value":"log(address,uint256,bool)"},{"id":6704,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6693,"src":"17367:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6705,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6695,"src":"17371:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6706,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6697,"src":"17375:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_678209a8f42181c670dc624bae130f552678a896a5cb06db485524796aca1390","typeString":"literal_string \"log(address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6701,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17314:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6702,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17318:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17314:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17314:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6700,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17298:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17298:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6709,"nodeType":"ExpressionStatement","src":"17298:81:20"}]},"id":6711,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17237:3:20","nodeType":"FunctionDefinition","parameters":{"id":6698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6693,"mutability":"mutable","name":"p0","nameLocation":"17249:2:20","nodeType":"VariableDeclaration","scope":6711,"src":"17241:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6692,"name":"address","nodeType":"ElementaryTypeName","src":"17241:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6695,"mutability":"mutable","name":"p1","nameLocation":"17261:2:20","nodeType":"VariableDeclaration","scope":6711,"src":"17253:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6694,"name":"uint256","nodeType":"ElementaryTypeName","src":"17253:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6697,"mutability":"mutable","name":"p2","nameLocation":"17270:2:20","nodeType":"VariableDeclaration","scope":6711,"src":"17265:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6696,"name":"bool","nodeType":"ElementaryTypeName","src":"17265:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17240:33:20"},"returnParameters":{"id":6699,"nodeType":"ParameterList","parameters":[],"src":"17288:0:20"},"scope":12860,"src":"17228:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6730,"nodeType":"Block","src":"17455:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c6164647265737329","id":6723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17505:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},"value":"log(address,uint256,address)"},{"id":6724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"17537:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6715,"src":"17541:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6717,"src":"17545:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bc0d848840f8a2b7df87b30af9a8d9856aea86658fd890c9e8abce72cda0b36","typeString":"literal_string \"log(address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17481:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17485:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17481:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17481:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17465:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17465:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6729,"nodeType":"ExpressionStatement","src":"17465:84:20"}]},"id":6731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17401:3:20","nodeType":"FunctionDefinition","parameters":{"id":6718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6713,"mutability":"mutable","name":"p0","nameLocation":"17413:2:20","nodeType":"VariableDeclaration","scope":6731,"src":"17405:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6712,"name":"address","nodeType":"ElementaryTypeName","src":"17405:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6715,"mutability":"mutable","name":"p1","nameLocation":"17425:2:20","nodeType":"VariableDeclaration","scope":6731,"src":"17417:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6714,"name":"uint256","nodeType":"ElementaryTypeName","src":"17417:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6717,"mutability":"mutable","name":"p2","nameLocation":"17437:2:20","nodeType":"VariableDeclaration","scope":6731,"src":"17429:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6716,"name":"address","nodeType":"ElementaryTypeName","src":"17429:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17404:36:20"},"returnParameters":{"id":6719,"nodeType":"ParameterList","parameters":[],"src":"17455:0:20"},"scope":12860,"src":"17392:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6750,"nodeType":"Block","src":"17631:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e7432353629","id":6743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17681:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},"value":"log(address,string,uint256)"},{"id":6744,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6733,"src":"17712:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6745,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6735,"src":"17716:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6746,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"17720:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_67dd6ff15de5c635b9900811039f919659774d9843a07b7bcdfb1b54315e9200","typeString":"literal_string \"log(address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6741,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17657:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17661:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17657:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17657:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6740,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17641:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6749,"nodeType":"ExpressionStatement","src":"17641:83:20"}]},"id":6751,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17571:3:20","nodeType":"FunctionDefinition","parameters":{"id":6738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6733,"mutability":"mutable","name":"p0","nameLocation":"17583:2:20","nodeType":"VariableDeclaration","scope":6751,"src":"17575:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6732,"name":"address","nodeType":"ElementaryTypeName","src":"17575:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6735,"mutability":"mutable","name":"p1","nameLocation":"17601:2:20","nodeType":"VariableDeclaration","scope":6751,"src":"17587:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6734,"name":"string","nodeType":"ElementaryTypeName","src":"17587:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6737,"mutability":"mutable","name":"p2","nameLocation":"17613:2:20","nodeType":"VariableDeclaration","scope":6751,"src":"17605:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6736,"name":"uint256","nodeType":"ElementaryTypeName","src":"17605:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17574:42:20"},"returnParameters":{"id":6739,"nodeType":"ParameterList","parameters":[],"src":"17631:0:20"},"scope":12860,"src":"17562:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6770,"nodeType":"Block","src":"17812:99:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e6729","id":6763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17862:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},"value":"log(address,string,string)"},{"id":6764,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6753,"src":"17892:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6765,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6755,"src":"17896:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6766,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6757,"src":"17900:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fb77226597c11cd0c52945168d7176a06b9af41edea6a51823db111f35573158","typeString":"literal_string \"log(address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6761,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"17838:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6762,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"17842:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"17838:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17838:65:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6760,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17822:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17822:82:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6769,"nodeType":"ExpressionStatement","src":"17822:82:20"}]},"id":6771,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17746:3:20","nodeType":"FunctionDefinition","parameters":{"id":6758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6753,"mutability":"mutable","name":"p0","nameLocation":"17758:2:20","nodeType":"VariableDeclaration","scope":6771,"src":"17750:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6752,"name":"address","nodeType":"ElementaryTypeName","src":"17750:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6755,"mutability":"mutable","name":"p1","nameLocation":"17776:2:20","nodeType":"VariableDeclaration","scope":6771,"src":"17762:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6754,"name":"string","nodeType":"ElementaryTypeName","src":"17762:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6757,"mutability":"mutable","name":"p2","nameLocation":"17794:2:20","nodeType":"VariableDeclaration","scope":6771,"src":"17780:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6756,"name":"string","nodeType":"ElementaryTypeName","src":"17780:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"17749:48:20"},"returnParameters":{"id":6759,"nodeType":"ParameterList","parameters":[],"src":"17812:0:20"},"scope":12860,"src":"17737:174:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6790,"nodeType":"Block","src":"17983:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c29","id":6783,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18033:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},"value":"log(address,string,bool)"},{"id":6784,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6773,"src":"18061:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6785,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6775,"src":"18065:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6786,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6777,"src":"18069:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf020fb14f49566c5748de1f455c699a10a4ed1d7cf32f9adb28d22878df1b96","typeString":"literal_string \"log(address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6781,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18009:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6782,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18013:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18009:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18009:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6780,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"17993:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17993:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6789,"nodeType":"ExpressionStatement","src":"17993:80:20"}]},"id":6791,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"17926:3:20","nodeType":"FunctionDefinition","parameters":{"id":6778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6773,"mutability":"mutable","name":"p0","nameLocation":"17938:2:20","nodeType":"VariableDeclaration","scope":6791,"src":"17930:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6772,"name":"address","nodeType":"ElementaryTypeName","src":"17930:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6775,"mutability":"mutable","name":"p1","nameLocation":"17956:2:20","nodeType":"VariableDeclaration","scope":6791,"src":"17942:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6774,"name":"string","nodeType":"ElementaryTypeName","src":"17942:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6777,"mutability":"mutable","name":"p2","nameLocation":"17965:2:20","nodeType":"VariableDeclaration","scope":6791,"src":"17960:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6776,"name":"bool","nodeType":"ElementaryTypeName","src":"17960:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"17929:39:20"},"returnParameters":{"id":6779,"nodeType":"ParameterList","parameters":[],"src":"17983:0:20"},"scope":12860,"src":"17917:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6810,"nodeType":"Block","src":"18155:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c6164647265737329","id":6803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18205:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},"value":"log(address,string,address)"},{"id":6804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6793,"src":"18236:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6795,"src":"18240:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":6806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6797,"src":"18244:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f08744e82875525f1ef885a48453f58e96cac98a5d32bd6d8c38e4977aede231","typeString":"literal_string \"log(address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18181:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18185:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18181:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18181:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18165:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6809,"nodeType":"ExpressionStatement","src":"18165:83:20"}]},"id":6811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18095:3:20","nodeType":"FunctionDefinition","parameters":{"id":6798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6793,"mutability":"mutable","name":"p0","nameLocation":"18107:2:20","nodeType":"VariableDeclaration","scope":6811,"src":"18099:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6792,"name":"address","nodeType":"ElementaryTypeName","src":"18099:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6795,"mutability":"mutable","name":"p1","nameLocation":"18125:2:20","nodeType":"VariableDeclaration","scope":6811,"src":"18111:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6794,"name":"string","nodeType":"ElementaryTypeName","src":"18111:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":6797,"mutability":"mutable","name":"p2","nameLocation":"18137:2:20","nodeType":"VariableDeclaration","scope":6811,"src":"18129:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6796,"name":"address","nodeType":"ElementaryTypeName","src":"18129:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18098:42:20"},"returnParameters":{"id":6799,"nodeType":"ParameterList","parameters":[],"src":"18155:0:20"},"scope":12860,"src":"18086:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6830,"nodeType":"Block","src":"18321:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e7432353629","id":6823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18371:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},"value":"log(address,bool,uint256)"},{"id":6824,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6813,"src":"18400:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6825,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6815,"src":"18404:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6826,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6817,"src":"18408:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c4f99fb8e27f663a71adc9f15ace4bdc959202f3b7faa1c8ca25e5e7e8568f9","typeString":"literal_string \"log(address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6821,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18347:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18351:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18347:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18347:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6820,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18331:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18331:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6829,"nodeType":"ExpressionStatement","src":"18331:81:20"}]},"id":6831,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18270:3:20","nodeType":"FunctionDefinition","parameters":{"id":6818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6813,"mutability":"mutable","name":"p0","nameLocation":"18282:2:20","nodeType":"VariableDeclaration","scope":6831,"src":"18274:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6812,"name":"address","nodeType":"ElementaryTypeName","src":"18274:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6815,"mutability":"mutable","name":"p1","nameLocation":"18291:2:20","nodeType":"VariableDeclaration","scope":6831,"src":"18286:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6814,"name":"bool","nodeType":"ElementaryTypeName","src":"18286:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6817,"mutability":"mutable","name":"p2","nameLocation":"18303:2:20","nodeType":"VariableDeclaration","scope":6831,"src":"18295:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6816,"name":"uint256","nodeType":"ElementaryTypeName","src":"18295:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18273:33:20"},"returnParameters":{"id":6819,"nodeType":"ParameterList","parameters":[],"src":"18321:0:20"},"scope":12860,"src":"18261:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6850,"nodeType":"Block","src":"18491:97:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e6729","id":6843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18541:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},"value":"log(address,bool,string)"},{"id":6844,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6833,"src":"18569:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6845,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6835,"src":"18573:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6846,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6837,"src":"18577:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_212255cc5ff4a2d867f69451c60f51c24e41784276f4ceffe8ec3af322690750","typeString":"literal_string \"log(address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6841,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18517:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18521:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18517:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18517:63:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6840,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18501:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18501:80:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6849,"nodeType":"ExpressionStatement","src":"18501:80:20"}]},"id":6851,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18434:3:20","nodeType":"FunctionDefinition","parameters":{"id":6838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6833,"mutability":"mutable","name":"p0","nameLocation":"18446:2:20","nodeType":"VariableDeclaration","scope":6851,"src":"18438:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6832,"name":"address","nodeType":"ElementaryTypeName","src":"18438:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6835,"mutability":"mutable","name":"p1","nameLocation":"18455:2:20","nodeType":"VariableDeclaration","scope":6851,"src":"18450:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6834,"name":"bool","nodeType":"ElementaryTypeName","src":"18450:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6837,"mutability":"mutable","name":"p2","nameLocation":"18473:2:20","nodeType":"VariableDeclaration","scope":6851,"src":"18459:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6836,"name":"string","nodeType":"ElementaryTypeName","src":"18459:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18437:39:20"},"returnParameters":{"id":6839,"nodeType":"ParameterList","parameters":[],"src":"18491:0:20"},"scope":12860,"src":"18425:163:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6870,"nodeType":"Block","src":"18651:95:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c29","id":6863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18701:24:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},"value":"log(address,bool,bool)"},{"id":6864,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6853,"src":"18727:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6865,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6855,"src":"18731:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6866,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6857,"src":"18735:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb830c92a079b46f3abcb83e519f578cffe7387941b6885067265feec096d279","typeString":"literal_string \"log(address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6861,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18677:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18681:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18677:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18677:61:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6860,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18661:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18661:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6869,"nodeType":"ExpressionStatement","src":"18661:78:20"}]},"id":6871,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18603:3:20","nodeType":"FunctionDefinition","parameters":{"id":6858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6853,"mutability":"mutable","name":"p0","nameLocation":"18615:2:20","nodeType":"VariableDeclaration","scope":6871,"src":"18607:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6852,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6855,"mutability":"mutable","name":"p1","nameLocation":"18624:2:20","nodeType":"VariableDeclaration","scope":6871,"src":"18619:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6854,"name":"bool","nodeType":"ElementaryTypeName","src":"18619:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6857,"mutability":"mutable","name":"p2","nameLocation":"18633:2:20","nodeType":"VariableDeclaration","scope":6871,"src":"18628:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6856,"name":"bool","nodeType":"ElementaryTypeName","src":"18628:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18606:30:20"},"returnParameters":{"id":6859,"nodeType":"ParameterList","parameters":[],"src":"18651:0:20"},"scope":12860,"src":"18594:152:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6890,"nodeType":"Block","src":"18812:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c6164647265737329","id":6883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18862:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},"value":"log(address,bool,address)"},{"id":6884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6873,"src":"18891:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6875,"src":"18895:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":6886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6877,"src":"18899:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f11699ed537119f000a51ba9fbd5bb55b3990a1a718acbe99659bd1bc84dc18d","typeString":"literal_string \"log(address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18838:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18842:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"18838:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18838:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18822:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18822:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6889,"nodeType":"ExpressionStatement","src":"18822:81:20"}]},"id":6891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18761:3:20","nodeType":"FunctionDefinition","parameters":{"id":6878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6873,"mutability":"mutable","name":"p0","nameLocation":"18773:2:20","nodeType":"VariableDeclaration","scope":6891,"src":"18765:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6872,"name":"address","nodeType":"ElementaryTypeName","src":"18765:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6875,"mutability":"mutable","name":"p1","nameLocation":"18782:2:20","nodeType":"VariableDeclaration","scope":6891,"src":"18777:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6874,"name":"bool","nodeType":"ElementaryTypeName","src":"18777:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":6877,"mutability":"mutable","name":"p2","nameLocation":"18794:2:20","nodeType":"VariableDeclaration","scope":6891,"src":"18786:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6876,"name":"address","nodeType":"ElementaryTypeName","src":"18786:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18764:33:20"},"returnParameters":{"id":6879,"nodeType":"ParameterList","parameters":[],"src":"18812:0:20"},"scope":12860,"src":"18752:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6910,"nodeType":"Block","src":"18979:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e7432353629","id":6903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19029:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},"value":"log(address,address,uint256)"},{"id":6904,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6893,"src":"19061:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6905,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6895,"src":"19065:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6906,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6897,"src":"19069:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_17fe6185890336f35fbbd1b2962ba4f7207a4a65eb5b7443a7be8a152af930a4","typeString":"literal_string \"log(address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6901,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19005:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6902,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19009:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19005:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19005:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6900,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"18989:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18989:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6909,"nodeType":"ExpressionStatement","src":"18989:84:20"}]},"id":6911,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"18925:3:20","nodeType":"FunctionDefinition","parameters":{"id":6898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6893,"mutability":"mutable","name":"p0","nameLocation":"18937:2:20","nodeType":"VariableDeclaration","scope":6911,"src":"18929:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6892,"name":"address","nodeType":"ElementaryTypeName","src":"18929:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6895,"mutability":"mutable","name":"p1","nameLocation":"18949:2:20","nodeType":"VariableDeclaration","scope":6911,"src":"18941:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6894,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6897,"mutability":"mutable","name":"p2","nameLocation":"18961:2:20","nodeType":"VariableDeclaration","scope":6911,"src":"18953:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6896,"name":"uint256","nodeType":"ElementaryTypeName","src":"18953:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18928:36:20"},"returnParameters":{"id":6899,"nodeType":"ParameterList","parameters":[],"src":"18979:0:20"},"scope":12860,"src":"18916:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6930,"nodeType":"Block","src":"19155:100:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e6729","id":6923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19205:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},"value":"log(address,address,string)"},{"id":6924,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6913,"src":"19236:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6925,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6915,"src":"19240:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6926,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6917,"src":"19244:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_007150be50a4671a6be318012e9cd2eabb1e1bc8869b45c34abbaa04d81c8eee","typeString":"literal_string \"log(address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":6921,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19181:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6922,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19185:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19181:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19181:66:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6920,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19165:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19165:83:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6929,"nodeType":"ExpressionStatement","src":"19165:83:20"}]},"id":6931,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19095:3:20","nodeType":"FunctionDefinition","parameters":{"id":6918,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6913,"mutability":"mutable","name":"p0","nameLocation":"19107:2:20","nodeType":"VariableDeclaration","scope":6931,"src":"19099:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6912,"name":"address","nodeType":"ElementaryTypeName","src":"19099:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6915,"mutability":"mutable","name":"p1","nameLocation":"19119:2:20","nodeType":"VariableDeclaration","scope":6931,"src":"19111:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6914,"name":"address","nodeType":"ElementaryTypeName","src":"19111:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6917,"mutability":"mutable","name":"p2","nameLocation":"19137:2:20","nodeType":"VariableDeclaration","scope":6931,"src":"19123:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6916,"name":"string","nodeType":"ElementaryTypeName","src":"19123:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19098:42:20"},"returnParameters":{"id":6919,"nodeType":"ParameterList","parameters":[],"src":"19155:0:20"},"scope":12860,"src":"19086:169:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6950,"nodeType":"Block","src":"19321:98:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c29","id":6943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19371:27:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},"value":"log(address,address,bool)"},{"id":6944,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6933,"src":"19400:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6945,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6935,"src":"19404:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6946,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6937,"src":"19408:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f2a6628622808c8bbef4f3e513ab11e708a8f5073988f2f7988e111aa26586dc","typeString":"literal_string \"log(address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":6941,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19347:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6942,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19351:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19347:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19347:64:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6940,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19331:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19331:81:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6949,"nodeType":"ExpressionStatement","src":"19331:81:20"}]},"id":6951,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19270:3:20","nodeType":"FunctionDefinition","parameters":{"id":6938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6933,"mutability":"mutable","name":"p0","nameLocation":"19282:2:20","nodeType":"VariableDeclaration","scope":6951,"src":"19274:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6932,"name":"address","nodeType":"ElementaryTypeName","src":"19274:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6935,"mutability":"mutable","name":"p1","nameLocation":"19294:2:20","nodeType":"VariableDeclaration","scope":6951,"src":"19286:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6934,"name":"address","nodeType":"ElementaryTypeName","src":"19286:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6937,"mutability":"mutable","name":"p2","nameLocation":"19303:2:20","nodeType":"VariableDeclaration","scope":6951,"src":"19298:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6936,"name":"bool","nodeType":"ElementaryTypeName","src":"19298:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"19273:33:20"},"returnParameters":{"id":6939,"nodeType":"ParameterList","parameters":[],"src":"19321:0:20"},"scope":12860,"src":"19261:158:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6970,"nodeType":"Block","src":"19488:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c6164647265737329","id":6963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19538:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},"value":"log(address,address,address)"},{"id":6964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6953,"src":"19570:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6955,"src":"19574:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6957,"src":"19578:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_018c84c25fb680b5bcd4e1ab1848682497c9dd3b635564a91c36ce3d1414c830","typeString":"literal_string \"log(address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19514:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19518:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19514:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19514:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19498:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19498:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6969,"nodeType":"ExpressionStatement","src":"19498:84:20"}]},"id":6971,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19434:3:20","nodeType":"FunctionDefinition","parameters":{"id":6958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6953,"mutability":"mutable","name":"p0","nameLocation":"19446:2:20","nodeType":"VariableDeclaration","scope":6971,"src":"19438:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6952,"name":"address","nodeType":"ElementaryTypeName","src":"19438:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6955,"mutability":"mutable","name":"p1","nameLocation":"19458:2:20","nodeType":"VariableDeclaration","scope":6971,"src":"19450:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6954,"name":"address","nodeType":"ElementaryTypeName","src":"19450:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6957,"mutability":"mutable","name":"p2","nameLocation":"19470:2:20","nodeType":"VariableDeclaration","scope":6971,"src":"19462:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6956,"name":"address","nodeType":"ElementaryTypeName","src":"19462:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19437:36:20"},"returnParameters":{"id":6959,"nodeType":"ParameterList","parameters":[],"src":"19488:0:20"},"scope":12860,"src":"19425:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":6993,"nodeType":"Block","src":"19670:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c75696e7432353629","id":6985,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19720:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},"value":"log(uint256,uint256,uint256,uint256)"},{"id":6986,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6973,"src":"19760:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6987,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6975,"src":"19764:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6988,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6977,"src":"19768:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":6989,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"19772:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_193fb8009d4d1e3c22da0dd831b1e3aed72b8cabd1ebf3967b4ab3c2bbcf1c4f","typeString":"literal_string \"log(uint256,uint256,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":6983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19696:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19700:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19696:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19696:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":6982,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19680:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":6991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19680:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6992,"nodeType":"ExpressionStatement","src":"19680:96:20"}]},"id":6994,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19604:3:20","nodeType":"FunctionDefinition","parameters":{"id":6980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6973,"mutability":"mutable","name":"p0","nameLocation":"19616:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19608:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6972,"name":"uint256","nodeType":"ElementaryTypeName","src":"19608:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6975,"mutability":"mutable","name":"p1","nameLocation":"19628:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19620:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6974,"name":"uint256","nodeType":"ElementaryTypeName","src":"19620:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6977,"mutability":"mutable","name":"p2","nameLocation":"19640:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19632:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6976,"name":"uint256","nodeType":"ElementaryTypeName","src":"19632:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6979,"mutability":"mutable","name":"p3","nameLocation":"19652:2:20","nodeType":"VariableDeclaration","scope":6994,"src":"19644:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6978,"name":"uint256","nodeType":"ElementaryTypeName","src":"19644:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19607:48:20"},"returnParameters":{"id":6981,"nodeType":"ParameterList","parameters":[],"src":"19670:0:20"},"scope":12860,"src":"19595:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7016,"nodeType":"Block","src":"19870:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c737472696e6729","id":7008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19920:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},"value":"log(uint256,uint256,uint256,string)"},{"id":7009,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6996,"src":"19959:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7010,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6998,"src":"19963:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7011,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7000,"src":"19967:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7012,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7002,"src":"19971:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_59cfcbe3e387f57023dcccd8733484dcb5a23a41a25c4015c01a4e8d3520c4ef","typeString":"literal_string \"log(uint256,uint256,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7006,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19896:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19900:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"19896:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19896:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7005,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"19880:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19880:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7015,"nodeType":"ExpressionStatement","src":"19880:95:20"}]},"id":7017,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19798:3:20","nodeType":"FunctionDefinition","parameters":{"id":7003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6996,"mutability":"mutable","name":"p0","nameLocation":"19810:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19802:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6995,"name":"uint256","nodeType":"ElementaryTypeName","src":"19802:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":6998,"mutability":"mutable","name":"p1","nameLocation":"19822:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19814:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6997,"name":"uint256","nodeType":"ElementaryTypeName","src":"19814:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7000,"mutability":"mutable","name":"p2","nameLocation":"19834:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19826:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6999,"name":"uint256","nodeType":"ElementaryTypeName","src":"19826:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7002,"mutability":"mutable","name":"p3","nameLocation":"19852:2:20","nodeType":"VariableDeclaration","scope":7017,"src":"19838:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7001,"name":"string","nodeType":"ElementaryTypeName","src":"19838:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"19801:54:20"},"returnParameters":{"id":7004,"nodeType":"ParameterList","parameters":[],"src":"19870:0:20"},"scope":12860,"src":"19789:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7039,"nodeType":"Block","src":"20060:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c626f6f6c29","id":7031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20110:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},"value":"log(uint256,uint256,uint256,bool)"},{"id":7032,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7019,"src":"20147:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7033,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7021,"src":"20151:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7034,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7023,"src":"20155:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7035,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7025,"src":"20159:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c598d18505e9c7404a061484d6144251d0ef342167a57ace85723d498abac8e3","typeString":"literal_string \"log(uint256,uint256,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7029,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20086:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7030,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20090:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20086:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20086:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7028,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20070:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20070:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7038,"nodeType":"ExpressionStatement","src":"20070:93:20"}]},"id":7040,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"19997:3:20","nodeType":"FunctionDefinition","parameters":{"id":7026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7019,"mutability":"mutable","name":"p0","nameLocation":"20009:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20001:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7018,"name":"uint256","nodeType":"ElementaryTypeName","src":"20001:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7021,"mutability":"mutable","name":"p1","nameLocation":"20021:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20013:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7020,"name":"uint256","nodeType":"ElementaryTypeName","src":"20013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7023,"mutability":"mutable","name":"p2","nameLocation":"20033:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20025:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7022,"name":"uint256","nodeType":"ElementaryTypeName","src":"20025:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7025,"mutability":"mutable","name":"p3","nameLocation":"20042:2:20","nodeType":"VariableDeclaration","scope":7040,"src":"20037:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7024,"name":"bool","nodeType":"ElementaryTypeName","src":"20037:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20000:45:20"},"returnParameters":{"id":7027,"nodeType":"ParameterList","parameters":[],"src":"20060:0:20"},"scope":12860,"src":"19988:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7062,"nodeType":"Block","src":"20251:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c75696e743235362c6164647265737329","id":7054,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20301:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},"value":"log(uint256,uint256,uint256,address)"},{"id":7055,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7042,"src":"20341:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7056,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7044,"src":"20345:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7057,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7046,"src":"20349:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7058,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7048,"src":"20353:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fa8185afaca325eb459625959e5610b99e97bbcba8d5834d7632610b4f237c79","typeString":"literal_string \"log(uint256,uint256,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7052,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20277:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7053,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20281:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20277:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20277:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7051,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20261:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20261:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7061,"nodeType":"ExpressionStatement","src":"20261:96:20"}]},"id":7063,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20185:3:20","nodeType":"FunctionDefinition","parameters":{"id":7049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7042,"mutability":"mutable","name":"p0","nameLocation":"20197:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20189:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7041,"name":"uint256","nodeType":"ElementaryTypeName","src":"20189:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7044,"mutability":"mutable","name":"p1","nameLocation":"20209:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20201:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7043,"name":"uint256","nodeType":"ElementaryTypeName","src":"20201:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7046,"mutability":"mutable","name":"p2","nameLocation":"20221:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20213:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7045,"name":"uint256","nodeType":"ElementaryTypeName","src":"20213:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7048,"mutability":"mutable","name":"p3","nameLocation":"20233:2:20","nodeType":"VariableDeclaration","scope":7063,"src":"20225:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7047,"name":"address","nodeType":"ElementaryTypeName","src":"20225:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20188:48:20"},"returnParameters":{"id":7050,"nodeType":"ParameterList","parameters":[],"src":"20251:0:20"},"scope":12860,"src":"20176:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7085,"nodeType":"Block","src":"20451:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c75696e7432353629","id":7077,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20501:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},"value":"log(uint256,uint256,string,uint256)"},{"id":7078,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"20540:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7079,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"20544:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7080,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"20548:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7081,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"20552:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5da297eb5acf47b1a9c0089c080d654cc07f2a8c9aa94fc68af26a6405cde114","typeString":"literal_string \"log(uint256,uint256,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7075,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20477:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20481:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20477:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20477:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7074,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20461:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20461:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7084,"nodeType":"ExpressionStatement","src":"20461:95:20"}]},"id":7086,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20379:3:20","nodeType":"FunctionDefinition","parameters":{"id":7072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7065,"mutability":"mutable","name":"p0","nameLocation":"20391:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20383:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7064,"name":"uint256","nodeType":"ElementaryTypeName","src":"20383:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7067,"mutability":"mutable","name":"p1","nameLocation":"20403:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20395:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7066,"name":"uint256","nodeType":"ElementaryTypeName","src":"20395:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7069,"mutability":"mutable","name":"p2","nameLocation":"20421:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20407:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7068,"name":"string","nodeType":"ElementaryTypeName","src":"20407:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7071,"mutability":"mutable","name":"p3","nameLocation":"20433:2:20","nodeType":"VariableDeclaration","scope":7086,"src":"20425:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7070,"name":"uint256","nodeType":"ElementaryTypeName","src":"20425:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20382:54:20"},"returnParameters":{"id":7073,"nodeType":"ParameterList","parameters":[],"src":"20451:0:20"},"scope":12860,"src":"20370:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7108,"nodeType":"Block","src":"20656:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c737472696e6729","id":7100,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20706:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},"value":"log(uint256,uint256,string,string)"},{"id":7101,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7088,"src":"20744:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7102,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7090,"src":"20748:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7103,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7092,"src":"20752:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7104,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7094,"src":"20756:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_27d8afd2525217fff7302dbf79acc81edc09cb300d94f2503a4fb8a8115910e0","typeString":"literal_string \"log(uint256,uint256,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7098,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20682:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7099,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20686:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20682:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20682:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7097,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20666:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20666:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7107,"nodeType":"ExpressionStatement","src":"20666:94:20"}]},"id":7109,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20578:3:20","nodeType":"FunctionDefinition","parameters":{"id":7095,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7088,"mutability":"mutable","name":"p0","nameLocation":"20590:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20582:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7087,"name":"uint256","nodeType":"ElementaryTypeName","src":"20582:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7090,"mutability":"mutable","name":"p1","nameLocation":"20602:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20594:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7089,"name":"uint256","nodeType":"ElementaryTypeName","src":"20594:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7092,"mutability":"mutable","name":"p2","nameLocation":"20620:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20606:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7091,"name":"string","nodeType":"ElementaryTypeName","src":"20606:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7094,"mutability":"mutable","name":"p3","nameLocation":"20638:2:20","nodeType":"VariableDeclaration","scope":7109,"src":"20624:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7093,"name":"string","nodeType":"ElementaryTypeName","src":"20624:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"20581:60:20"},"returnParameters":{"id":7096,"nodeType":"ParameterList","parameters":[],"src":"20656:0:20"},"scope":12860,"src":"20569:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7131,"nodeType":"Block","src":"20851:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c626f6f6c29","id":7123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20901:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},"value":"log(uint256,uint256,string,bool)"},{"id":7124,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7111,"src":"20937:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7125,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7113,"src":"20941:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7126,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7115,"src":"20945:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7127,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7117,"src":"20949:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7af6ab2578caf14043420c6b292dcb787d09d31b13365d7673f201f9b2e310c9","typeString":"literal_string \"log(uint256,uint256,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7121,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"20877:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20881:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"20877:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20877:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7120,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"20861:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20861:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7130,"nodeType":"ExpressionStatement","src":"20861:92:20"}]},"id":7132,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20782:3:20","nodeType":"FunctionDefinition","parameters":{"id":7118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7111,"mutability":"mutable","name":"p0","nameLocation":"20794:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20786:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7110,"name":"uint256","nodeType":"ElementaryTypeName","src":"20786:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7113,"mutability":"mutable","name":"p1","nameLocation":"20806:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20798:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7112,"name":"uint256","nodeType":"ElementaryTypeName","src":"20798:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7115,"mutability":"mutable","name":"p2","nameLocation":"20824:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20810:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7114,"name":"string","nodeType":"ElementaryTypeName","src":"20810:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7117,"mutability":"mutable","name":"p3","nameLocation":"20833:2:20","nodeType":"VariableDeclaration","scope":7132,"src":"20828:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7116,"name":"bool","nodeType":"ElementaryTypeName","src":"20828:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20785:51:20"},"returnParameters":{"id":7119,"nodeType":"ParameterList","parameters":[],"src":"20851:0:20"},"scope":12860,"src":"20773:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7154,"nodeType":"Block","src":"21047:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c737472696e672c6164647265737329","id":7146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21097:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},"value":"log(uint256,uint256,string,address)"},{"id":7147,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7134,"src":"21136:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7148,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7136,"src":"21140:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7149,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7138,"src":"21144:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7150,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7140,"src":"21148:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_42d21db701843c064ab7fb7cddd0cda130fcc29c7289dd90519dfea1322b1a53","typeString":"literal_string \"log(uint256,uint256,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7144,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21073:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21077:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21073:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21073:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7143,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21057:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21057:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7153,"nodeType":"ExpressionStatement","src":"21057:95:20"}]},"id":7155,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"20975:3:20","nodeType":"FunctionDefinition","parameters":{"id":7141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7134,"mutability":"mutable","name":"p0","nameLocation":"20987:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"20979:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7133,"name":"uint256","nodeType":"ElementaryTypeName","src":"20979:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7136,"mutability":"mutable","name":"p1","nameLocation":"20999:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"20991:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7135,"name":"uint256","nodeType":"ElementaryTypeName","src":"20991:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7138,"mutability":"mutable","name":"p2","nameLocation":"21017:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"21003:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7137,"name":"string","nodeType":"ElementaryTypeName","src":"21003:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7140,"mutability":"mutable","name":"p3","nameLocation":"21029:2:20","nodeType":"VariableDeclaration","scope":7155,"src":"21021:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7139,"name":"address","nodeType":"ElementaryTypeName","src":"21021:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20978:54:20"},"returnParameters":{"id":7142,"nodeType":"ParameterList","parameters":[],"src":"21047:0:20"},"scope":12860,"src":"20966:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7177,"nodeType":"Block","src":"21237:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c75696e7432353629","id":7169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21287:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},"value":"log(uint256,uint256,bool,uint256)"},{"id":7170,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7157,"src":"21324:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7171,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7159,"src":"21328:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7172,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"21332:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7173,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7163,"src":"21336:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb7f6fd2c2005d3f08b2528135265cced621d1abf62716b05a9b62bc732577fd","typeString":"literal_string \"log(uint256,uint256,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7167,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21263:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7168,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21267:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21263:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21263:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7166,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21247:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21247:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7176,"nodeType":"ExpressionStatement","src":"21247:93:20"}]},"id":7178,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21174:3:20","nodeType":"FunctionDefinition","parameters":{"id":7164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7157,"mutability":"mutable","name":"p0","nameLocation":"21186:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21178:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7156,"name":"uint256","nodeType":"ElementaryTypeName","src":"21178:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7159,"mutability":"mutable","name":"p1","nameLocation":"21198:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21190:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7158,"name":"uint256","nodeType":"ElementaryTypeName","src":"21190:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7161,"mutability":"mutable","name":"p2","nameLocation":"21207:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21202:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7160,"name":"bool","nodeType":"ElementaryTypeName","src":"21202:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7163,"mutability":"mutable","name":"p3","nameLocation":"21219:2:20","nodeType":"VariableDeclaration","scope":7178,"src":"21211:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"21211:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21177:45:20"},"returnParameters":{"id":7165,"nodeType":"ParameterList","parameters":[],"src":"21237:0:20"},"scope":12860,"src":"21165:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7200,"nodeType":"Block","src":"21431:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c737472696e6729","id":7192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21481:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},"value":"log(uint256,uint256,bool,string)"},{"id":7193,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"21517:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7194,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"21521:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7195,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"21525:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7196,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"21529:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5b4fc99467445b3de47079da2d48b3031bb8d3adcbee781cbdca55596f1414a","typeString":"literal_string \"log(uint256,uint256,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7190,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21457:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7191,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21461:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21457:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21457:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7189,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21441:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21441:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7199,"nodeType":"ExpressionStatement","src":"21441:92:20"}]},"id":7201,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21362:3:20","nodeType":"FunctionDefinition","parameters":{"id":7187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7180,"mutability":"mutable","name":"p0","nameLocation":"21374:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21366:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7179,"name":"uint256","nodeType":"ElementaryTypeName","src":"21366:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7182,"mutability":"mutable","name":"p1","nameLocation":"21386:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21378:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7181,"name":"uint256","nodeType":"ElementaryTypeName","src":"21378:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7184,"mutability":"mutable","name":"p2","nameLocation":"21395:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21390:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7183,"name":"bool","nodeType":"ElementaryTypeName","src":"21390:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7186,"mutability":"mutable","name":"p3","nameLocation":"21413:2:20","nodeType":"VariableDeclaration","scope":7201,"src":"21399:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7185,"name":"string","nodeType":"ElementaryTypeName","src":"21399:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"21365:51:20"},"returnParameters":{"id":7188,"nodeType":"ParameterList","parameters":[],"src":"21431:0:20"},"scope":12860,"src":"21353:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7223,"nodeType":"Block","src":"21615:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c626f6f6c29","id":7215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21665:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},"value":"log(uint256,uint256,bool,bool)"},{"id":7216,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"21699:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7217,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7205,"src":"21703:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7218,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7207,"src":"21707:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7219,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7209,"src":"21711:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ab085ae680de5118cde80cb5e8cb1f7383786238f1394e82b7ab82553a0dd7fe","typeString":"literal_string \"log(uint256,uint256,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7213,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21641:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7214,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21645:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21641:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21641:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7212,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21625:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21625:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7222,"nodeType":"ExpressionStatement","src":"21625:90:20"}]},"id":7224,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21555:3:20","nodeType":"FunctionDefinition","parameters":{"id":7210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7203,"mutability":"mutable","name":"p0","nameLocation":"21567:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21559:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7202,"name":"uint256","nodeType":"ElementaryTypeName","src":"21559:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7205,"mutability":"mutable","name":"p1","nameLocation":"21579:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21571:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7204,"name":"uint256","nodeType":"ElementaryTypeName","src":"21571:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7207,"mutability":"mutable","name":"p2","nameLocation":"21588:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21583:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7206,"name":"bool","nodeType":"ElementaryTypeName","src":"21583:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7209,"mutability":"mutable","name":"p3","nameLocation":"21597:2:20","nodeType":"VariableDeclaration","scope":7224,"src":"21592:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7208,"name":"bool","nodeType":"ElementaryTypeName","src":"21592:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21558:42:20"},"returnParameters":{"id":7211,"nodeType":"ParameterList","parameters":[],"src":"21615:0:20"},"scope":12860,"src":"21546:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7246,"nodeType":"Block","src":"21800:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c626f6f6c2c6164647265737329","id":7238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21850:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},"value":"log(uint256,uint256,bool,address)"},{"id":7239,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7226,"src":"21887:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7240,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7228,"src":"21891:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7241,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7230,"src":"21895:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7242,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7232,"src":"21899:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9a816a83f59c7e2fc96bb179b1fa8fd5307277d58bad9d6b835a280d4474fc1b","typeString":"literal_string \"log(uint256,uint256,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"21826:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21830:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"21826:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21826:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7235,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"21810:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21810:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7245,"nodeType":"ExpressionStatement","src":"21810:93:20"}]},"id":7247,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21737:3:20","nodeType":"FunctionDefinition","parameters":{"id":7233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7226,"mutability":"mutable","name":"p0","nameLocation":"21749:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21741:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7225,"name":"uint256","nodeType":"ElementaryTypeName","src":"21741:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7228,"mutability":"mutable","name":"p1","nameLocation":"21761:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21753:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7227,"name":"uint256","nodeType":"ElementaryTypeName","src":"21753:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7230,"mutability":"mutable","name":"p2","nameLocation":"21770:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21765:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7229,"name":"bool","nodeType":"ElementaryTypeName","src":"21765:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7232,"mutability":"mutable","name":"p3","nameLocation":"21782:2:20","nodeType":"VariableDeclaration","scope":7247,"src":"21774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7231,"name":"address","nodeType":"ElementaryTypeName","src":"21774:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21740:45:20"},"returnParameters":{"id":7234,"nodeType":"ParameterList","parameters":[],"src":"21800:0:20"},"scope":12860,"src":"21728:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7269,"nodeType":"Block","src":"21991:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c75696e7432353629","id":7261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22041:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},"value":"log(uint256,uint256,address,uint256)"},{"id":7262,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7249,"src":"22081:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7263,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7251,"src":"22085:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7264,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7253,"src":"22089:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7265,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7255,"src":"22093:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88f6e4b2e9fd1797748b31e8b1564d27784c7a0b5de7a75df225524205baab36","typeString":"literal_string \"log(uint256,uint256,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7259,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22017:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22021:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22017:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22017:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7258,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22001:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22001:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7268,"nodeType":"ExpressionStatement","src":"22001:96:20"}]},"id":7270,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"21925:3:20","nodeType":"FunctionDefinition","parameters":{"id":7256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7249,"mutability":"mutable","name":"p0","nameLocation":"21937:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21929:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7248,"name":"uint256","nodeType":"ElementaryTypeName","src":"21929:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7251,"mutability":"mutable","name":"p1","nameLocation":"21949:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21941:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7250,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7253,"mutability":"mutable","name":"p2","nameLocation":"21961:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21953:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7252,"name":"address","nodeType":"ElementaryTypeName","src":"21953:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7255,"mutability":"mutable","name":"p3","nameLocation":"21973:2:20","nodeType":"VariableDeclaration","scope":7270,"src":"21965:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7254,"name":"uint256","nodeType":"ElementaryTypeName","src":"21965:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21928:48:20"},"returnParameters":{"id":7257,"nodeType":"ParameterList","parameters":[],"src":"21991:0:20"},"scope":12860,"src":"21916:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7292,"nodeType":"Block","src":"22191:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c737472696e6729","id":7284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22241:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},"value":"log(uint256,uint256,address,string)"},{"id":7285,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7272,"src":"22280:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7286,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7274,"src":"22284:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7287,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7276,"src":"22288:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7288,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7278,"src":"22292:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6cde40b8d4f88da65710732f1ce432c86447f486bf713e5763c0ab174df12f40","typeString":"literal_string \"log(uint256,uint256,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7282,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22217:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22221:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22217:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22217:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7281,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22201:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22201:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7291,"nodeType":"ExpressionStatement","src":"22201:95:20"}]},"id":7293,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22119:3:20","nodeType":"FunctionDefinition","parameters":{"id":7279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7272,"mutability":"mutable","name":"p0","nameLocation":"22131:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22123:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7271,"name":"uint256","nodeType":"ElementaryTypeName","src":"22123:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7274,"mutability":"mutable","name":"p1","nameLocation":"22143:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22135:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7273,"name":"uint256","nodeType":"ElementaryTypeName","src":"22135:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7276,"mutability":"mutable","name":"p2","nameLocation":"22155:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22147:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7275,"name":"address","nodeType":"ElementaryTypeName","src":"22147:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7278,"mutability":"mutable","name":"p3","nameLocation":"22173:2:20","nodeType":"VariableDeclaration","scope":7293,"src":"22159:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7277,"name":"string","nodeType":"ElementaryTypeName","src":"22159:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22122:54:20"},"returnParameters":{"id":7280,"nodeType":"ParameterList","parameters":[],"src":"22191:0:20"},"scope":12860,"src":"22110:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7315,"nodeType":"Block","src":"22381:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c626f6f6c29","id":7307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22431:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},"value":"log(uint256,uint256,address,bool)"},{"id":7308,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7295,"src":"22468:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7309,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7297,"src":"22472:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7310,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7299,"src":"22476:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7311,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7301,"src":"22480:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15cac47617578377cd39f9593e7bb3ffa0e284336b9741dcc2c4151a93e1b201","typeString":"literal_string \"log(uint256,uint256,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7305,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22407:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22411:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22407:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22407:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7304,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22391:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22391:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7314,"nodeType":"ExpressionStatement","src":"22391:93:20"}]},"id":7316,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22318:3:20","nodeType":"FunctionDefinition","parameters":{"id":7302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7295,"mutability":"mutable","name":"p0","nameLocation":"22330:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22322:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7294,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7297,"mutability":"mutable","name":"p1","nameLocation":"22342:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22334:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7296,"name":"uint256","nodeType":"ElementaryTypeName","src":"22334:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7299,"mutability":"mutable","name":"p2","nameLocation":"22354:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22346:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7298,"name":"address","nodeType":"ElementaryTypeName","src":"22346:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7301,"mutability":"mutable","name":"p3","nameLocation":"22363:2:20","nodeType":"VariableDeclaration","scope":7316,"src":"22358:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7300,"name":"bool","nodeType":"ElementaryTypeName","src":"22358:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22321:45:20"},"returnParameters":{"id":7303,"nodeType":"ParameterList","parameters":[],"src":"22381:0:20"},"scope":12860,"src":"22309:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7338,"nodeType":"Block","src":"22572:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c75696e743235362c616464726573732c6164647265737329","id":7330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22622:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},"value":"log(uint256,uint256,address,address)"},{"id":7331,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7318,"src":"22662:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7332,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7320,"src":"22666:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7333,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7322,"src":"22670:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7334,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7324,"src":"22674:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_56a5d1b1d2f0613b93371fc2b5ec91f6c2ba1375e1e4ff59b5061b56ca88e88d","typeString":"literal_string \"log(uint256,uint256,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7328,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22598:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22602:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22598:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22598:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7327,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22582:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22582:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7337,"nodeType":"ExpressionStatement","src":"22582:96:20"}]},"id":7339,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22506:3:20","nodeType":"FunctionDefinition","parameters":{"id":7325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7318,"mutability":"mutable","name":"p0","nameLocation":"22518:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22510:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7317,"name":"uint256","nodeType":"ElementaryTypeName","src":"22510:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7320,"mutability":"mutable","name":"p1","nameLocation":"22530:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22522:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7319,"name":"uint256","nodeType":"ElementaryTypeName","src":"22522:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7322,"mutability":"mutable","name":"p2","nameLocation":"22542:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22534:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7321,"name":"address","nodeType":"ElementaryTypeName","src":"22534:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7324,"mutability":"mutable","name":"p3","nameLocation":"22554:2:20","nodeType":"VariableDeclaration","scope":7339,"src":"22546:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7323,"name":"address","nodeType":"ElementaryTypeName","src":"22546:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22509:48:20"},"returnParameters":{"id":7326,"nodeType":"ParameterList","parameters":[],"src":"22572:0:20"},"scope":12860,"src":"22497:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7361,"nodeType":"Block","src":"22772:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c75696e7432353629","id":7353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"22822:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},"value":"log(uint256,string,uint256,uint256)"},{"id":7354,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7341,"src":"22861:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7355,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7343,"src":"22865:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7356,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7345,"src":"22869:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7357,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7347,"src":"22873:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82c25b74e3ddb6ea40e867e0a41af8848bdc6a88fd5e365497c46917573fd66f","typeString":"literal_string \"log(uint256,string,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7351,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"22798:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"22802:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"22798:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22798:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7350,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22782:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22782:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7360,"nodeType":"ExpressionStatement","src":"22782:95:20"}]},"id":7362,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22700:3:20","nodeType":"FunctionDefinition","parameters":{"id":7348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7341,"mutability":"mutable","name":"p0","nameLocation":"22712:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22704:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7340,"name":"uint256","nodeType":"ElementaryTypeName","src":"22704:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7343,"mutability":"mutable","name":"p1","nameLocation":"22730:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22716:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7342,"name":"string","nodeType":"ElementaryTypeName","src":"22716:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7345,"mutability":"mutable","name":"p2","nameLocation":"22742:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22734:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7344,"name":"uint256","nodeType":"ElementaryTypeName","src":"22734:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7347,"mutability":"mutable","name":"p3","nameLocation":"22754:2:20","nodeType":"VariableDeclaration","scope":7362,"src":"22746:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7346,"name":"uint256","nodeType":"ElementaryTypeName","src":"22746:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22703:54:20"},"returnParameters":{"id":7349,"nodeType":"ParameterList","parameters":[],"src":"22772:0:20"},"scope":12860,"src":"22691:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7384,"nodeType":"Block","src":"22977:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c737472696e6729","id":7376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23027:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},"value":"log(uint256,string,uint256,string)"},{"id":7377,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7364,"src":"23065:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7378,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7366,"src":"23069:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7379,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7368,"src":"23073:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7380,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7370,"src":"23077:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7b914cad3c94167dcd4b5ef970076918e96b3894a20503b7d3f9648bea8aace","typeString":"literal_string \"log(uint256,string,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7374,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23003:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23007:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23003:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23003:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7373,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"22987:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22987:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7383,"nodeType":"ExpressionStatement","src":"22987:94:20"}]},"id":7385,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"22899:3:20","nodeType":"FunctionDefinition","parameters":{"id":7371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7364,"mutability":"mutable","name":"p0","nameLocation":"22911:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22903:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7363,"name":"uint256","nodeType":"ElementaryTypeName","src":"22903:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7366,"mutability":"mutable","name":"p1","nameLocation":"22929:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22915:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7365,"name":"string","nodeType":"ElementaryTypeName","src":"22915:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7368,"mutability":"mutable","name":"p2","nameLocation":"22941:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22933:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7367,"name":"uint256","nodeType":"ElementaryTypeName","src":"22933:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7370,"mutability":"mutable","name":"p3","nameLocation":"22959:2:20","nodeType":"VariableDeclaration","scope":7385,"src":"22945:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7369,"name":"string","nodeType":"ElementaryTypeName","src":"22945:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"22902:60:20"},"returnParameters":{"id":7372,"nodeType":"ParameterList","parameters":[],"src":"22977:0:20"},"scope":12860,"src":"22890:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7407,"nodeType":"Block","src":"23172:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c626f6f6c29","id":7399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23222:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},"value":"log(uint256,string,uint256,bool)"},{"id":7400,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7387,"src":"23258:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7401,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7389,"src":"23262:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7402,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7391,"src":"23266:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7403,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7393,"src":"23270:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_691a8f74cbf1a313fd1bdfd5dda19feaf4f9deac56f7ca7c4fa6386e5382a03c","typeString":"literal_string \"log(uint256,string,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7397,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23198:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23202:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23198:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23198:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7396,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23182:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23182:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7406,"nodeType":"ExpressionStatement","src":"23182:92:20"}]},"id":7408,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23103:3:20","nodeType":"FunctionDefinition","parameters":{"id":7394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7387,"mutability":"mutable","name":"p0","nameLocation":"23115:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23107:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7386,"name":"uint256","nodeType":"ElementaryTypeName","src":"23107:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7389,"mutability":"mutable","name":"p1","nameLocation":"23133:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23119:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7388,"name":"string","nodeType":"ElementaryTypeName","src":"23119:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7391,"mutability":"mutable","name":"p2","nameLocation":"23145:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23137:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7390,"name":"uint256","nodeType":"ElementaryTypeName","src":"23137:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7393,"mutability":"mutable","name":"p3","nameLocation":"23154:2:20","nodeType":"VariableDeclaration","scope":7408,"src":"23149:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7392,"name":"bool","nodeType":"ElementaryTypeName","src":"23149:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23106:51:20"},"returnParameters":{"id":7395,"nodeType":"ParameterList","parameters":[],"src":"23172:0:20"},"scope":12860,"src":"23094:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7430,"nodeType":"Block","src":"23368:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c75696e743235362c6164647265737329","id":7422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23418:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},"value":"log(uint256,string,uint256,address)"},{"id":7423,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7410,"src":"23457:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7424,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7412,"src":"23461:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7425,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7414,"src":"23465:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7426,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7416,"src":"23469:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2279b4b3c26cbcd4374acce75e4c447a59a65883d849a72eaa051b3a07ec08","typeString":"literal_string \"log(uint256,string,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7420,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23394:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23398:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23394:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23394:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7419,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23378:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23378:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7429,"nodeType":"ExpressionStatement","src":"23378:95:20"}]},"id":7431,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23296:3:20","nodeType":"FunctionDefinition","parameters":{"id":7417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7410,"mutability":"mutable","name":"p0","nameLocation":"23308:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23300:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7409,"name":"uint256","nodeType":"ElementaryTypeName","src":"23300:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7412,"mutability":"mutable","name":"p1","nameLocation":"23326:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23312:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7411,"name":"string","nodeType":"ElementaryTypeName","src":"23312:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7414,"mutability":"mutable","name":"p2","nameLocation":"23338:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23330:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7413,"name":"uint256","nodeType":"ElementaryTypeName","src":"23330:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7416,"mutability":"mutable","name":"p3","nameLocation":"23350:2:20","nodeType":"VariableDeclaration","scope":7431,"src":"23342:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7415,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23299:54:20"},"returnParameters":{"id":7418,"nodeType":"ParameterList","parameters":[],"src":"23368:0:20"},"scope":12860,"src":"23287:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7453,"nodeType":"Block","src":"23573:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c75696e7432353629","id":7445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23623:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},"value":"log(uint256,string,string,uint256)"},{"id":7446,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7433,"src":"23661:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7447,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7435,"src":"23665:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7448,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7437,"src":"23669:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7449,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7439,"src":"23673:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b028c9bd0105e32bab3e2b1b4678f4cd49b1f267c4fcb1899043ad16b67c3dd1","typeString":"literal_string \"log(uint256,string,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7443,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23599:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7444,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23603:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23599:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23599:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7442,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23583:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23583:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7452,"nodeType":"ExpressionStatement","src":"23583:94:20"}]},"id":7454,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23495:3:20","nodeType":"FunctionDefinition","parameters":{"id":7440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7433,"mutability":"mutable","name":"p0","nameLocation":"23507:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23499:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7432,"name":"uint256","nodeType":"ElementaryTypeName","src":"23499:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7435,"mutability":"mutable","name":"p1","nameLocation":"23525:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23511:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7434,"name":"string","nodeType":"ElementaryTypeName","src":"23511:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7437,"mutability":"mutable","name":"p2","nameLocation":"23543:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23529:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7436,"name":"string","nodeType":"ElementaryTypeName","src":"23529:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7439,"mutability":"mutable","name":"p3","nameLocation":"23555:2:20","nodeType":"VariableDeclaration","scope":7454,"src":"23547:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7438,"name":"uint256","nodeType":"ElementaryTypeName","src":"23547:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23498:60:20"},"returnParameters":{"id":7441,"nodeType":"ParameterList","parameters":[],"src":"23573:0:20"},"scope":12860,"src":"23486:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7476,"nodeType":"Block","src":"23783:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c737472696e6729","id":7468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23833:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},"value":"log(uint256,string,string,string)"},{"id":7469,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7456,"src":"23870:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7470,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7458,"src":"23874:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7471,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7460,"src":"23878:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7472,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7462,"src":"23882:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21ad06836085541851abea445814b5a1baf9d3be52c1169a6570c83010dbea5a","typeString":"literal_string \"log(uint256,string,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7466,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23809:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23813:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"23809:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23809:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7465,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23793:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23793:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7475,"nodeType":"ExpressionStatement","src":"23793:93:20"}]},"id":7477,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23699:3:20","nodeType":"FunctionDefinition","parameters":{"id":7463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7456,"mutability":"mutable","name":"p0","nameLocation":"23711:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23703:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7455,"name":"uint256","nodeType":"ElementaryTypeName","src":"23703:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7458,"mutability":"mutable","name":"p1","nameLocation":"23729:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23715:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7457,"name":"string","nodeType":"ElementaryTypeName","src":"23715:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7460,"mutability":"mutable","name":"p2","nameLocation":"23747:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23733:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7459,"name":"string","nodeType":"ElementaryTypeName","src":"23733:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7462,"mutability":"mutable","name":"p3","nameLocation":"23765:2:20","nodeType":"VariableDeclaration","scope":7477,"src":"23751:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7461,"name":"string","nodeType":"ElementaryTypeName","src":"23751:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"23702:66:20"},"returnParameters":{"id":7464,"nodeType":"ParameterList","parameters":[],"src":"23783:0:20"},"scope":12860,"src":"23690:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7499,"nodeType":"Block","src":"23983:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c626f6f6c29","id":7491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24033:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},"value":"log(uint256,string,string,bool)"},{"id":7492,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7479,"src":"24068:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7493,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7481,"src":"24072:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7494,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7483,"src":"24076:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7495,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7485,"src":"24080:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b3a6b6bdf3265665181b9a9ab1338c75ebc293704c96a9a669654a5ba9f6d3e9","typeString":"literal_string \"log(uint256,string,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24009:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24013:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24009:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24009:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7488,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"23993:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23993:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7498,"nodeType":"ExpressionStatement","src":"23993:91:20"}]},"id":7500,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"23908:3:20","nodeType":"FunctionDefinition","parameters":{"id":7486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7479,"mutability":"mutable","name":"p0","nameLocation":"23920:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23912:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7478,"name":"uint256","nodeType":"ElementaryTypeName","src":"23912:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7481,"mutability":"mutable","name":"p1","nameLocation":"23938:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23924:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7480,"name":"string","nodeType":"ElementaryTypeName","src":"23924:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7483,"mutability":"mutable","name":"p2","nameLocation":"23956:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23942:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7482,"name":"string","nodeType":"ElementaryTypeName","src":"23942:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7485,"mutability":"mutable","name":"p3","nameLocation":"23965:2:20","nodeType":"VariableDeclaration","scope":7500,"src":"23960:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7484,"name":"bool","nodeType":"ElementaryTypeName","src":"23960:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23911:57:20"},"returnParameters":{"id":7487,"nodeType":"ParameterList","parameters":[],"src":"23983:0:20"},"scope":12860,"src":"23899:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7522,"nodeType":"Block","src":"24184:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c737472696e672c6164647265737329","id":7514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24234:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},"value":"log(uint256,string,string,address)"},{"id":7515,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7502,"src":"24272:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7516,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7504,"src":"24276:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7517,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7506,"src":"24280:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7518,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7508,"src":"24284:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d583c60265ad086fe6216ef9aea37bf5de1e77bdf9055c734c55781d5f4b81d7","typeString":"literal_string \"log(uint256,string,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7512,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24210:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7513,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24214:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24210:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24210:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7511,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24194:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24194:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7521,"nodeType":"ExpressionStatement","src":"24194:94:20"}]},"id":7523,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24106:3:20","nodeType":"FunctionDefinition","parameters":{"id":7509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7502,"mutability":"mutable","name":"p0","nameLocation":"24118:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24110:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7501,"name":"uint256","nodeType":"ElementaryTypeName","src":"24110:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7504,"mutability":"mutable","name":"p1","nameLocation":"24136:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24122:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7503,"name":"string","nodeType":"ElementaryTypeName","src":"24122:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7506,"mutability":"mutable","name":"p2","nameLocation":"24154:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24140:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7505,"name":"string","nodeType":"ElementaryTypeName","src":"24140:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7508,"mutability":"mutable","name":"p3","nameLocation":"24166:2:20","nodeType":"VariableDeclaration","scope":7523,"src":"24158:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7507,"name":"address","nodeType":"ElementaryTypeName","src":"24158:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24109:60:20"},"returnParameters":{"id":7510,"nodeType":"ParameterList","parameters":[],"src":"24184:0:20"},"scope":12860,"src":"24097:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7545,"nodeType":"Block","src":"24379:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c75696e7432353629","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24429:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},"value":"log(uint256,string,bool,uint256)"},{"id":7538,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7525,"src":"24465:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7539,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7527,"src":"24469:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7540,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7529,"src":"24473:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7541,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7531,"src":"24477:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf00988004d982e10d8d4fa7f603a1414e3b2b91cdfcf6f72808ca6c3100f96a","typeString":"literal_string \"log(uint256,string,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7535,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24405:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24409:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24405:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24405:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7534,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24389:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24389:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7544,"nodeType":"ExpressionStatement","src":"24389:92:20"}]},"id":7546,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24310:3:20","nodeType":"FunctionDefinition","parameters":{"id":7532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7525,"mutability":"mutable","name":"p0","nameLocation":"24322:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24314:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7524,"name":"uint256","nodeType":"ElementaryTypeName","src":"24314:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7527,"mutability":"mutable","name":"p1","nameLocation":"24340:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24326:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7526,"name":"string","nodeType":"ElementaryTypeName","src":"24326:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7529,"mutability":"mutable","name":"p2","nameLocation":"24349:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24344:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7528,"name":"bool","nodeType":"ElementaryTypeName","src":"24344:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7531,"mutability":"mutable","name":"p3","nameLocation":"24361:2:20","nodeType":"VariableDeclaration","scope":7546,"src":"24353:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7530,"name":"uint256","nodeType":"ElementaryTypeName","src":"24353:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24313:51:20"},"returnParameters":{"id":7533,"nodeType":"ParameterList","parameters":[],"src":"24379:0:20"},"scope":12860,"src":"24301:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7568,"nodeType":"Block","src":"24578:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c737472696e6729","id":7560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24628:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},"value":"log(uint256,string,bool,string)"},{"id":7561,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7548,"src":"24663:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7562,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7550,"src":"24667:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7563,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7552,"src":"24671:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7564,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7554,"src":"24675:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d2d423cdca0e3ae7a0a1a283a67d891c85787b75e0c5291c02d15317d67fe45c","typeString":"literal_string \"log(uint256,string,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7558,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24604:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24608:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24604:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24604:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7557,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24588:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24588:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7567,"nodeType":"ExpressionStatement","src":"24588:91:20"}]},"id":7569,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24503:3:20","nodeType":"FunctionDefinition","parameters":{"id":7555,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7548,"mutability":"mutable","name":"p0","nameLocation":"24515:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7547,"name":"uint256","nodeType":"ElementaryTypeName","src":"24507:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7550,"mutability":"mutable","name":"p1","nameLocation":"24533:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24519:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7549,"name":"string","nodeType":"ElementaryTypeName","src":"24519:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7552,"mutability":"mutable","name":"p2","nameLocation":"24542:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24537:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7551,"name":"bool","nodeType":"ElementaryTypeName","src":"24537:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7554,"mutability":"mutable","name":"p3","nameLocation":"24560:2:20","nodeType":"VariableDeclaration","scope":7569,"src":"24546:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7553,"name":"string","nodeType":"ElementaryTypeName","src":"24546:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"24506:57:20"},"returnParameters":{"id":7556,"nodeType":"ParameterList","parameters":[],"src":"24578:0:20"},"scope":12860,"src":"24494:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7591,"nodeType":"Block","src":"24767:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c626f6f6c29","id":7583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"24817:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},"value":"log(uint256,string,bool,bool)"},{"id":7584,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7571,"src":"24850:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7585,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7573,"src":"24854:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7586,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7575,"src":"24858:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7587,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7577,"src":"24862:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ba535d9cec0fb8bbd83e61b83d0f575d149cba6778a192239c1bdc5170053e4f","typeString":"literal_string \"log(uint256,string,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7581,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24793:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24797:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24793:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24793:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7580,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24777:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24777:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7590,"nodeType":"ExpressionStatement","src":"24777:89:20"}]},"id":7592,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24701:3:20","nodeType":"FunctionDefinition","parameters":{"id":7578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7571,"mutability":"mutable","name":"p0","nameLocation":"24713:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24705:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7570,"name":"uint256","nodeType":"ElementaryTypeName","src":"24705:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7573,"mutability":"mutable","name":"p1","nameLocation":"24731:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24717:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7572,"name":"string","nodeType":"ElementaryTypeName","src":"24717:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7575,"mutability":"mutable","name":"p2","nameLocation":"24740:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24735:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7574,"name":"bool","nodeType":"ElementaryTypeName","src":"24735:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7577,"mutability":"mutable","name":"p3","nameLocation":"24749:2:20","nodeType":"VariableDeclaration","scope":7592,"src":"24744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7576,"name":"bool","nodeType":"ElementaryTypeName","src":"24744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"24704:48:20"},"returnParameters":{"id":7579,"nodeType":"ParameterList","parameters":[],"src":"24767:0:20"},"scope":12860,"src":"24692:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7614,"nodeType":"Block","src":"24957:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c626f6f6c2c6164647265737329","id":7606,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25007:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},"value":"log(uint256,string,bool,address)"},{"id":7607,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7594,"src":"25043:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7608,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7596,"src":"25047:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7609,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7598,"src":"25051:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7610,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"25055:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ae2ec581fba979c4f79aae94f13936ff6bb7e283817b2ec0602d9daa028a1550","typeString":"literal_string \"log(uint256,string,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7604,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"24983:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7605,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"24987:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"24983:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24983:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7603,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"24967:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24967:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7613,"nodeType":"ExpressionStatement","src":"24967:92:20"}]},"id":7615,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"24888:3:20","nodeType":"FunctionDefinition","parameters":{"id":7601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7594,"mutability":"mutable","name":"p0","nameLocation":"24900:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24892:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7593,"name":"uint256","nodeType":"ElementaryTypeName","src":"24892:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7596,"mutability":"mutable","name":"p1","nameLocation":"24918:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24904:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7595,"name":"string","nodeType":"ElementaryTypeName","src":"24904:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7598,"mutability":"mutable","name":"p2","nameLocation":"24927:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24922:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7597,"name":"bool","nodeType":"ElementaryTypeName","src":"24922:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7600,"mutability":"mutable","name":"p3","nameLocation":"24939:2:20","nodeType":"VariableDeclaration","scope":7615,"src":"24931:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7599,"name":"address","nodeType":"ElementaryTypeName","src":"24931:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24891:51:20"},"returnParameters":{"id":7602,"nodeType":"ParameterList","parameters":[],"src":"24957:0:20"},"scope":12860,"src":"24879:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7637,"nodeType":"Block","src":"25153:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c75696e7432353629","id":7629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25203:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},"value":"log(uint256,string,address,uint256)"},{"id":7630,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7617,"src":"25242:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7631,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7619,"src":"25246:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7632,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7621,"src":"25250:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7633,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7623,"src":"25254:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e8d3018d32ee5012095e63c81679b366f06035e83d43be351e9c327886860908","typeString":"literal_string \"log(uint256,string,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7627,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25179:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25183:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25179:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25179:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7626,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25163:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25163:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7636,"nodeType":"ExpressionStatement","src":"25163:95:20"}]},"id":7638,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25081:3:20","nodeType":"FunctionDefinition","parameters":{"id":7624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7617,"mutability":"mutable","name":"p0","nameLocation":"25093:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25085:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7616,"name":"uint256","nodeType":"ElementaryTypeName","src":"25085:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7619,"mutability":"mutable","name":"p1","nameLocation":"25111:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25097:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7618,"name":"string","nodeType":"ElementaryTypeName","src":"25097:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7621,"mutability":"mutable","name":"p2","nameLocation":"25123:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25115:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7620,"name":"address","nodeType":"ElementaryTypeName","src":"25115:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7623,"mutability":"mutable","name":"p3","nameLocation":"25135:2:20","nodeType":"VariableDeclaration","scope":7638,"src":"25127:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7622,"name":"uint256","nodeType":"ElementaryTypeName","src":"25127:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25084:54:20"},"returnParameters":{"id":7625,"nodeType":"ParameterList","parameters":[],"src":"25153:0:20"},"scope":12860,"src":"25072:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7660,"nodeType":"Block","src":"25358:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c737472696e6729","id":7652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25408:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},"value":"log(uint256,string,address,string)"},{"id":7653,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7640,"src":"25446:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7654,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7642,"src":"25450:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7655,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7644,"src":"25454:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7656,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7646,"src":"25458:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9c3adfa1394c3989d93ade538d03d04b05867057c1dd54721ae2c85f9a1a4720","typeString":"literal_string \"log(uint256,string,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7650,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25384:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7651,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25388:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25384:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25384:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7649,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25368:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25368:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7659,"nodeType":"ExpressionStatement","src":"25368:94:20"}]},"id":7661,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25280:3:20","nodeType":"FunctionDefinition","parameters":{"id":7647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7640,"mutability":"mutable","name":"p0","nameLocation":"25292:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25284:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7639,"name":"uint256","nodeType":"ElementaryTypeName","src":"25284:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7642,"mutability":"mutable","name":"p1","nameLocation":"25310:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25296:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7641,"name":"string","nodeType":"ElementaryTypeName","src":"25296:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7644,"mutability":"mutable","name":"p2","nameLocation":"25322:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25314:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7643,"name":"address","nodeType":"ElementaryTypeName","src":"25314:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7646,"mutability":"mutable","name":"p3","nameLocation":"25340:2:20","nodeType":"VariableDeclaration","scope":7661,"src":"25326:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7645,"name":"string","nodeType":"ElementaryTypeName","src":"25326:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"25283:60:20"},"returnParameters":{"id":7648,"nodeType":"ParameterList","parameters":[],"src":"25358:0:20"},"scope":12860,"src":"25271:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7683,"nodeType":"Block","src":"25553:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c626f6f6c29","id":7675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25603:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},"value":"log(uint256,string,address,bool)"},{"id":7676,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7663,"src":"25639:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7677,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7665,"src":"25643:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7678,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7667,"src":"25647:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7679,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7669,"src":"25651:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90c30a564e5b352d6dfee73888402a5685ca327aad7827d5040904440ee085c5","typeString":"literal_string \"log(uint256,string,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7673,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25579:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25583:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25579:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25579:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7672,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25563:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25563:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7682,"nodeType":"ExpressionStatement","src":"25563:92:20"}]},"id":7684,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25484:3:20","nodeType":"FunctionDefinition","parameters":{"id":7670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7663,"mutability":"mutable","name":"p0","nameLocation":"25496:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25488:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7662,"name":"uint256","nodeType":"ElementaryTypeName","src":"25488:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7665,"mutability":"mutable","name":"p1","nameLocation":"25514:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25500:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7664,"name":"string","nodeType":"ElementaryTypeName","src":"25500:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7667,"mutability":"mutable","name":"p2","nameLocation":"25526:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25518:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7666,"name":"address","nodeType":"ElementaryTypeName","src":"25518:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7669,"mutability":"mutable","name":"p3","nameLocation":"25535:2:20","nodeType":"VariableDeclaration","scope":7684,"src":"25530:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7668,"name":"bool","nodeType":"ElementaryTypeName","src":"25530:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"25487:51:20"},"returnParameters":{"id":7671,"nodeType":"ParameterList","parameters":[],"src":"25553:0:20"},"scope":12860,"src":"25475:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7706,"nodeType":"Block","src":"25749:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c737472696e672c616464726573732c6164647265737329","id":7698,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25799:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},"value":"log(uint256,string,address,address)"},{"id":7699,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7686,"src":"25838:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7700,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7688,"src":"25842:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7701,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7690,"src":"25846:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":7702,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7692,"src":"25850:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6168ed618844a2c75dc49207e69cdff562cd2faf2e74aa5192211a023611c6bd","typeString":"literal_string \"log(uint256,string,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7696,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25775:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25779:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25775:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25775:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7695,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25759:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25759:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7705,"nodeType":"ExpressionStatement","src":"25759:95:20"}]},"id":7707,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25677:3:20","nodeType":"FunctionDefinition","parameters":{"id":7693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7686,"mutability":"mutable","name":"p0","nameLocation":"25689:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25681:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7685,"name":"uint256","nodeType":"ElementaryTypeName","src":"25681:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7688,"mutability":"mutable","name":"p1","nameLocation":"25707:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25693:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7687,"name":"string","nodeType":"ElementaryTypeName","src":"25693:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7690,"mutability":"mutable","name":"p2","nameLocation":"25719:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25711:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7689,"name":"address","nodeType":"ElementaryTypeName","src":"25711:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7692,"mutability":"mutable","name":"p3","nameLocation":"25731:2:20","nodeType":"VariableDeclaration","scope":7707,"src":"25723:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7691,"name":"address","nodeType":"ElementaryTypeName","src":"25723:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25680:54:20"},"returnParameters":{"id":7694,"nodeType":"ParameterList","parameters":[],"src":"25749:0:20"},"scope":12860,"src":"25668:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7729,"nodeType":"Block","src":"25939:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c75696e7432353629","id":7721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"25989:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},"value":"log(uint256,bool,uint256,uint256)"},{"id":7722,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"26026:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7723,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"26030:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7724,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"26034:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7725,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"26038:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c6acc7a8396e6de9a5a1476aecf2cbff57758b174747b0371b7f3994e930b8b4","typeString":"literal_string \"log(uint256,bool,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7719,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"25965:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"25969:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"25965:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25965:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7718,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"25949:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25949:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7728,"nodeType":"ExpressionStatement","src":"25949:93:20"}]},"id":7730,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"25876:3:20","nodeType":"FunctionDefinition","parameters":{"id":7716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7709,"mutability":"mutable","name":"p0","nameLocation":"25888:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25880:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7708,"name":"uint256","nodeType":"ElementaryTypeName","src":"25880:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7711,"mutability":"mutable","name":"p1","nameLocation":"25897:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25892:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7710,"name":"bool","nodeType":"ElementaryTypeName","src":"25892:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7713,"mutability":"mutable","name":"p2","nameLocation":"25909:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25901:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7712,"name":"uint256","nodeType":"ElementaryTypeName","src":"25901:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7715,"mutability":"mutable","name":"p3","nameLocation":"25921:2:20","nodeType":"VariableDeclaration","scope":7730,"src":"25913:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7714,"name":"uint256","nodeType":"ElementaryTypeName","src":"25913:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25879:45:20"},"returnParameters":{"id":7717,"nodeType":"ParameterList","parameters":[],"src":"25939:0:20"},"scope":12860,"src":"25867:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7752,"nodeType":"Block","src":"26133:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c737472696e6729","id":7744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26183:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},"value":"log(uint256,bool,uint256,string)"},{"id":7745,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7732,"src":"26219:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7746,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7734,"src":"26223:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7747,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7736,"src":"26227:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7748,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7738,"src":"26231:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de03e77403acbacf9b1b18c1115984c9fba2c45e2eec9f12c266ada3f62a0d1b","typeString":"literal_string \"log(uint256,bool,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7742,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26159:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7743,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26163:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26159:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26159:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7741,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26143:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26143:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7751,"nodeType":"ExpressionStatement","src":"26143:92:20"}]},"id":7753,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26064:3:20","nodeType":"FunctionDefinition","parameters":{"id":7739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7732,"mutability":"mutable","name":"p0","nameLocation":"26076:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26068:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7731,"name":"uint256","nodeType":"ElementaryTypeName","src":"26068:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7734,"mutability":"mutable","name":"p1","nameLocation":"26085:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26080:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7733,"name":"bool","nodeType":"ElementaryTypeName","src":"26080:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7736,"mutability":"mutable","name":"p2","nameLocation":"26097:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26089:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7735,"name":"uint256","nodeType":"ElementaryTypeName","src":"26089:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7738,"mutability":"mutable","name":"p3","nameLocation":"26115:2:20","nodeType":"VariableDeclaration","scope":7753,"src":"26101:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7737,"name":"string","nodeType":"ElementaryTypeName","src":"26101:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26067:51:20"},"returnParameters":{"id":7740,"nodeType":"ParameterList","parameters":[],"src":"26133:0:20"},"scope":12860,"src":"26055:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7775,"nodeType":"Block","src":"26317:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c626f6f6c29","id":7767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26367:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},"value":"log(uint256,bool,uint256,bool)"},{"id":7768,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7755,"src":"26401:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7769,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7757,"src":"26405:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7770,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7759,"src":"26409:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7771,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7761,"src":"26413:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91a02e2ac8ae09683fa28beba3fd130b88054c89e51901b8e0510c8e25aa37d1","typeString":"literal_string \"log(uint256,bool,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7765,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26343:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26347:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26343:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26343:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7764,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26327:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26327:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7774,"nodeType":"ExpressionStatement","src":"26327:90:20"}]},"id":7776,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26257:3:20","nodeType":"FunctionDefinition","parameters":{"id":7762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7755,"mutability":"mutable","name":"p0","nameLocation":"26269:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26261:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7754,"name":"uint256","nodeType":"ElementaryTypeName","src":"26261:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7757,"mutability":"mutable","name":"p1","nameLocation":"26278:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26273:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7756,"name":"bool","nodeType":"ElementaryTypeName","src":"26273:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7759,"mutability":"mutable","name":"p2","nameLocation":"26290:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26282:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7758,"name":"uint256","nodeType":"ElementaryTypeName","src":"26282:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7761,"mutability":"mutable","name":"p3","nameLocation":"26299:2:20","nodeType":"VariableDeclaration","scope":7776,"src":"26294:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7760,"name":"bool","nodeType":"ElementaryTypeName","src":"26294:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26260:42:20"},"returnParameters":{"id":7763,"nodeType":"ParameterList","parameters":[],"src":"26317:0:20"},"scope":12860,"src":"26248:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7798,"nodeType":"Block","src":"26502:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c75696e743235362c6164647265737329","id":7790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26552:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},"value":"log(uint256,bool,uint256,address)"},{"id":7791,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"26589:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7792,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7780,"src":"26593:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7793,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7782,"src":"26597:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7794,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"26601:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88cb6041693b97a5282ad65a65484c065fbc3d3a4dac698c427f5b30bb33b29b","typeString":"literal_string \"log(uint256,bool,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7788,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26528:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26532:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26528:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26528:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7787,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26512:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26512:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7797,"nodeType":"ExpressionStatement","src":"26512:93:20"}]},"id":7799,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26439:3:20","nodeType":"FunctionDefinition","parameters":{"id":7785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7778,"mutability":"mutable","name":"p0","nameLocation":"26451:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26443:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7777,"name":"uint256","nodeType":"ElementaryTypeName","src":"26443:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7780,"mutability":"mutable","name":"p1","nameLocation":"26460:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26455:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7779,"name":"bool","nodeType":"ElementaryTypeName","src":"26455:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7782,"mutability":"mutable","name":"p2","nameLocation":"26472:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26464:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7781,"name":"uint256","nodeType":"ElementaryTypeName","src":"26464:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7784,"mutability":"mutable","name":"p3","nameLocation":"26484:2:20","nodeType":"VariableDeclaration","scope":7799,"src":"26476:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7783,"name":"address","nodeType":"ElementaryTypeName","src":"26476:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26442:45:20"},"returnParameters":{"id":7786,"nodeType":"ParameterList","parameters":[],"src":"26502:0:20"},"scope":12860,"src":"26430:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7821,"nodeType":"Block","src":"26696:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c75696e7432353629","id":7813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26746:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},"value":"log(uint256,bool,string,uint256)"},{"id":7814,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7801,"src":"26782:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7815,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7803,"src":"26786:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7816,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7805,"src":"26790:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7817,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7807,"src":"26794:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1d07463509a567bf9962980ac948a2ea7c76a53c189a607b7b35b14e806be8","typeString":"literal_string \"log(uint256,bool,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7811,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26722:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26726:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26722:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26722:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7810,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26706:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26706:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7820,"nodeType":"ExpressionStatement","src":"26706:92:20"}]},"id":7822,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26627:3:20","nodeType":"FunctionDefinition","parameters":{"id":7808,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7801,"mutability":"mutable","name":"p0","nameLocation":"26639:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26631:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7800,"name":"uint256","nodeType":"ElementaryTypeName","src":"26631:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7803,"mutability":"mutable","name":"p1","nameLocation":"26648:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26643:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7802,"name":"bool","nodeType":"ElementaryTypeName","src":"26643:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7805,"mutability":"mutable","name":"p2","nameLocation":"26666:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26652:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7804,"name":"string","nodeType":"ElementaryTypeName","src":"26652:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7807,"mutability":"mutable","name":"p3","nameLocation":"26678:2:20","nodeType":"VariableDeclaration","scope":7822,"src":"26670:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7806,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26630:51:20"},"returnParameters":{"id":7809,"nodeType":"ParameterList","parameters":[],"src":"26696:0:20"},"scope":12860,"src":"26618:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7844,"nodeType":"Block","src":"26895:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c737472696e6729","id":7836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"26945:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},"value":"log(uint256,bool,string,string)"},{"id":7837,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7824,"src":"26980:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7838,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7826,"src":"26984:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7839,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7828,"src":"26988:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7840,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7830,"src":"26992:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68c8b8bd8cd0cfd8add7c6745840520db0bd1049365ac415de6367b3b79b5ddd","typeString":"literal_string \"log(uint256,bool,string,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7834,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"26921:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"26925:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"26921:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26921:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7833,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"26905:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26905:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7843,"nodeType":"ExpressionStatement","src":"26905:91:20"}]},"id":7845,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"26820:3:20","nodeType":"FunctionDefinition","parameters":{"id":7831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7824,"mutability":"mutable","name":"p0","nameLocation":"26832:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26824:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7823,"name":"uint256","nodeType":"ElementaryTypeName","src":"26824:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7826,"mutability":"mutable","name":"p1","nameLocation":"26841:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26836:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7825,"name":"bool","nodeType":"ElementaryTypeName","src":"26836:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7828,"mutability":"mutable","name":"p2","nameLocation":"26859:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26845:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7827,"name":"string","nodeType":"ElementaryTypeName","src":"26845:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7830,"mutability":"mutable","name":"p3","nameLocation":"26877:2:20","nodeType":"VariableDeclaration","scope":7845,"src":"26863:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7829,"name":"string","nodeType":"ElementaryTypeName","src":"26863:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"26823:57:20"},"returnParameters":{"id":7832,"nodeType":"ParameterList","parameters":[],"src":"26895:0:20"},"scope":12860,"src":"26811:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7867,"nodeType":"Block","src":"27084:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c626f6f6c29","id":7859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27134:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},"value":"log(uint256,bool,string,bool)"},{"id":7860,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7847,"src":"27167:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7861,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7849,"src":"27171:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7862,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7851,"src":"27175:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7863,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7853,"src":"27179:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb928d7f2c458ba40d8ba853c60153b2f73ca9189d4be051103bc8a6c10d45ad","typeString":"literal_string \"log(uint256,bool,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7857,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27110:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7858,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27114:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27110:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27110:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7856,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27094:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27094:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7866,"nodeType":"ExpressionStatement","src":"27094:89:20"}]},"id":7868,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27018:3:20","nodeType":"FunctionDefinition","parameters":{"id":7854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7847,"mutability":"mutable","name":"p0","nameLocation":"27030:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27022:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7846,"name":"uint256","nodeType":"ElementaryTypeName","src":"27022:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7849,"mutability":"mutable","name":"p1","nameLocation":"27039:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27034:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7848,"name":"bool","nodeType":"ElementaryTypeName","src":"27034:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7851,"mutability":"mutable","name":"p2","nameLocation":"27057:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27043:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7850,"name":"string","nodeType":"ElementaryTypeName","src":"27043:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7853,"mutability":"mutable","name":"p3","nameLocation":"27066:2:20","nodeType":"VariableDeclaration","scope":7868,"src":"27061:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7852,"name":"bool","nodeType":"ElementaryTypeName","src":"27061:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27021:48:20"},"returnParameters":{"id":7855,"nodeType":"ParameterList","parameters":[],"src":"27084:0:20"},"scope":12860,"src":"27009:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7890,"nodeType":"Block","src":"27274:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c737472696e672c6164647265737329","id":7882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27324:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},"value":"log(uint256,bool,string,address)"},{"id":7883,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7870,"src":"27360:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7884,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"27364:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7885,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"27368:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":7886,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"27372:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef529018e81552426f837435fb92b39b88965df2736546faff28c9f06e5f58b5","typeString":"literal_string \"log(uint256,bool,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7880,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27300:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27304:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27300:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27300:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7879,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27284:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27284:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7889,"nodeType":"ExpressionStatement","src":"27284:92:20"}]},"id":7891,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27205:3:20","nodeType":"FunctionDefinition","parameters":{"id":7877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7870,"mutability":"mutable","name":"p0","nameLocation":"27217:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27209:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7869,"name":"uint256","nodeType":"ElementaryTypeName","src":"27209:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7872,"mutability":"mutable","name":"p1","nameLocation":"27226:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27221:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7871,"name":"bool","nodeType":"ElementaryTypeName","src":"27221:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7874,"mutability":"mutable","name":"p2","nameLocation":"27244:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27230:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7873,"name":"string","nodeType":"ElementaryTypeName","src":"27230:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":7876,"mutability":"mutable","name":"p3","nameLocation":"27256:2:20","nodeType":"VariableDeclaration","scope":7891,"src":"27248:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7875,"name":"address","nodeType":"ElementaryTypeName","src":"27248:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27208:51:20"},"returnParameters":{"id":7878,"nodeType":"ParameterList","parameters":[],"src":"27274:0:20"},"scope":12860,"src":"27196:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7913,"nodeType":"Block","src":"27458:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c75696e7432353629","id":7905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27508:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},"value":"log(uint256,bool,bool,uint256)"},{"id":7906,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7893,"src":"27542:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7907,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7895,"src":"27546:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7908,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7897,"src":"27550:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7909,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7899,"src":"27554:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7464ce2380e6490f75dd524dd03612157b27bca22ecbf1bc2f0ca22ac41015d1","typeString":"literal_string \"log(uint256,bool,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7903,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27484:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7904,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27488:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27484:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7902,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27468:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27468:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7912,"nodeType":"ExpressionStatement","src":"27468:90:20"}]},"id":7914,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27398:3:20","nodeType":"FunctionDefinition","parameters":{"id":7900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7893,"mutability":"mutable","name":"p0","nameLocation":"27410:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27402:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7892,"name":"uint256","nodeType":"ElementaryTypeName","src":"27402:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7895,"mutability":"mutable","name":"p1","nameLocation":"27419:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27414:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7894,"name":"bool","nodeType":"ElementaryTypeName","src":"27414:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7897,"mutability":"mutable","name":"p2","nameLocation":"27428:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27423:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7896,"name":"bool","nodeType":"ElementaryTypeName","src":"27423:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7899,"mutability":"mutable","name":"p3","nameLocation":"27440:2:20","nodeType":"VariableDeclaration","scope":7914,"src":"27432:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7898,"name":"uint256","nodeType":"ElementaryTypeName","src":"27432:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"27401:42:20"},"returnParameters":{"id":7901,"nodeType":"ParameterList","parameters":[],"src":"27458:0:20"},"scope":12860,"src":"27389:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7936,"nodeType":"Block","src":"27646:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c737472696e6729","id":7928,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27696:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},"value":"log(uint256,bool,bool,string)"},{"id":7929,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7916,"src":"27729:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7930,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7918,"src":"27733:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7931,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7920,"src":"27737:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7932,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7922,"src":"27741:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dddb956172e374c580dd136b5b8151c6400d22ece6b561a1010b6b9e902dd439","typeString":"literal_string \"log(uint256,bool,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":7926,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27672:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7927,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27676:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27672:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27672:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7925,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27656:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27656:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7935,"nodeType":"ExpressionStatement","src":"27656:89:20"}]},"id":7937,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27580:3:20","nodeType":"FunctionDefinition","parameters":{"id":7923,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7916,"mutability":"mutable","name":"p0","nameLocation":"27592:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27584:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7915,"name":"uint256","nodeType":"ElementaryTypeName","src":"27584:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7918,"mutability":"mutable","name":"p1","nameLocation":"27601:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27596:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7917,"name":"bool","nodeType":"ElementaryTypeName","src":"27596:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7920,"mutability":"mutable","name":"p2","nameLocation":"27610:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27605:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7919,"name":"bool","nodeType":"ElementaryTypeName","src":"27605:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7922,"mutability":"mutable","name":"p3","nameLocation":"27628:2:20","nodeType":"VariableDeclaration","scope":7937,"src":"27614:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7921,"name":"string","nodeType":"ElementaryTypeName","src":"27614:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"27583:48:20"},"returnParameters":{"id":7924,"nodeType":"ParameterList","parameters":[],"src":"27646:0:20"},"scope":12860,"src":"27571:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7959,"nodeType":"Block","src":"27824:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c626f6f6c29","id":7951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"27874:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},"value":"log(uint256,bool,bool,bool)"},{"id":7952,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7939,"src":"27905:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7953,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7941,"src":"27909:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7954,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7943,"src":"27913:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7955,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"27917:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6f577a1520f8fa7d40eaff9dcd5f293e28b7606bd07d0a450b13db93da80473","typeString":"literal_string \"log(uint256,bool,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":7949,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"27850:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"27854:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"27850:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27850:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7948,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"27834:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27834:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"ExpressionStatement","src":"27834:87:20"}]},"id":7960,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27767:3:20","nodeType":"FunctionDefinition","parameters":{"id":7946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7939,"mutability":"mutable","name":"p0","nameLocation":"27779:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27771:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7938,"name":"uint256","nodeType":"ElementaryTypeName","src":"27771:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7941,"mutability":"mutable","name":"p1","nameLocation":"27788:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27783:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7940,"name":"bool","nodeType":"ElementaryTypeName","src":"27783:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7943,"mutability":"mutable","name":"p2","nameLocation":"27797:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27792:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7942,"name":"bool","nodeType":"ElementaryTypeName","src":"27792:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7945,"mutability":"mutable","name":"p3","nameLocation":"27806:2:20","nodeType":"VariableDeclaration","scope":7960,"src":"27801:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7944,"name":"bool","nodeType":"ElementaryTypeName","src":"27801:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"27770:39:20"},"returnParameters":{"id":7947,"nodeType":"ParameterList","parameters":[],"src":"27824:0:20"},"scope":12860,"src":"27758:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":7982,"nodeType":"Block","src":"28003:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c626f6f6c2c6164647265737329","id":7974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28053:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},"value":"log(uint256,bool,bool,address)"},{"id":7975,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7962,"src":"28087:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7976,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7964,"src":"28091:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7977,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7966,"src":"28095:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":7978,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7968,"src":"28099:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_69640b598ea5b9e4e68e932871cb8a509ce832c6718a902773532568b8c95c31","typeString":"literal_string \"log(uint256,bool,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":7972,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28029:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7973,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28033:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28029:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":7979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28029:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7971,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28013:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":7980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28013:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7981,"nodeType":"ExpressionStatement","src":"28013:90:20"}]},"id":7983,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"27943:3:20","nodeType":"FunctionDefinition","parameters":{"id":7969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7962,"mutability":"mutable","name":"p0","nameLocation":"27955:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27947:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7961,"name":"uint256","nodeType":"ElementaryTypeName","src":"27947:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7964,"mutability":"mutable","name":"p1","nameLocation":"27964:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27959:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7963,"name":"bool","nodeType":"ElementaryTypeName","src":"27959:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7966,"mutability":"mutable","name":"p2","nameLocation":"27973:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27968:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7965,"name":"bool","nodeType":"ElementaryTypeName","src":"27968:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7968,"mutability":"mutable","name":"p3","nameLocation":"27985:2:20","nodeType":"VariableDeclaration","scope":7983,"src":"27977:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7967,"name":"address","nodeType":"ElementaryTypeName","src":"27977:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"27946:42:20"},"returnParameters":{"id":7970,"nodeType":"ParameterList","parameters":[],"src":"28003:0:20"},"scope":12860,"src":"27934:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8005,"nodeType":"Block","src":"28188:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c75696e7432353629","id":7997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28238:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},"value":"log(uint256,bool,address,uint256)"},{"id":7998,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"28275:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":7999,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7987,"src":"28279:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8000,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7989,"src":"28283:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8001,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7991,"src":"28287:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_078287f5d654caee11cca90bb8c074a9529509cd07319dc17a93fa036ea5ea88","typeString":"literal_string \"log(uint256,bool,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":7995,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28214:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7996,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28218:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28214:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28214:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7994,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28198:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8004,"nodeType":"ExpressionStatement","src":"28198:93:20"}]},"id":8006,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28125:3:20","nodeType":"FunctionDefinition","parameters":{"id":7992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7985,"mutability":"mutable","name":"p0","nameLocation":"28137:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28129:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7984,"name":"uint256","nodeType":"ElementaryTypeName","src":"28129:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":7987,"mutability":"mutable","name":"p1","nameLocation":"28146:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28141:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7986,"name":"bool","nodeType":"ElementaryTypeName","src":"28141:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":7989,"mutability":"mutable","name":"p2","nameLocation":"28158:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28150:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7988,"name":"address","nodeType":"ElementaryTypeName","src":"28150:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":7991,"mutability":"mutable","name":"p3","nameLocation":"28170:2:20","nodeType":"VariableDeclaration","scope":8006,"src":"28162:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7990,"name":"uint256","nodeType":"ElementaryTypeName","src":"28162:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28128:45:20"},"returnParameters":{"id":7993,"nodeType":"ParameterList","parameters":[],"src":"28188:0:20"},"scope":12860,"src":"28116:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8028,"nodeType":"Block","src":"28382:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c737472696e6729","id":8020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28432:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},"value":"log(uint256,bool,address,string)"},{"id":8021,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8008,"src":"28468:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8022,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8010,"src":"28472:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8023,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8012,"src":"28476:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8024,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8014,"src":"28480:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ade052c70a8f7736e3d4ca12bfb5de52ba51cd4551a71eb41200e5ca9b193461","typeString":"literal_string \"log(uint256,bool,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8018,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28408:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8019,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28412:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28408:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28408:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8017,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28392:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28392:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8027,"nodeType":"ExpressionStatement","src":"28392:92:20"}]},"id":8029,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28313:3:20","nodeType":"FunctionDefinition","parameters":{"id":8015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8008,"mutability":"mutable","name":"p0","nameLocation":"28325:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28317:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8007,"name":"uint256","nodeType":"ElementaryTypeName","src":"28317:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8010,"mutability":"mutable","name":"p1","nameLocation":"28334:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28329:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8009,"name":"bool","nodeType":"ElementaryTypeName","src":"28329:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8012,"mutability":"mutable","name":"p2","nameLocation":"28346:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28338:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8011,"name":"address","nodeType":"ElementaryTypeName","src":"28338:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8014,"mutability":"mutable","name":"p3","nameLocation":"28364:2:20","nodeType":"VariableDeclaration","scope":8029,"src":"28350:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8013,"name":"string","nodeType":"ElementaryTypeName","src":"28350:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"28316:51:20"},"returnParameters":{"id":8016,"nodeType":"ParameterList","parameters":[],"src":"28382:0:20"},"scope":12860,"src":"28304:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8051,"nodeType":"Block","src":"28566:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c626f6f6c29","id":8043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28616:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},"value":"log(uint256,bool,address,bool)"},{"id":8044,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8031,"src":"28650:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8045,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8033,"src":"28654:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8046,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8035,"src":"28658:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8047,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8037,"src":"28662:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_454d54a5a1119d55883b5fbee0d6f19af54017eb1650d2284224aac472880f6a","typeString":"literal_string \"log(uint256,bool,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8041,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28592:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28596:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28592:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28592:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8040,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28576:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28576:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8050,"nodeType":"ExpressionStatement","src":"28576:90:20"}]},"id":8052,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28506:3:20","nodeType":"FunctionDefinition","parameters":{"id":8038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8031,"mutability":"mutable","name":"p0","nameLocation":"28518:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28510:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8030,"name":"uint256","nodeType":"ElementaryTypeName","src":"28510:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8033,"mutability":"mutable","name":"p1","nameLocation":"28527:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28522:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8032,"name":"bool","nodeType":"ElementaryTypeName","src":"28522:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8035,"mutability":"mutable","name":"p2","nameLocation":"28539:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28531:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8034,"name":"address","nodeType":"ElementaryTypeName","src":"28531:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8037,"mutability":"mutable","name":"p3","nameLocation":"28548:2:20","nodeType":"VariableDeclaration","scope":8052,"src":"28543:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8036,"name":"bool","nodeType":"ElementaryTypeName","src":"28543:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28509:42:20"},"returnParameters":{"id":8039,"nodeType":"ParameterList","parameters":[],"src":"28566:0:20"},"scope":12860,"src":"28497:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8074,"nodeType":"Block","src":"28751:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c626f6f6c2c616464726573732c6164647265737329","id":8066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28801:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},"value":"log(uint256,bool,address,address)"},{"id":8067,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8054,"src":"28838:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8068,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8056,"src":"28842:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8069,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8058,"src":"28846:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8070,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8060,"src":"28850:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1ef4cbbfd0316a849f14b661567c9c341a49bccb745dfb6a3d9b82c389ac190","typeString":"literal_string \"log(uint256,bool,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8064,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28777:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8065,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28781:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28777:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28777:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8063,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28761:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28761:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8073,"nodeType":"ExpressionStatement","src":"28761:93:20"}]},"id":8075,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28688:3:20","nodeType":"FunctionDefinition","parameters":{"id":8061,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8054,"mutability":"mutable","name":"p0","nameLocation":"28700:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28692:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8053,"name":"uint256","nodeType":"ElementaryTypeName","src":"28692:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8056,"mutability":"mutable","name":"p1","nameLocation":"28709:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28704:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8055,"name":"bool","nodeType":"ElementaryTypeName","src":"28704:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8058,"mutability":"mutable","name":"p2","nameLocation":"28721:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28713:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8057,"name":"address","nodeType":"ElementaryTypeName","src":"28713:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8060,"mutability":"mutable","name":"p3","nameLocation":"28733:2:20","nodeType":"VariableDeclaration","scope":8075,"src":"28725:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8059,"name":"address","nodeType":"ElementaryTypeName","src":"28725:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28691:45:20"},"returnParameters":{"id":8062,"nodeType":"ParameterList","parameters":[],"src":"28751:0:20"},"scope":12860,"src":"28679:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8097,"nodeType":"Block","src":"28942:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c75696e7432353629","id":8089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"28992:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},"value":"log(uint256,address,uint256,uint256)"},{"id":8090,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"29032:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8091,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"29036:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8092,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8081,"src":"29040:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8093,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8083,"src":"29044:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c9cd9c12a2e17a9af800ac7e9a2b379066135ecb5b197bdb13381ac61cbc59a","typeString":"literal_string \"log(uint256,address,uint256,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8087,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"28968:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8088,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"28972:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"28968:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28968:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8086,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"28952:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28952:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8096,"nodeType":"ExpressionStatement","src":"28952:96:20"}]},"id":8098,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"28876:3:20","nodeType":"FunctionDefinition","parameters":{"id":8084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8077,"mutability":"mutable","name":"p0","nameLocation":"28888:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28880:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8076,"name":"uint256","nodeType":"ElementaryTypeName","src":"28880:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8079,"mutability":"mutable","name":"p1","nameLocation":"28900:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28892:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8078,"name":"address","nodeType":"ElementaryTypeName","src":"28892:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8081,"mutability":"mutable","name":"p2","nameLocation":"28912:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28904:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8080,"name":"uint256","nodeType":"ElementaryTypeName","src":"28904:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8083,"mutability":"mutable","name":"p3","nameLocation":"28924:2:20","nodeType":"VariableDeclaration","scope":8098,"src":"28916:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8082,"name":"uint256","nodeType":"ElementaryTypeName","src":"28916:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"28879:48:20"},"returnParameters":{"id":8085,"nodeType":"ParameterList","parameters":[],"src":"28942:0:20"},"scope":12860,"src":"28867:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8120,"nodeType":"Block","src":"29142:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c737472696e6729","id":8112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29192:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},"value":"log(uint256,address,uint256,string)"},{"id":8113,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8100,"src":"29231:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8114,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8102,"src":"29235:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8115,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8104,"src":"29239:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8116,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8106,"src":"29243:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ddb06521f885b932f9898b05830c564a50fea82133f47ad308278affbd84d0bd","typeString":"literal_string \"log(uint256,address,uint256,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8110,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29168:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29172:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29168:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29168:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8109,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29152:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29152:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8119,"nodeType":"ExpressionStatement","src":"29152:95:20"}]},"id":8121,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29070:3:20","nodeType":"FunctionDefinition","parameters":{"id":8107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8100,"mutability":"mutable","name":"p0","nameLocation":"29082:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29074:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8099,"name":"uint256","nodeType":"ElementaryTypeName","src":"29074:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8102,"mutability":"mutable","name":"p1","nameLocation":"29094:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8101,"name":"address","nodeType":"ElementaryTypeName","src":"29086:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8104,"mutability":"mutable","name":"p2","nameLocation":"29106:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29098:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8103,"name":"uint256","nodeType":"ElementaryTypeName","src":"29098:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8106,"mutability":"mutable","name":"p3","nameLocation":"29124:2:20","nodeType":"VariableDeclaration","scope":8121,"src":"29110:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8105,"name":"string","nodeType":"ElementaryTypeName","src":"29110:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29073:54:20"},"returnParameters":{"id":8108,"nodeType":"ParameterList","parameters":[],"src":"29142:0:20"},"scope":12860,"src":"29061:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8143,"nodeType":"Block","src":"29332:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c626f6f6c29","id":8135,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29382:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},"value":"log(uint256,address,uint256,bool)"},{"id":8136,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8123,"src":"29419:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8137,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8125,"src":"29423:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8138,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8127,"src":"29427:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8139,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8129,"src":"29431:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f743a7c155871069fb5e6df4e57e25e572bb3015b18294cc69630b2e0ae2e5f","typeString":"literal_string \"log(uint256,address,uint256,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29358:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29362:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29358:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29358:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8132,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29342:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29342:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8142,"nodeType":"ExpressionStatement","src":"29342:93:20"}]},"id":8144,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29269:3:20","nodeType":"FunctionDefinition","parameters":{"id":8130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8123,"mutability":"mutable","name":"p0","nameLocation":"29281:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29273:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8122,"name":"uint256","nodeType":"ElementaryTypeName","src":"29273:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8125,"mutability":"mutable","name":"p1","nameLocation":"29293:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29285:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8124,"name":"address","nodeType":"ElementaryTypeName","src":"29285:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8127,"mutability":"mutable","name":"p2","nameLocation":"29305:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29297:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8126,"name":"uint256","nodeType":"ElementaryTypeName","src":"29297:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8129,"mutability":"mutable","name":"p3","nameLocation":"29314:2:20","nodeType":"VariableDeclaration","scope":8144,"src":"29309:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8128,"name":"bool","nodeType":"ElementaryTypeName","src":"29309:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29272:45:20"},"returnParameters":{"id":8131,"nodeType":"ParameterList","parameters":[],"src":"29332:0:20"},"scope":12860,"src":"29260:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8166,"nodeType":"Block","src":"29523:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c75696e743235362c6164647265737329","id":8158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29573:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},"value":"log(uint256,address,uint256,address)"},{"id":8159,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8146,"src":"29613:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8160,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8148,"src":"29617:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8161,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8150,"src":"29621:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8162,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8152,"src":"29625:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_15c127b50404cc1f9627d5115fd42bf400df548658b1002bf25e12f94854b379","typeString":"literal_string \"log(uint256,address,uint256,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8156,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29549:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29553:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29549:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29549:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8155,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29533:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29533:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8165,"nodeType":"ExpressionStatement","src":"29533:96:20"}]},"id":8167,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29457:3:20","nodeType":"FunctionDefinition","parameters":{"id":8153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8146,"mutability":"mutable","name":"p0","nameLocation":"29469:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29461:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8145,"name":"uint256","nodeType":"ElementaryTypeName","src":"29461:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8148,"mutability":"mutable","name":"p1","nameLocation":"29481:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29473:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8147,"name":"address","nodeType":"ElementaryTypeName","src":"29473:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8150,"mutability":"mutable","name":"p2","nameLocation":"29493:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29485:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8149,"name":"uint256","nodeType":"ElementaryTypeName","src":"29485:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8152,"mutability":"mutable","name":"p3","nameLocation":"29505:2:20","nodeType":"VariableDeclaration","scope":8167,"src":"29497:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8151,"name":"address","nodeType":"ElementaryTypeName","src":"29497:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29460:48:20"},"returnParameters":{"id":8154,"nodeType":"ParameterList","parameters":[],"src":"29523:0:20"},"scope":12860,"src":"29448:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8189,"nodeType":"Block","src":"29723:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c75696e7432353629","id":8181,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29773:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},"value":"log(uint256,address,string,uint256)"},{"id":8182,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8169,"src":"29812:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8183,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8171,"src":"29816:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8184,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8173,"src":"29820:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8185,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8175,"src":"29824:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46826b5dec5e8aeff4504f2c138d4e9c8aadb89d9034725f3050269a35303ba0","typeString":"literal_string \"log(uint256,address,string,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8179,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29749:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29753:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29749:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29749:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8178,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29733:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29733:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8188,"nodeType":"ExpressionStatement","src":"29733:95:20"}]},"id":8190,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29651:3:20","nodeType":"FunctionDefinition","parameters":{"id":8176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8169,"mutability":"mutable","name":"p0","nameLocation":"29663:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29655:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8168,"name":"uint256","nodeType":"ElementaryTypeName","src":"29655:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8171,"mutability":"mutable","name":"p1","nameLocation":"29675:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29667:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8170,"name":"address","nodeType":"ElementaryTypeName","src":"29667:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8173,"mutability":"mutable","name":"p2","nameLocation":"29693:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29679:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8172,"name":"string","nodeType":"ElementaryTypeName","src":"29679:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8175,"mutability":"mutable","name":"p3","nameLocation":"29705:2:20","nodeType":"VariableDeclaration","scope":8190,"src":"29697:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8174,"name":"uint256","nodeType":"ElementaryTypeName","src":"29697:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"29654:54:20"},"returnParameters":{"id":8177,"nodeType":"ParameterList","parameters":[],"src":"29723:0:20"},"scope":12860,"src":"29642:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8212,"nodeType":"Block","src":"29928:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c737472696e6729","id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29978:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},"value":"log(uint256,address,string,string)"},{"id":8205,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8192,"src":"30016:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8206,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8194,"src":"30020:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8207,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8196,"src":"30024:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8208,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8198,"src":"30028:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e128ca3cc785552dc4e62d3c73af79fb5f114dc6f0c0eb2bc0e3bdbbd4a1d3b","typeString":"literal_string \"log(uint256,address,string,string)\""},{"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"}],"expression":{"id":8202,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"29954:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"29958:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"29954:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29954:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8201,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"29938:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29938:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8211,"nodeType":"ExpressionStatement","src":"29938:94:20"}]},"id":8213,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"29850:3:20","nodeType":"FunctionDefinition","parameters":{"id":8199,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8192,"mutability":"mutable","name":"p0","nameLocation":"29862:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29854:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8191,"name":"uint256","nodeType":"ElementaryTypeName","src":"29854:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8194,"mutability":"mutable","name":"p1","nameLocation":"29874:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29866:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8193,"name":"address","nodeType":"ElementaryTypeName","src":"29866:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8196,"mutability":"mutable","name":"p2","nameLocation":"29892:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29878:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8195,"name":"string","nodeType":"ElementaryTypeName","src":"29878:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8198,"mutability":"mutable","name":"p3","nameLocation":"29910:2:20","nodeType":"VariableDeclaration","scope":8213,"src":"29896:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8197,"name":"string","nodeType":"ElementaryTypeName","src":"29896:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"29853:60:20"},"returnParameters":{"id":8200,"nodeType":"ParameterList","parameters":[],"src":"29928:0:20"},"scope":12860,"src":"29841:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8235,"nodeType":"Block","src":"30123:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c626f6f6c29","id":8227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30173:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},"value":"log(uint256,address,string,bool)"},{"id":8228,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8215,"src":"30209:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8229,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8217,"src":"30213:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8230,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8219,"src":"30217:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8231,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8221,"src":"30221:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cc32ab07df108ae88df1c6b9771e60e5cd39cbe0f0e92481af8633000db2c64b","typeString":"literal_string \"log(uint256,address,string,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8225,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30149:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30153:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30149:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30149:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8224,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30133:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30133:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8234,"nodeType":"ExpressionStatement","src":"30133:92:20"}]},"id":8236,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30054:3:20","nodeType":"FunctionDefinition","parameters":{"id":8222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8215,"mutability":"mutable","name":"p0","nameLocation":"30066:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30058:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8214,"name":"uint256","nodeType":"ElementaryTypeName","src":"30058:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8217,"mutability":"mutable","name":"p1","nameLocation":"30078:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30070:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8216,"name":"address","nodeType":"ElementaryTypeName","src":"30070:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8219,"mutability":"mutable","name":"p2","nameLocation":"30096:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30082:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8218,"name":"string","nodeType":"ElementaryTypeName","src":"30082:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8221,"mutability":"mutable","name":"p3","nameLocation":"30105:2:20","nodeType":"VariableDeclaration","scope":8236,"src":"30100:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8220,"name":"bool","nodeType":"ElementaryTypeName","src":"30100:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30057:51:20"},"returnParameters":{"id":8223,"nodeType":"ParameterList","parameters":[],"src":"30123:0:20"},"scope":12860,"src":"30045:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8258,"nodeType":"Block","src":"30319:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c737472696e672c6164647265737329","id":8250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30369:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},"value":"log(uint256,address,string,address)"},{"id":8251,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8238,"src":"30408:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8252,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8240,"src":"30412:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8253,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8242,"src":"30416:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8254,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8244,"src":"30420:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9cba8fffa4a3e6f47d307a71f619bf1719d0a75680c6c916d7776ea0341039b9","typeString":"literal_string \"log(uint256,address,string,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8248,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30345:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30349:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30345:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30345:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8247,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30329:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30329:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8257,"nodeType":"ExpressionStatement","src":"30329:95:20"}]},"id":8259,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30247:3:20","nodeType":"FunctionDefinition","parameters":{"id":8245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8238,"mutability":"mutable","name":"p0","nameLocation":"30259:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30251:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8237,"name":"uint256","nodeType":"ElementaryTypeName","src":"30251:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8240,"mutability":"mutable","name":"p1","nameLocation":"30271:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30263:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8239,"name":"address","nodeType":"ElementaryTypeName","src":"30263:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8242,"mutability":"mutable","name":"p2","nameLocation":"30289:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30275:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8241,"name":"string","nodeType":"ElementaryTypeName","src":"30275:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8244,"mutability":"mutable","name":"p3","nameLocation":"30301:2:20","nodeType":"VariableDeclaration","scope":8259,"src":"30293:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8243,"name":"address","nodeType":"ElementaryTypeName","src":"30293:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:54:20"},"returnParameters":{"id":8246,"nodeType":"ParameterList","parameters":[],"src":"30319:0:20"},"scope":12860,"src":"30238:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8281,"nodeType":"Block","src":"30509:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c75696e7432353629","id":8273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30559:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},"value":"log(uint256,address,bool,uint256)"},{"id":8274,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8261,"src":"30596:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8275,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8263,"src":"30600:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8276,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8265,"src":"30604:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8277,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8267,"src":"30608:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5abd992a7a64be8afc8745d44215dd5b4a31f8b03abd4cb03ff6565b7f51c1b1","typeString":"literal_string \"log(uint256,address,bool,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30535:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30539:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30535:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30535:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8270,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30519:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30519:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8280,"nodeType":"ExpressionStatement","src":"30519:93:20"}]},"id":8282,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30446:3:20","nodeType":"FunctionDefinition","parameters":{"id":8268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8261,"mutability":"mutable","name":"p0","nameLocation":"30458:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30450:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8260,"name":"uint256","nodeType":"ElementaryTypeName","src":"30450:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8263,"mutability":"mutable","name":"p1","nameLocation":"30470:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30462:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8262,"name":"address","nodeType":"ElementaryTypeName","src":"30462:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8265,"mutability":"mutable","name":"p2","nameLocation":"30479:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30474:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8264,"name":"bool","nodeType":"ElementaryTypeName","src":"30474:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8267,"mutability":"mutable","name":"p3","nameLocation":"30491:2:20","nodeType":"VariableDeclaration","scope":8282,"src":"30483:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8266,"name":"uint256","nodeType":"ElementaryTypeName","src":"30483:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"30449:45:20"},"returnParameters":{"id":8269,"nodeType":"ParameterList","parameters":[],"src":"30509:0:20"},"scope":12860,"src":"30437:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8304,"nodeType":"Block","src":"30703:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c737472696e6729","id":8296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30753:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},"value":"log(uint256,address,bool,string)"},{"id":8297,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8284,"src":"30789:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8298,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8286,"src":"30793:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8299,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8288,"src":"30797:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8300,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8290,"src":"30801:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_90fb06aa0f94ddb9149d9a0d0271a9fd2b331af93ebc6a4aece22e4f82154c7d","typeString":"literal_string \"log(uint256,address,bool,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8294,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30729:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30733:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30729:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30729:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8293,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30713:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30713:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8303,"nodeType":"ExpressionStatement","src":"30713:92:20"}]},"id":8305,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30634:3:20","nodeType":"FunctionDefinition","parameters":{"id":8291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8284,"mutability":"mutable","name":"p0","nameLocation":"30646:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30638:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8283,"name":"uint256","nodeType":"ElementaryTypeName","src":"30638:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8286,"mutability":"mutable","name":"p1","nameLocation":"30658:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30650:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8285,"name":"address","nodeType":"ElementaryTypeName","src":"30650:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8288,"mutability":"mutable","name":"p2","nameLocation":"30667:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30662:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8287,"name":"bool","nodeType":"ElementaryTypeName","src":"30662:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8290,"mutability":"mutable","name":"p3","nameLocation":"30685:2:20","nodeType":"VariableDeclaration","scope":8305,"src":"30671:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8289,"name":"string","nodeType":"ElementaryTypeName","src":"30671:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"30637:51:20"},"returnParameters":{"id":8292,"nodeType":"ParameterList","parameters":[],"src":"30703:0:20"},"scope":12860,"src":"30625:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8327,"nodeType":"Block","src":"30887:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c626f6f6c29","id":8319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30937:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},"value":"log(uint256,address,bool,bool)"},{"id":8320,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8307,"src":"30971:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8321,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8309,"src":"30975:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8322,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8311,"src":"30979:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8323,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8313,"src":"30983:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e351140f919f09731a4793c7bb4d5f07234902f499ced9e1e3c9639d2685c6f1","typeString":"literal_string \"log(uint256,address,bool,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"30913:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"30917:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"30913:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30913:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8316,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"30897:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30897:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8326,"nodeType":"ExpressionStatement","src":"30897:90:20"}]},"id":8328,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"30827:3:20","nodeType":"FunctionDefinition","parameters":{"id":8314,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8307,"mutability":"mutable","name":"p0","nameLocation":"30839:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30831:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8306,"name":"uint256","nodeType":"ElementaryTypeName","src":"30831:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8309,"mutability":"mutable","name":"p1","nameLocation":"30851:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30843:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8308,"name":"address","nodeType":"ElementaryTypeName","src":"30843:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8311,"mutability":"mutable","name":"p2","nameLocation":"30860:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30855:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8310,"name":"bool","nodeType":"ElementaryTypeName","src":"30855:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8313,"mutability":"mutable","name":"p3","nameLocation":"30869:2:20","nodeType":"VariableDeclaration","scope":8328,"src":"30864:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8312,"name":"bool","nodeType":"ElementaryTypeName","src":"30864:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"30830:42:20"},"returnParameters":{"id":8315,"nodeType":"ParameterList","parameters":[],"src":"30887:0:20"},"scope":12860,"src":"30818:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8350,"nodeType":"Block","src":"31072:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c626f6f6c2c6164647265737329","id":8342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31122:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},"value":"log(uint256,address,bool,address)"},{"id":8343,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"31159:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8344,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8332,"src":"31163:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8345,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8334,"src":"31167:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8346,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8336,"src":"31171:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef72c5130890d3b81e89bdbf9a039a84547328dd01c955d6bb1088aaf2252d05","typeString":"literal_string \"log(uint256,address,bool,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8340,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31098:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31102:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31098:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31098:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8339,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31082:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31082:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8349,"nodeType":"ExpressionStatement","src":"31082:93:20"}]},"id":8351,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31009:3:20","nodeType":"FunctionDefinition","parameters":{"id":8337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8330,"mutability":"mutable","name":"p0","nameLocation":"31021:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31013:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8329,"name":"uint256","nodeType":"ElementaryTypeName","src":"31013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8332,"mutability":"mutable","name":"p1","nameLocation":"31033:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31025:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8331,"name":"address","nodeType":"ElementaryTypeName","src":"31025:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8334,"mutability":"mutable","name":"p2","nameLocation":"31042:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31037:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8333,"name":"bool","nodeType":"ElementaryTypeName","src":"31037:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8336,"mutability":"mutable","name":"p3","nameLocation":"31054:2:20","nodeType":"VariableDeclaration","scope":8351,"src":"31046:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8335,"name":"address","nodeType":"ElementaryTypeName","src":"31046:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31012:45:20"},"returnParameters":{"id":8338,"nodeType":"ParameterList","parameters":[],"src":"31072:0:20"},"scope":12860,"src":"31000:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8373,"nodeType":"Block","src":"31263:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c75696e7432353629","id":8365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31313:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},"value":"log(uint256,address,address,uint256)"},{"id":8366,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8353,"src":"31353:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8367,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8355,"src":"31357:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8368,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8357,"src":"31361:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8369,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8359,"src":"31365:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_736efbb692cd4ba0c879f89673f1c5a7eb58e7bd2b833c4d30d41d3aa9c7a23a","typeString":"literal_string \"log(uint256,address,address,uint256)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8363,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31289:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8364,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31293:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31289:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31289:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8362,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31273:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31273:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8372,"nodeType":"ExpressionStatement","src":"31273:96:20"}]},"id":8374,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31197:3:20","nodeType":"FunctionDefinition","parameters":{"id":8360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8353,"mutability":"mutable","name":"p0","nameLocation":"31209:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31201:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8352,"name":"uint256","nodeType":"ElementaryTypeName","src":"31201:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8355,"mutability":"mutable","name":"p1","nameLocation":"31221:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31213:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8354,"name":"address","nodeType":"ElementaryTypeName","src":"31213:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8357,"mutability":"mutable","name":"p2","nameLocation":"31233:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31225:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8356,"name":"address","nodeType":"ElementaryTypeName","src":"31225:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8359,"mutability":"mutable","name":"p3","nameLocation":"31245:2:20","nodeType":"VariableDeclaration","scope":8374,"src":"31237:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8358,"name":"uint256","nodeType":"ElementaryTypeName","src":"31237:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31200:48:20"},"returnParameters":{"id":8361,"nodeType":"ParameterList","parameters":[],"src":"31263:0:20"},"scope":12860,"src":"31188:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8396,"nodeType":"Block","src":"31463:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c737472696e6729","id":8388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31513:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},"value":"log(uint256,address,address,string)"},{"id":8389,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8376,"src":"31552:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8390,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8378,"src":"31556:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8391,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8380,"src":"31560:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8392,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8382,"src":"31564:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_031c6f73458c2a0d841ad5d5914dceb24973d9df898a3826eec79330397cd882","typeString":"literal_string \"log(uint256,address,address,string)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8386,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31489:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31493:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31489:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31489:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8385,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31473:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31473:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8395,"nodeType":"ExpressionStatement","src":"31473:95:20"}]},"id":8397,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31391:3:20","nodeType":"FunctionDefinition","parameters":{"id":8383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8376,"mutability":"mutable","name":"p0","nameLocation":"31403:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31395:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8375,"name":"uint256","nodeType":"ElementaryTypeName","src":"31395:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8378,"mutability":"mutable","name":"p1","nameLocation":"31415:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31407:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8377,"name":"address","nodeType":"ElementaryTypeName","src":"31407:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8380,"mutability":"mutable","name":"p2","nameLocation":"31427:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31419:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8379,"name":"address","nodeType":"ElementaryTypeName","src":"31419:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8382,"mutability":"mutable","name":"p3","nameLocation":"31445:2:20","nodeType":"VariableDeclaration","scope":8397,"src":"31431:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8381,"name":"string","nodeType":"ElementaryTypeName","src":"31431:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"31394:54:20"},"returnParameters":{"id":8384,"nodeType":"ParameterList","parameters":[],"src":"31463:0:20"},"scope":12860,"src":"31382:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8419,"nodeType":"Block","src":"31653:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c626f6f6c29","id":8411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31703:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},"value":"log(uint256,address,address,bool)"},{"id":8412,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8399,"src":"31740:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8413,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8401,"src":"31744:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8414,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8403,"src":"31748:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8415,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8405,"src":"31752:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_091ffaf5e3365a794bfeb97b8157886a9ba00c981ee88d8a8fdb0cc96a5e6c1d","typeString":"literal_string \"log(uint256,address,address,bool)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8409,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31679:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8410,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31683:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31679:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31679:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8408,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31663:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31663:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8418,"nodeType":"ExpressionStatement","src":"31663:93:20"}]},"id":8420,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31590:3:20","nodeType":"FunctionDefinition","parameters":{"id":8406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8399,"mutability":"mutable","name":"p0","nameLocation":"31602:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31594:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8398,"name":"uint256","nodeType":"ElementaryTypeName","src":"31594:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8401,"mutability":"mutable","name":"p1","nameLocation":"31614:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31606:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8400,"name":"address","nodeType":"ElementaryTypeName","src":"31606:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8403,"mutability":"mutable","name":"p2","nameLocation":"31626:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31618:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8402,"name":"address","nodeType":"ElementaryTypeName","src":"31618:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8405,"mutability":"mutable","name":"p3","nameLocation":"31635:2:20","nodeType":"VariableDeclaration","scope":8420,"src":"31630:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8404,"name":"bool","nodeType":"ElementaryTypeName","src":"31630:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"31593:45:20"},"returnParameters":{"id":8407,"nodeType":"ParameterList","parameters":[],"src":"31653:0:20"},"scope":12860,"src":"31581:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8442,"nodeType":"Block","src":"31844:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f672875696e743235362c616464726573732c616464726573732c6164647265737329","id":8434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31894:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},"value":"log(uint256,address,address,address)"},{"id":8435,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8422,"src":"31934:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8436,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8424,"src":"31938:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8437,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8426,"src":"31942:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8438,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8428,"src":"31946:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2488b414330cbd4ddab2b849dacd8bed50b19b82318ec6e4a5ccdf72ee519553","typeString":"literal_string \"log(uint256,address,address,address)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8432,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"31870:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"31874:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"31870:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31870:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8431,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"31854:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31854:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8441,"nodeType":"ExpressionStatement","src":"31854:96:20"}]},"id":8443,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31778:3:20","nodeType":"FunctionDefinition","parameters":{"id":8429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8422,"mutability":"mutable","name":"p0","nameLocation":"31790:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31782:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8421,"name":"uint256","nodeType":"ElementaryTypeName","src":"31782:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8424,"mutability":"mutable","name":"p1","nameLocation":"31802:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31794:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8423,"name":"address","nodeType":"ElementaryTypeName","src":"31794:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8426,"mutability":"mutable","name":"p2","nameLocation":"31814:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31806:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8425,"name":"address","nodeType":"ElementaryTypeName","src":"31806:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8428,"mutability":"mutable","name":"p3","nameLocation":"31826:2:20","nodeType":"VariableDeclaration","scope":8443,"src":"31818:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8427,"name":"address","nodeType":"ElementaryTypeName","src":"31818:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"31781:48:20"},"returnParameters":{"id":8430,"nodeType":"ParameterList","parameters":[],"src":"31844:0:20"},"scope":12860,"src":"31769:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8465,"nodeType":"Block","src":"32044:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c75696e7432353629","id":8457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32094:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},"value":"log(string,uint256,uint256,uint256)"},{"id":8458,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8445,"src":"32133:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8459,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8447,"src":"32137:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8460,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8449,"src":"32141:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8461,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8451,"src":"32145:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a7a8785394d9aadf7945b4e3d27726dea716dc88e3f64cc80b3aa9abbd2751c5","typeString":"literal_string \"log(string,uint256,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8455,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32070:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32074:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32070:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32070:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8454,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32054:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32054:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8464,"nodeType":"ExpressionStatement","src":"32054:95:20"}]},"id":8466,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"31972:3:20","nodeType":"FunctionDefinition","parameters":{"id":8452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8445,"mutability":"mutable","name":"p0","nameLocation":"31990:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"31976:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8444,"name":"string","nodeType":"ElementaryTypeName","src":"31976:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8447,"mutability":"mutable","name":"p1","nameLocation":"32002:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"31994:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8446,"name":"uint256","nodeType":"ElementaryTypeName","src":"31994:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8449,"mutability":"mutable","name":"p2","nameLocation":"32014:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"32006:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8448,"name":"uint256","nodeType":"ElementaryTypeName","src":"32006:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8451,"mutability":"mutable","name":"p3","nameLocation":"32026:2:20","nodeType":"VariableDeclaration","scope":8466,"src":"32018:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8450,"name":"uint256","nodeType":"ElementaryTypeName","src":"32018:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31975:54:20"},"returnParameters":{"id":8453,"nodeType":"ParameterList","parameters":[],"src":"32044:0:20"},"scope":12860,"src":"31963:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8488,"nodeType":"Block","src":"32249:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c737472696e6729","id":8480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32299:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},"value":"log(string,uint256,uint256,string)"},{"id":8481,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"32337:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8482,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"32341:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8483,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"32345:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8484,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"32349:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_854b34964800cd321ba295da547026c9cfe69753667a81487e80d237f63c927f","typeString":"literal_string \"log(string,uint256,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8478,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32275:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8479,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32279:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32275:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8485,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32275:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8477,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32259:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32259:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8487,"nodeType":"ExpressionStatement","src":"32259:94:20"}]},"id":8489,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32171:3:20","nodeType":"FunctionDefinition","parameters":{"id":8475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8468,"mutability":"mutable","name":"p0","nameLocation":"32189:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32175:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8467,"name":"string","nodeType":"ElementaryTypeName","src":"32175:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8470,"mutability":"mutable","name":"p1","nameLocation":"32201:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32193:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8469,"name":"uint256","nodeType":"ElementaryTypeName","src":"32193:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8472,"mutability":"mutable","name":"p2","nameLocation":"32213:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32205:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8471,"name":"uint256","nodeType":"ElementaryTypeName","src":"32205:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8474,"mutability":"mutable","name":"p3","nameLocation":"32231:2:20","nodeType":"VariableDeclaration","scope":8489,"src":"32217:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8473,"name":"string","nodeType":"ElementaryTypeName","src":"32217:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32174:60:20"},"returnParameters":{"id":8476,"nodeType":"ParameterList","parameters":[],"src":"32249:0:20"},"scope":12860,"src":"32162:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8511,"nodeType":"Block","src":"32444:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c626f6f6c29","id":8503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32494:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},"value":"log(string,uint256,uint256,bool)"},{"id":8504,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8491,"src":"32530:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8505,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8493,"src":"32534:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8506,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8495,"src":"32538:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8507,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8497,"src":"32542:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7626db92bcbe8fb38799da91134ebae6bc6c7b10cb0db567e752720b8fd9ae0f","typeString":"literal_string \"log(string,uint256,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8501,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32470:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32474:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32470:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32470:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8500,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32454:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32454:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8510,"nodeType":"ExpressionStatement","src":"32454:92:20"}]},"id":8512,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32375:3:20","nodeType":"FunctionDefinition","parameters":{"id":8498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8491,"mutability":"mutable","name":"p0","nameLocation":"32393:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32379:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8490,"name":"string","nodeType":"ElementaryTypeName","src":"32379:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8493,"mutability":"mutable","name":"p1","nameLocation":"32405:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32397:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8492,"name":"uint256","nodeType":"ElementaryTypeName","src":"32397:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8495,"mutability":"mutable","name":"p2","nameLocation":"32417:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32409:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8494,"name":"uint256","nodeType":"ElementaryTypeName","src":"32409:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8497,"mutability":"mutable","name":"p3","nameLocation":"32426:2:20","nodeType":"VariableDeclaration","scope":8512,"src":"32421:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8496,"name":"bool","nodeType":"ElementaryTypeName","src":"32421:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32378:51:20"},"returnParameters":{"id":8499,"nodeType":"ParameterList","parameters":[],"src":"32444:0:20"},"scope":12860,"src":"32366:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8534,"nodeType":"Block","src":"32640:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c75696e743235362c6164647265737329","id":8526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32690:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},"value":"log(string,uint256,uint256,address)"},{"id":8527,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8514,"src":"32729:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8528,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8516,"src":"32733:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8529,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8518,"src":"32737:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8530,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8520,"src":"32741:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e21de278b3902dab5803384c9ad03fb95c973bc87490e387079e41c7f244f118","typeString":"literal_string \"log(string,uint256,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8524,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32666:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32670:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32666:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32666:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8523,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32650:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32650:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8533,"nodeType":"ExpressionStatement","src":"32650:95:20"}]},"id":8535,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32568:3:20","nodeType":"FunctionDefinition","parameters":{"id":8521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8514,"mutability":"mutable","name":"p0","nameLocation":"32586:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32572:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8513,"name":"string","nodeType":"ElementaryTypeName","src":"32572:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8516,"mutability":"mutable","name":"p1","nameLocation":"32598:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32590:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8515,"name":"uint256","nodeType":"ElementaryTypeName","src":"32590:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8518,"mutability":"mutable","name":"p2","nameLocation":"32610:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32602:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8517,"name":"uint256","nodeType":"ElementaryTypeName","src":"32602:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8520,"mutability":"mutable","name":"p3","nameLocation":"32622:2:20","nodeType":"VariableDeclaration","scope":8535,"src":"32614:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8519,"name":"address","nodeType":"ElementaryTypeName","src":"32614:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32571:54:20"},"returnParameters":{"id":8522,"nodeType":"ParameterList","parameters":[],"src":"32640:0:20"},"scope":12860,"src":"32559:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8557,"nodeType":"Block","src":"32845:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c75696e7432353629","id":8549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32895:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},"value":"log(string,uint256,string,uint256)"},{"id":8550,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"32933:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8551,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8539,"src":"32937:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8552,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8541,"src":"32941:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8553,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8543,"src":"32945:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c67ea9d1db4353b82da41ad5e5b85243320ba3a89399b41c13eee1ab804e84c9","typeString":"literal_string \"log(string,uint256,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8547,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"32871:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"32875:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"32871:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32871:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8546,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"32855:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32855:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8556,"nodeType":"ExpressionStatement","src":"32855:94:20"}]},"id":8558,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32767:3:20","nodeType":"FunctionDefinition","parameters":{"id":8544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8537,"mutability":"mutable","name":"p0","nameLocation":"32785:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32771:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8536,"name":"string","nodeType":"ElementaryTypeName","src":"32771:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8539,"mutability":"mutable","name":"p1","nameLocation":"32797:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32789:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8538,"name":"uint256","nodeType":"ElementaryTypeName","src":"32789:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8541,"mutability":"mutable","name":"p2","nameLocation":"32815:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32801:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8540,"name":"string","nodeType":"ElementaryTypeName","src":"32801:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8543,"mutability":"mutable","name":"p3","nameLocation":"32827:2:20","nodeType":"VariableDeclaration","scope":8558,"src":"32819:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8542,"name":"uint256","nodeType":"ElementaryTypeName","src":"32819:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32770:60:20"},"returnParameters":{"id":8545,"nodeType":"ParameterList","parameters":[],"src":"32845:0:20"},"scope":12860,"src":"32758:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8580,"nodeType":"Block","src":"33055:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c737472696e6729","id":8572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33105:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},"value":"log(string,uint256,string,string)"},{"id":8573,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8560,"src":"33142:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8574,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8562,"src":"33146:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8575,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8564,"src":"33150:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8576,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8566,"src":"33154:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ab84e1fba099b79ad99dc62242807811428e5c36b5f473a3b74e319a04c4089","typeString":"literal_string \"log(string,uint256,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8570,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33081:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33085:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33081:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33081:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8569,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33065:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33065:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8579,"nodeType":"ExpressionStatement","src":"33065:93:20"}]},"id":8581,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"32971:3:20","nodeType":"FunctionDefinition","parameters":{"id":8567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8560,"mutability":"mutable","name":"p0","nameLocation":"32989:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"32975:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8559,"name":"string","nodeType":"ElementaryTypeName","src":"32975:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8562,"mutability":"mutable","name":"p1","nameLocation":"33001:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"32993:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8561,"name":"uint256","nodeType":"ElementaryTypeName","src":"32993:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8564,"mutability":"mutable","name":"p2","nameLocation":"33019:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"33005:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8563,"name":"string","nodeType":"ElementaryTypeName","src":"33005:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8566,"mutability":"mutable","name":"p3","nameLocation":"33037:2:20","nodeType":"VariableDeclaration","scope":8581,"src":"33023:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8565,"name":"string","nodeType":"ElementaryTypeName","src":"33023:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"32974:66:20"},"returnParameters":{"id":8568,"nodeType":"ParameterList","parameters":[],"src":"33055:0:20"},"scope":12860,"src":"32962:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8603,"nodeType":"Block","src":"33255:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c626f6f6c29","id":8595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33305:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},"value":"log(string,uint256,string,bool)"},{"id":8596,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8583,"src":"33340:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8597,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8585,"src":"33344:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8598,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8587,"src":"33348:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8599,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8589,"src":"33352:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7d24491d69f4bc88a6e68cd8228b6698af11fe37f60f65c80e3f11428a8eba2f","typeString":"literal_string \"log(string,uint256,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8593,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33281:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8594,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33285:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33281:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33281:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8592,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33265:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33265:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8602,"nodeType":"ExpressionStatement","src":"33265:91:20"}]},"id":8604,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33180:3:20","nodeType":"FunctionDefinition","parameters":{"id":8590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8583,"mutability":"mutable","name":"p0","nameLocation":"33198:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33184:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8582,"name":"string","nodeType":"ElementaryTypeName","src":"33184:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8585,"mutability":"mutable","name":"p1","nameLocation":"33210:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33202:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8584,"name":"uint256","nodeType":"ElementaryTypeName","src":"33202:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8587,"mutability":"mutable","name":"p2","nameLocation":"33228:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33214:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8586,"name":"string","nodeType":"ElementaryTypeName","src":"33214:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8589,"mutability":"mutable","name":"p3","nameLocation":"33237:2:20","nodeType":"VariableDeclaration","scope":8604,"src":"33232:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8588,"name":"bool","nodeType":"ElementaryTypeName","src":"33232:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33183:57:20"},"returnParameters":{"id":8591,"nodeType":"ParameterList","parameters":[],"src":"33255:0:20"},"scope":12860,"src":"33171:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8626,"nodeType":"Block","src":"33456:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c737472696e672c6164647265737329","id":8618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33506:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},"value":"log(string,uint256,string,address)"},{"id":8619,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8606,"src":"33544:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8620,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8608,"src":"33548:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8621,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8610,"src":"33552:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8622,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8612,"src":"33556:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7c4632a48572fa2d4647539e525c9742d692f8e780540d6116f897ab472257cb","typeString":"literal_string \"log(string,uint256,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8616,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33482:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33486:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33482:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33482:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8615,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33466:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33466:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8625,"nodeType":"ExpressionStatement","src":"33466:94:20"}]},"id":8627,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33378:3:20","nodeType":"FunctionDefinition","parameters":{"id":8613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8606,"mutability":"mutable","name":"p0","nameLocation":"33396:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33382:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8605,"name":"string","nodeType":"ElementaryTypeName","src":"33382:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8608,"mutability":"mutable","name":"p1","nameLocation":"33408:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33400:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8607,"name":"uint256","nodeType":"ElementaryTypeName","src":"33400:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8610,"mutability":"mutable","name":"p2","nameLocation":"33426:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33412:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8609,"name":"string","nodeType":"ElementaryTypeName","src":"33412:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8612,"mutability":"mutable","name":"p3","nameLocation":"33438:2:20","nodeType":"VariableDeclaration","scope":8627,"src":"33430:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8611,"name":"address","nodeType":"ElementaryTypeName","src":"33430:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33381:60:20"},"returnParameters":{"id":8614,"nodeType":"ParameterList","parameters":[],"src":"33456:0:20"},"scope":12860,"src":"33369:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8649,"nodeType":"Block","src":"33651:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c75696e7432353629","id":8641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33701:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},"value":"log(string,uint256,bool,uint256)"},{"id":8642,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8629,"src":"33737:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8643,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8631,"src":"33741:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8644,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8633,"src":"33745:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8645,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8635,"src":"33749:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e41b6f6f58a4f880a3266f23bebaff73175ff4306317c20982bc2eabc04edd13","typeString":"literal_string \"log(string,uint256,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8639,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33677:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8640,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33681:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33677:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33677:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8638,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33661:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33661:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8648,"nodeType":"ExpressionStatement","src":"33661:92:20"}]},"id":8650,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33582:3:20","nodeType":"FunctionDefinition","parameters":{"id":8636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8629,"mutability":"mutable","name":"p0","nameLocation":"33600:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33586:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8628,"name":"string","nodeType":"ElementaryTypeName","src":"33586:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8631,"mutability":"mutable","name":"p1","nameLocation":"33612:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33604:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8630,"name":"uint256","nodeType":"ElementaryTypeName","src":"33604:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8633,"mutability":"mutable","name":"p2","nameLocation":"33621:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33616:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8632,"name":"bool","nodeType":"ElementaryTypeName","src":"33616:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8635,"mutability":"mutable","name":"p3","nameLocation":"33633:2:20","nodeType":"VariableDeclaration","scope":8650,"src":"33625:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8634,"name":"uint256","nodeType":"ElementaryTypeName","src":"33625:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33585:51:20"},"returnParameters":{"id":8637,"nodeType":"ParameterList","parameters":[],"src":"33651:0:20"},"scope":12860,"src":"33573:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8672,"nodeType":"Block","src":"33850:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c737472696e6729","id":8664,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"33900:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},"value":"log(string,uint256,bool,string)"},{"id":8665,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8652,"src":"33935:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8666,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8654,"src":"33939:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8667,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8656,"src":"33943:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8668,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8658,"src":"33947:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_abf73a9831ab2bdeb8da9d06a81eab42196b20e336ab670ecba37bac94839d87","typeString":"literal_string \"log(string,uint256,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8662,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"33876:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8663,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"33880:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"33876:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33876:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8661,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"33860:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33860:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8671,"nodeType":"ExpressionStatement","src":"33860:91:20"}]},"id":8673,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33775:3:20","nodeType":"FunctionDefinition","parameters":{"id":8659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8652,"mutability":"mutable","name":"p0","nameLocation":"33793:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33779:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8651,"name":"string","nodeType":"ElementaryTypeName","src":"33779:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8654,"mutability":"mutable","name":"p1","nameLocation":"33805:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33797:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8653,"name":"uint256","nodeType":"ElementaryTypeName","src":"33797:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8656,"mutability":"mutable","name":"p2","nameLocation":"33814:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33809:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8655,"name":"bool","nodeType":"ElementaryTypeName","src":"33809:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8658,"mutability":"mutable","name":"p3","nameLocation":"33832:2:20","nodeType":"VariableDeclaration","scope":8673,"src":"33818:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8657,"name":"string","nodeType":"ElementaryTypeName","src":"33818:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"33778:57:20"},"returnParameters":{"id":8660,"nodeType":"ParameterList","parameters":[],"src":"33850:0:20"},"scope":12860,"src":"33766:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8695,"nodeType":"Block","src":"34039:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c626f6f6c29","id":8687,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34089:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},"value":"log(string,uint256,bool,bool)"},{"id":8688,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8675,"src":"34122:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8689,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8677,"src":"34126:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8690,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8679,"src":"34130:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8691,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8681,"src":"34134:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_354c36d6798abb81721fb2beaef51c92cab9d4cf16be10f0a4724648784ecb76","typeString":"literal_string \"log(string,uint256,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8685,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34065:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34069:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34065:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34065:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8684,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34049:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34049:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8694,"nodeType":"ExpressionStatement","src":"34049:89:20"}]},"id":8696,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"33973:3:20","nodeType":"FunctionDefinition","parameters":{"id":8682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8675,"mutability":"mutable","name":"p0","nameLocation":"33991:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"33977:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8674,"name":"string","nodeType":"ElementaryTypeName","src":"33977:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8677,"mutability":"mutable","name":"p1","nameLocation":"34003:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"33995:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8676,"name":"uint256","nodeType":"ElementaryTypeName","src":"33995:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8679,"mutability":"mutable","name":"p2","nameLocation":"34012:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"34007:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8678,"name":"bool","nodeType":"ElementaryTypeName","src":"34007:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8681,"mutability":"mutable","name":"p3","nameLocation":"34021:2:20","nodeType":"VariableDeclaration","scope":8696,"src":"34016:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8680,"name":"bool","nodeType":"ElementaryTypeName","src":"34016:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33976:48:20"},"returnParameters":{"id":8683,"nodeType":"ParameterList","parameters":[],"src":"34039:0:20"},"scope":12860,"src":"33964:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8718,"nodeType":"Block","src":"34229:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c626f6f6c2c6164647265737329","id":8710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34279:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},"value":"log(string,uint256,bool,address)"},{"id":8711,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8698,"src":"34315:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8712,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8700,"src":"34319:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8713,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8702,"src":"34323:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":8714,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8704,"src":"34327:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0e95b9833a204b7ba633bd63a60ec523906565f2c86d8936f7ff3e9937880f7","typeString":"literal_string \"log(string,uint256,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8708,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34255:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34259:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34255:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34255:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8707,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34239:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34239:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8717,"nodeType":"ExpressionStatement","src":"34239:92:20"}]},"id":8719,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34160:3:20","nodeType":"FunctionDefinition","parameters":{"id":8705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8698,"mutability":"mutable","name":"p0","nameLocation":"34178:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34164:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8697,"name":"string","nodeType":"ElementaryTypeName","src":"34164:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8700,"mutability":"mutable","name":"p1","nameLocation":"34190:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34182:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8699,"name":"uint256","nodeType":"ElementaryTypeName","src":"34182:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8702,"mutability":"mutable","name":"p2","nameLocation":"34199:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34194:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8701,"name":"bool","nodeType":"ElementaryTypeName","src":"34194:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":8704,"mutability":"mutable","name":"p3","nameLocation":"34211:2:20","nodeType":"VariableDeclaration","scope":8719,"src":"34203:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8703,"name":"address","nodeType":"ElementaryTypeName","src":"34203:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34163:51:20"},"returnParameters":{"id":8706,"nodeType":"ParameterList","parameters":[],"src":"34229:0:20"},"scope":12860,"src":"34151:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8741,"nodeType":"Block","src":"34425:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c75696e7432353629","id":8733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34475:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},"value":"log(string,uint256,address,uint256)"},{"id":8734,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8721,"src":"34514:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8735,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8723,"src":"34518:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8736,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8725,"src":"34522:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8737,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8727,"src":"34526:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4f04fdc6b6271b036262883bae0d1ea5155524010fed0023b5c71c574fb937ff","typeString":"literal_string \"log(string,uint256,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8731,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34451:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8732,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34455:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34451:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34451:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8730,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34435:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34435:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8740,"nodeType":"ExpressionStatement","src":"34435:95:20"}]},"id":8742,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34353:3:20","nodeType":"FunctionDefinition","parameters":{"id":8728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8721,"mutability":"mutable","name":"p0","nameLocation":"34371:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34357:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8720,"name":"string","nodeType":"ElementaryTypeName","src":"34357:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8723,"mutability":"mutable","name":"p1","nameLocation":"34383:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34375:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8722,"name":"uint256","nodeType":"ElementaryTypeName","src":"34375:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8725,"mutability":"mutable","name":"p2","nameLocation":"34395:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34387:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8724,"name":"address","nodeType":"ElementaryTypeName","src":"34387:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8727,"mutability":"mutable","name":"p3","nameLocation":"34407:2:20","nodeType":"VariableDeclaration","scope":8742,"src":"34399:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8726,"name":"uint256","nodeType":"ElementaryTypeName","src":"34399:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34356:54:20"},"returnParameters":{"id":8729,"nodeType":"ParameterList","parameters":[],"src":"34425:0:20"},"scope":12860,"src":"34344:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8764,"nodeType":"Block","src":"34630:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c737472696e6729","id":8756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34680:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},"value":"log(string,uint256,address,string)"},{"id":8757,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8744,"src":"34718:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8758,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8746,"src":"34722:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8759,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8748,"src":"34726:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8760,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8750,"src":"34730:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9ffb2f93ff043d0a86ff6dc2ddf23d28dfc95ecde23d406177dfe6f19d070d2b","typeString":"literal_string \"log(string,uint256,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8754,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34656:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8755,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34660:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34656:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34656:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8753,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34640:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34640:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8763,"nodeType":"ExpressionStatement","src":"34640:94:20"}]},"id":8765,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34552:3:20","nodeType":"FunctionDefinition","parameters":{"id":8751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8744,"mutability":"mutable","name":"p0","nameLocation":"34570:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34556:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8743,"name":"string","nodeType":"ElementaryTypeName","src":"34556:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8746,"mutability":"mutable","name":"p1","nameLocation":"34582:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34574:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8745,"name":"uint256","nodeType":"ElementaryTypeName","src":"34574:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8748,"mutability":"mutable","name":"p2","nameLocation":"34594:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34586:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8747,"name":"address","nodeType":"ElementaryTypeName","src":"34586:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8750,"mutability":"mutable","name":"p3","nameLocation":"34612:2:20","nodeType":"VariableDeclaration","scope":8765,"src":"34598:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8749,"name":"string","nodeType":"ElementaryTypeName","src":"34598:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"34555:60:20"},"returnParameters":{"id":8752,"nodeType":"ParameterList","parameters":[],"src":"34630:0:20"},"scope":12860,"src":"34543:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8787,"nodeType":"Block","src":"34825:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c626f6f6c29","id":8779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"34875:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},"value":"log(string,uint256,address,bool)"},{"id":8780,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8767,"src":"34911:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8781,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8769,"src":"34915:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8782,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8771,"src":"34919:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8783,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8773,"src":"34923:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_82112a429657399db0318af6ca78ff56626aa907939e7cf56b60b07035dcc190","typeString":"literal_string \"log(string,uint256,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8777,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"34851:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"34855:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"34851:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34851:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8776,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"34835:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34835:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8786,"nodeType":"ExpressionStatement","src":"34835:92:20"}]},"id":8788,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34756:3:20","nodeType":"FunctionDefinition","parameters":{"id":8774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8767,"mutability":"mutable","name":"p0","nameLocation":"34774:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34760:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8766,"name":"string","nodeType":"ElementaryTypeName","src":"34760:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8769,"mutability":"mutable","name":"p1","nameLocation":"34786:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34778:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8768,"name":"uint256","nodeType":"ElementaryTypeName","src":"34778:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8771,"mutability":"mutable","name":"p2","nameLocation":"34798:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34790:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8770,"name":"address","nodeType":"ElementaryTypeName","src":"34790:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8773,"mutability":"mutable","name":"p3","nameLocation":"34807:2:20","nodeType":"VariableDeclaration","scope":8788,"src":"34802:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8772,"name":"bool","nodeType":"ElementaryTypeName","src":"34802:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"34759:51:20"},"returnParameters":{"id":8775,"nodeType":"ParameterList","parameters":[],"src":"34825:0:20"},"scope":12860,"src":"34747:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8810,"nodeType":"Block","src":"35021:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c75696e743235362c616464726573732c6164647265737329","id":8802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35071:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},"value":"log(string,uint256,address,address)"},{"id":8803,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8790,"src":"35110:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8804,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8792,"src":"35114:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8805,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8794,"src":"35118:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":8806,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8796,"src":"35122:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ea2b7aea4409bbe3ef8ca502419b3574b002a6123a1f864be076316b8efcd1d","typeString":"literal_string \"log(string,uint256,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8800,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35047:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35051:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35047:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35047:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8799,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35031:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35031:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8809,"nodeType":"ExpressionStatement","src":"35031:95:20"}]},"id":8811,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"34949:3:20","nodeType":"FunctionDefinition","parameters":{"id":8797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8790,"mutability":"mutable","name":"p0","nameLocation":"34967:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34953:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8789,"name":"string","nodeType":"ElementaryTypeName","src":"34953:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8792,"mutability":"mutable","name":"p1","nameLocation":"34979:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34971:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8791,"name":"uint256","nodeType":"ElementaryTypeName","src":"34971:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8794,"mutability":"mutable","name":"p2","nameLocation":"34991:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34983:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8793,"name":"address","nodeType":"ElementaryTypeName","src":"34983:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":8796,"mutability":"mutable","name":"p3","nameLocation":"35003:2:20","nodeType":"VariableDeclaration","scope":8811,"src":"34995:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8795,"name":"address","nodeType":"ElementaryTypeName","src":"34995:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"34952:54:20"},"returnParameters":{"id":8798,"nodeType":"ParameterList","parameters":[],"src":"35021:0:20"},"scope":12860,"src":"34940:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8833,"nodeType":"Block","src":"35226:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c75696e7432353629","id":8825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35276:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},"value":"log(string,string,uint256,uint256)"},{"id":8826,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8813,"src":"35314:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8827,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8815,"src":"35318:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8828,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8817,"src":"35322:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8829,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8819,"src":"35326:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f45d7d2cd1abe030b09347ce21ce66b503ffdad3e7a1ad6df9e55da5d9367776","typeString":"literal_string \"log(string,string,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8823,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35252:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35256:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35252:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35252:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8822,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35236:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35236:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8832,"nodeType":"ExpressionStatement","src":"35236:94:20"}]},"id":8834,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35148:3:20","nodeType":"FunctionDefinition","parameters":{"id":8820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8813,"mutability":"mutable","name":"p0","nameLocation":"35166:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35152:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8812,"name":"string","nodeType":"ElementaryTypeName","src":"35152:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8815,"mutability":"mutable","name":"p1","nameLocation":"35184:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35170:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8814,"name":"string","nodeType":"ElementaryTypeName","src":"35170:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8817,"mutability":"mutable","name":"p2","nameLocation":"35196:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35188:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8816,"name":"uint256","nodeType":"ElementaryTypeName","src":"35188:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8819,"mutability":"mutable","name":"p3","nameLocation":"35208:2:20","nodeType":"VariableDeclaration","scope":8834,"src":"35200:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8818,"name":"uint256","nodeType":"ElementaryTypeName","src":"35200:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35151:60:20"},"returnParameters":{"id":8821,"nodeType":"ParameterList","parameters":[],"src":"35226:0:20"},"scope":12860,"src":"35139:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8856,"nodeType":"Block","src":"35436:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c737472696e6729","id":8848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35486:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},"value":"log(string,string,uint256,string)"},{"id":8849,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8836,"src":"35523:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8850,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8838,"src":"35527:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8851,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8840,"src":"35531:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8852,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8842,"src":"35535:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d1a971aebb8f2fbb7526a470ca55e409230d59ee63217090d29ce11b768e909","typeString":"literal_string \"log(string,string,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8846,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35462:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8847,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35466:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35462:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35462:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8845,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35446:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35446:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8855,"nodeType":"ExpressionStatement","src":"35446:93:20"}]},"id":8857,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35352:3:20","nodeType":"FunctionDefinition","parameters":{"id":8843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8836,"mutability":"mutable","name":"p0","nameLocation":"35370:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35356:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8835,"name":"string","nodeType":"ElementaryTypeName","src":"35356:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8838,"mutability":"mutable","name":"p1","nameLocation":"35388:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35374:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8837,"name":"string","nodeType":"ElementaryTypeName","src":"35374:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8840,"mutability":"mutable","name":"p2","nameLocation":"35400:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35392:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8839,"name":"uint256","nodeType":"ElementaryTypeName","src":"35392:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8842,"mutability":"mutable","name":"p3","nameLocation":"35418:2:20","nodeType":"VariableDeclaration","scope":8857,"src":"35404:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8841,"name":"string","nodeType":"ElementaryTypeName","src":"35404:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"35355:66:20"},"returnParameters":{"id":8844,"nodeType":"ParameterList","parameters":[],"src":"35436:0:20"},"scope":12860,"src":"35343:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8879,"nodeType":"Block","src":"35636:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c626f6f6c29","id":8871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35686:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},"value":"log(string,string,uint256,bool)"},{"id":8872,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8859,"src":"35721:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8873,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8861,"src":"35725:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8874,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8863,"src":"35729:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8875,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8865,"src":"35733:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c3a8a6546b97cf01562dd9ca797c4955f3bab9bc163d02081737c20b686446d2","typeString":"literal_string \"log(string,string,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8869,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35662:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8870,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35666:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35662:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35662:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8868,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35646:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35646:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8878,"nodeType":"ExpressionStatement","src":"35646:91:20"}]},"id":8880,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35561:3:20","nodeType":"FunctionDefinition","parameters":{"id":8866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8859,"mutability":"mutable","name":"p0","nameLocation":"35579:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35565:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8858,"name":"string","nodeType":"ElementaryTypeName","src":"35565:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8861,"mutability":"mutable","name":"p1","nameLocation":"35597:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35583:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8860,"name":"string","nodeType":"ElementaryTypeName","src":"35583:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8863,"mutability":"mutable","name":"p2","nameLocation":"35609:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35601:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8862,"name":"uint256","nodeType":"ElementaryTypeName","src":"35601:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8865,"mutability":"mutable","name":"p3","nameLocation":"35618:2:20","nodeType":"VariableDeclaration","scope":8880,"src":"35613:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8864,"name":"bool","nodeType":"ElementaryTypeName","src":"35613:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"35564:57:20"},"returnParameters":{"id":8867,"nodeType":"ParameterList","parameters":[],"src":"35636:0:20"},"scope":12860,"src":"35552:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8902,"nodeType":"Block","src":"35837:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c75696e743235362c6164647265737329","id":8894,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"35887:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},"value":"log(string,string,uint256,address)"},{"id":8895,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"35925:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8896,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8884,"src":"35929:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8897,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8886,"src":"35933:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":8898,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8888,"src":"35937:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1023f7b286378387abf24b7020dbd1ddde789519cf7f13da727146a2a8a61fc6","typeString":"literal_string \"log(string,string,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8892,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"35863:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"35867:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"35863:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35863:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8891,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"35847:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35847:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8901,"nodeType":"ExpressionStatement","src":"35847:94:20"}]},"id":8903,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35759:3:20","nodeType":"FunctionDefinition","parameters":{"id":8889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8882,"mutability":"mutable","name":"p0","nameLocation":"35777:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35763:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8881,"name":"string","nodeType":"ElementaryTypeName","src":"35763:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8884,"mutability":"mutable","name":"p1","nameLocation":"35795:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35781:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8883,"name":"string","nodeType":"ElementaryTypeName","src":"35781:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8886,"mutability":"mutable","name":"p2","nameLocation":"35807:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35799:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8885,"name":"uint256","nodeType":"ElementaryTypeName","src":"35799:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":8888,"mutability":"mutable","name":"p3","nameLocation":"35819:2:20","nodeType":"VariableDeclaration","scope":8903,"src":"35811:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8887,"name":"address","nodeType":"ElementaryTypeName","src":"35811:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"35762:60:20"},"returnParameters":{"id":8890,"nodeType":"ParameterList","parameters":[],"src":"35837:0:20"},"scope":12860,"src":"35750:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8925,"nodeType":"Block","src":"36047:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c75696e7432353629","id":8917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36097:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},"value":"log(string,string,string,uint256)"},{"id":8918,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8905,"src":"36134:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8919,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8907,"src":"36138:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8920,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8909,"src":"36142:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8921,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8911,"src":"36146:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8eafb02b2f27070f4cef3c26d2b8a8d041c7bf077352780062dc5a70550ac689","typeString":"literal_string \"log(string,string,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":8915,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36073:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36077:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36073:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36073:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8914,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36057:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36057:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8924,"nodeType":"ExpressionStatement","src":"36057:93:20"}]},"id":8926,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"35963:3:20","nodeType":"FunctionDefinition","parameters":{"id":8912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8905,"mutability":"mutable","name":"p0","nameLocation":"35981:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"35967:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8904,"name":"string","nodeType":"ElementaryTypeName","src":"35967:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8907,"mutability":"mutable","name":"p1","nameLocation":"35999:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"35985:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8906,"name":"string","nodeType":"ElementaryTypeName","src":"35985:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8909,"mutability":"mutable","name":"p2","nameLocation":"36017:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"36003:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8908,"name":"string","nodeType":"ElementaryTypeName","src":"36003:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8911,"mutability":"mutable","name":"p3","nameLocation":"36029:2:20","nodeType":"VariableDeclaration","scope":8926,"src":"36021:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8910,"name":"uint256","nodeType":"ElementaryTypeName","src":"36021:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"35966:66:20"},"returnParameters":{"id":8913,"nodeType":"ParameterList","parameters":[],"src":"36047:0:20"},"scope":12860,"src":"35954:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8948,"nodeType":"Block","src":"36262:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c737472696e6729","id":8940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36312:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},"value":"log(string,string,string,string)"},{"id":8941,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8928,"src":"36348:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8942,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8930,"src":"36352:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8943,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8932,"src":"36356:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8944,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8934,"src":"36360:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_de68f20a8e88f68d54c5aa294860ee37b58680632686e2f1101e4e042a2cbcbe","typeString":"literal_string \"log(string,string,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":8938,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36288:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36292:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36288:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36288:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8937,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36272:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36272:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8947,"nodeType":"ExpressionStatement","src":"36272:92:20"}]},"id":8949,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36172:3:20","nodeType":"FunctionDefinition","parameters":{"id":8935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8928,"mutability":"mutable","name":"p0","nameLocation":"36190:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36176:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8927,"name":"string","nodeType":"ElementaryTypeName","src":"36176:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8930,"mutability":"mutable","name":"p1","nameLocation":"36208:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36194:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8929,"name":"string","nodeType":"ElementaryTypeName","src":"36194:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8932,"mutability":"mutable","name":"p2","nameLocation":"36226:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36212:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8931,"name":"string","nodeType":"ElementaryTypeName","src":"36212:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8934,"mutability":"mutable","name":"p3","nameLocation":"36244:2:20","nodeType":"VariableDeclaration","scope":8949,"src":"36230:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8933,"name":"string","nodeType":"ElementaryTypeName","src":"36230:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36175:72:20"},"returnParameters":{"id":8936,"nodeType":"ParameterList","parameters":[],"src":"36262:0:20"},"scope":12860,"src":"36163:208:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8971,"nodeType":"Block","src":"36467:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c626f6f6c29","id":8963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36517:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},"value":"log(string,string,string,bool)"},{"id":8964,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8951,"src":"36551:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8965,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8953,"src":"36555:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8966,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8955,"src":"36559:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8967,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8957,"src":"36563:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2c1754ed9d3bc50669c3e71e3115dc4403f3cff35aa9b6b58799f80b5496f332","typeString":"literal_string \"log(string,string,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":8961,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36493:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36497:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36493:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36493:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8960,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36477:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36477:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8970,"nodeType":"ExpressionStatement","src":"36477:90:20"}]},"id":8972,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36386:3:20","nodeType":"FunctionDefinition","parameters":{"id":8958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8951,"mutability":"mutable","name":"p0","nameLocation":"36404:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36390:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8950,"name":"string","nodeType":"ElementaryTypeName","src":"36390:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8953,"mutability":"mutable","name":"p1","nameLocation":"36422:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36408:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8952,"name":"string","nodeType":"ElementaryTypeName","src":"36408:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8955,"mutability":"mutable","name":"p2","nameLocation":"36440:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36426:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8954,"name":"string","nodeType":"ElementaryTypeName","src":"36426:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8957,"mutability":"mutable","name":"p3","nameLocation":"36449:2:20","nodeType":"VariableDeclaration","scope":8972,"src":"36444:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8956,"name":"bool","nodeType":"ElementaryTypeName","src":"36444:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"36389:63:20"},"returnParameters":{"id":8959,"nodeType":"ParameterList","parameters":[],"src":"36467:0:20"},"scope":12860,"src":"36377:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":8994,"nodeType":"Block","src":"36673:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c737472696e672c6164647265737329","id":8986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36723:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,address)\""},"value":"log(string,string,string,address)"},{"id":8987,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8974,"src":"36760:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8988,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8976,"src":"36764:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8989,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8978,"src":"36768:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":8990,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8980,"src":"36772:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d572f449cf1e446ea3ace51a34ce30628f4f1588a39dc5d550cefb210c5bb16","typeString":"literal_string \"log(string,string,string,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"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":8984,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36699:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36703:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36699:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":8991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36699:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8983,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36683:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":8992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36683:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8993,"nodeType":"ExpressionStatement","src":"36683:93:20"}]},"id":8995,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36589:3:20","nodeType":"FunctionDefinition","parameters":{"id":8981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8974,"mutability":"mutable","name":"p0","nameLocation":"36607:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36593:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8973,"name":"string","nodeType":"ElementaryTypeName","src":"36593:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8976,"mutability":"mutable","name":"p1","nameLocation":"36625:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36611:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8975,"name":"string","nodeType":"ElementaryTypeName","src":"36611:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8978,"mutability":"mutable","name":"p2","nameLocation":"36643:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36629:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8977,"name":"string","nodeType":"ElementaryTypeName","src":"36629:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8980,"mutability":"mutable","name":"p3","nameLocation":"36655:2:20","nodeType":"VariableDeclaration","scope":8995,"src":"36647:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8979,"name":"address","nodeType":"ElementaryTypeName","src":"36647:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"36592:66:20"},"returnParameters":{"id":8982,"nodeType":"ParameterList","parameters":[],"src":"36673:0:20"},"scope":12860,"src":"36580:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9017,"nodeType":"Block","src":"36873:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c75696e7432353629","id":9009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36923:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},"value":"log(string,string,bool,uint256)"},{"id":9010,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8997,"src":"36958:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9011,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8999,"src":"36962:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9012,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9001,"src":"36966:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9013,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9003,"src":"36970:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6aefad2ecee6d91421acc41f939bded56985ac5c9cf6e49011ee16b1bb31729","typeString":"literal_string \"log(string,string,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9007,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"36899:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9008,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"36903:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"36899:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36899:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9006,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"36883:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36883:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9016,"nodeType":"ExpressionStatement","src":"36883:91:20"}]},"id":9018,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36798:3:20","nodeType":"FunctionDefinition","parameters":{"id":9004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8997,"mutability":"mutable","name":"p0","nameLocation":"36816:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36802:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8996,"name":"string","nodeType":"ElementaryTypeName","src":"36802:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":8999,"mutability":"mutable","name":"p1","nameLocation":"36834:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36820:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8998,"name":"string","nodeType":"ElementaryTypeName","src":"36820:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9001,"mutability":"mutable","name":"p2","nameLocation":"36843:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36838:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9000,"name":"bool","nodeType":"ElementaryTypeName","src":"36838:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9003,"mutability":"mutable","name":"p3","nameLocation":"36855:2:20","nodeType":"VariableDeclaration","scope":9018,"src":"36847:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9002,"name":"uint256","nodeType":"ElementaryTypeName","src":"36847:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36801:57:20"},"returnParameters":{"id":9005,"nodeType":"ParameterList","parameters":[],"src":"36873:0:20"},"scope":12860,"src":"36789:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9040,"nodeType":"Block","src":"37077:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c737472696e6729","id":9032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37127:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},"value":"log(string,string,bool,string)"},{"id":9033,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9020,"src":"37161:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9034,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9022,"src":"37165:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9035,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9024,"src":"37169:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9036,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9026,"src":"37173:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5e84b0ea51a130c3c7e1443097f28cb5c541ea8487836ae7cb1ca9c6e683699b","typeString":"literal_string \"log(string,string,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9030,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37103:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37107:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37103:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37103:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9029,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37087:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37087:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9039,"nodeType":"ExpressionStatement","src":"37087:90:20"}]},"id":9041,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"36996:3:20","nodeType":"FunctionDefinition","parameters":{"id":9027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9020,"mutability":"mutable","name":"p0","nameLocation":"37014:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37000:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9019,"name":"string","nodeType":"ElementaryTypeName","src":"37000:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9022,"mutability":"mutable","name":"p1","nameLocation":"37032:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37018:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9021,"name":"string","nodeType":"ElementaryTypeName","src":"37018:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9024,"mutability":"mutable","name":"p2","nameLocation":"37041:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37036:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9023,"name":"bool","nodeType":"ElementaryTypeName","src":"37036:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9026,"mutability":"mutable","name":"p3","nameLocation":"37059:2:20","nodeType":"VariableDeclaration","scope":9041,"src":"37045:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9025,"name":"string","nodeType":"ElementaryTypeName","src":"37045:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"36999:63:20"},"returnParameters":{"id":9028,"nodeType":"ParameterList","parameters":[],"src":"37077:0:20"},"scope":12860,"src":"36987:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9063,"nodeType":"Block","src":"37271:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c626f6f6c29","id":9055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37321:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},"value":"log(string,string,bool,bool)"},{"id":9056,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9043,"src":"37353:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9057,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9045,"src":"37357:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9058,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9047,"src":"37361:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9059,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9049,"src":"37365:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_40785869c0ea63ca2ccbcf7415552989c2f1ce04f151eb3b2bd695c64d21af10","typeString":"literal_string \"log(string,string,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9053,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37297:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37301:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37297:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37297:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9052,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37281:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37281:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9062,"nodeType":"ExpressionStatement","src":"37281:88:20"}]},"id":9064,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37199:3:20","nodeType":"FunctionDefinition","parameters":{"id":9050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9043,"mutability":"mutable","name":"p0","nameLocation":"37217:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37203:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9042,"name":"string","nodeType":"ElementaryTypeName","src":"37203:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9045,"mutability":"mutable","name":"p1","nameLocation":"37235:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37221:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9044,"name":"string","nodeType":"ElementaryTypeName","src":"37221:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9047,"mutability":"mutable","name":"p2","nameLocation":"37244:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37239:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9046,"name":"bool","nodeType":"ElementaryTypeName","src":"37239:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9049,"mutability":"mutable","name":"p3","nameLocation":"37253:2:20","nodeType":"VariableDeclaration","scope":9064,"src":"37248:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9048,"name":"bool","nodeType":"ElementaryTypeName","src":"37248:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"37202:54:20"},"returnParameters":{"id":9051,"nodeType":"ParameterList","parameters":[],"src":"37271:0:20"},"scope":12860,"src":"37190:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9086,"nodeType":"Block","src":"37466:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c626f6f6c2c6164647265737329","id":9078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37516:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},"value":"log(string,string,bool,address)"},{"id":9079,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9066,"src":"37551:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9080,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9068,"src":"37555:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9081,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9070,"src":"37559:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9082,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9072,"src":"37563:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c371c7db0a4b104babdbdf00d079eb75cb5aa1d401c4fb726c8e5559029df84d","typeString":"literal_string \"log(string,string,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9076,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37492:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9077,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37496:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37492:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37492:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9075,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37476:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37476:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9085,"nodeType":"ExpressionStatement","src":"37476:91:20"}]},"id":9087,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37391:3:20","nodeType":"FunctionDefinition","parameters":{"id":9073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9066,"mutability":"mutable","name":"p0","nameLocation":"37409:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37395:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9065,"name":"string","nodeType":"ElementaryTypeName","src":"37395:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9068,"mutability":"mutable","name":"p1","nameLocation":"37427:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37413:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9067,"name":"string","nodeType":"ElementaryTypeName","src":"37413:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9070,"mutability":"mutable","name":"p2","nameLocation":"37436:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37431:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9069,"name":"bool","nodeType":"ElementaryTypeName","src":"37431:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9072,"mutability":"mutable","name":"p3","nameLocation":"37448:2:20","nodeType":"VariableDeclaration","scope":9087,"src":"37440:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9071,"name":"address","nodeType":"ElementaryTypeName","src":"37440:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"37394:57:20"},"returnParameters":{"id":9074,"nodeType":"ParameterList","parameters":[],"src":"37466:0:20"},"scope":12860,"src":"37382:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9109,"nodeType":"Block","src":"37667:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c75696e7432353629","id":9101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37717:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},"value":"log(string,string,address,uint256)"},{"id":9102,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9089,"src":"37755:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9103,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9091,"src":"37759:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9104,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9093,"src":"37763:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9105,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9095,"src":"37767:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7cc3c607046f21bb2d1cc4864448de2e6c44029beb9bfc36cf6ca90777ae5a00","typeString":"literal_string \"log(string,string,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9099,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37693:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37697:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37693:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37693:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9098,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37677:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37677:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9108,"nodeType":"ExpressionStatement","src":"37677:94:20"}]},"id":9110,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37589:3:20","nodeType":"FunctionDefinition","parameters":{"id":9096,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9089,"mutability":"mutable","name":"p0","nameLocation":"37607:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37593:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9088,"name":"string","nodeType":"ElementaryTypeName","src":"37593:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9091,"mutability":"mutable","name":"p1","nameLocation":"37625:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37611:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9090,"name":"string","nodeType":"ElementaryTypeName","src":"37611:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9093,"mutability":"mutable","name":"p2","nameLocation":"37637:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37629:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9092,"name":"address","nodeType":"ElementaryTypeName","src":"37629:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9095,"mutability":"mutable","name":"p3","nameLocation":"37649:2:20","nodeType":"VariableDeclaration","scope":9110,"src":"37641:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9094,"name":"uint256","nodeType":"ElementaryTypeName","src":"37641:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37592:60:20"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[],"src":"37667:0:20"},"scope":12860,"src":"37580:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9132,"nodeType":"Block","src":"37877:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c737472696e6729","id":9124,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"37927:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},"value":"log(string,string,address,string)"},{"id":9125,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9112,"src":"37964:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9126,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9114,"src":"37968:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9127,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9116,"src":"37972:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9128,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9118,"src":"37976:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_eb1bff805ef136c60bfed230c7b932a14c6f7a62608edeaf56f8f2c0575d25b6","typeString":"literal_string \"log(string,string,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9122,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"37903:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9123,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"37907:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"37903:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37903:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9121,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"37887:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37887:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9131,"nodeType":"ExpressionStatement","src":"37887:93:20"}]},"id":9133,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"37793:3:20","nodeType":"FunctionDefinition","parameters":{"id":9119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9112,"mutability":"mutable","name":"p0","nameLocation":"37811:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37797:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9111,"name":"string","nodeType":"ElementaryTypeName","src":"37797:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9114,"mutability":"mutable","name":"p1","nameLocation":"37829:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37815:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9113,"name":"string","nodeType":"ElementaryTypeName","src":"37815:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9116,"mutability":"mutable","name":"p2","nameLocation":"37841:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37833:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9115,"name":"address","nodeType":"ElementaryTypeName","src":"37833:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9118,"mutability":"mutable","name":"p3","nameLocation":"37859:2:20","nodeType":"VariableDeclaration","scope":9133,"src":"37845:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9117,"name":"string","nodeType":"ElementaryTypeName","src":"37845:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"37796:66:20"},"returnParameters":{"id":9120,"nodeType":"ParameterList","parameters":[],"src":"37877:0:20"},"scope":12860,"src":"37784:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9155,"nodeType":"Block","src":"38077:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c626f6f6c29","id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38127:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},"value":"log(string,string,address,bool)"},{"id":9148,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9135,"src":"38162:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9149,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9137,"src":"38166:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9150,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9139,"src":"38170:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9151,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9141,"src":"38174:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5ccd4e373eb6ae26626c8607ae861c55cda5fd321363edde7e6328e09072ba63","typeString":"literal_string \"log(string,string,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9145,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38103:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9146,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38107:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38103:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38103:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9144,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38087:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38087:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9154,"nodeType":"ExpressionStatement","src":"38087:91:20"}]},"id":9156,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38002:3:20","nodeType":"FunctionDefinition","parameters":{"id":9142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9135,"mutability":"mutable","name":"p0","nameLocation":"38020:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38006:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9134,"name":"string","nodeType":"ElementaryTypeName","src":"38006:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9137,"mutability":"mutable","name":"p1","nameLocation":"38038:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38024:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9136,"name":"string","nodeType":"ElementaryTypeName","src":"38024:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9139,"mutability":"mutable","name":"p2","nameLocation":"38050:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38042:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9138,"name":"address","nodeType":"ElementaryTypeName","src":"38042:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9141,"mutability":"mutable","name":"p3","nameLocation":"38059:2:20","nodeType":"VariableDeclaration","scope":9156,"src":"38054:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9140,"name":"bool","nodeType":"ElementaryTypeName","src":"38054:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38005:57:20"},"returnParameters":{"id":9143,"nodeType":"ParameterList","parameters":[],"src":"38077:0:20"},"scope":12860,"src":"37993:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9178,"nodeType":"Block","src":"38278:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c737472696e672c616464726573732c6164647265737329","id":9170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38328:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},"value":"log(string,string,address,address)"},{"id":9171,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9158,"src":"38366:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9172,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9160,"src":"38370:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9173,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9162,"src":"38374:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9174,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9164,"src":"38378:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_439c7befd1b6bfcb9bd001c1f3a991ef43c070f0ace0c190dd9f16d7ae338a5d","typeString":"literal_string \"log(string,string,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9168,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38304:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38308:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38304:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38304:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9167,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38288:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38288:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9177,"nodeType":"ExpressionStatement","src":"38288:94:20"}]},"id":9179,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38200:3:20","nodeType":"FunctionDefinition","parameters":{"id":9165,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9158,"mutability":"mutable","name":"p0","nameLocation":"38218:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38204:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9157,"name":"string","nodeType":"ElementaryTypeName","src":"38204:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9160,"mutability":"mutable","name":"p1","nameLocation":"38236:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38222:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9159,"name":"string","nodeType":"ElementaryTypeName","src":"38222:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9162,"mutability":"mutable","name":"p2","nameLocation":"38248:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38240:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9161,"name":"address","nodeType":"ElementaryTypeName","src":"38240:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9164,"mutability":"mutable","name":"p3","nameLocation":"38260:2:20","nodeType":"VariableDeclaration","scope":9179,"src":"38252:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9163,"name":"address","nodeType":"ElementaryTypeName","src":"38252:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38203:60:20"},"returnParameters":{"id":9166,"nodeType":"ParameterList","parameters":[],"src":"38278:0:20"},"scope":12860,"src":"38191:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9201,"nodeType":"Block","src":"38473:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c75696e7432353629","id":9193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38523:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},"value":"log(string,bool,uint256,uint256)"},{"id":9194,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9181,"src":"38559:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9195,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9183,"src":"38563:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9196,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9185,"src":"38567:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9197,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9187,"src":"38571:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_64b5bb671d0911515c2d999ed3f7f689c3b5762a99b342dfee4a1d88fec7b25e","typeString":"literal_string \"log(string,bool,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9191,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38499:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38503:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38499:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38499:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9190,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38483:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38483:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9200,"nodeType":"ExpressionStatement","src":"38483:92:20"}]},"id":9202,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38404:3:20","nodeType":"FunctionDefinition","parameters":{"id":9188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9181,"mutability":"mutable","name":"p0","nameLocation":"38422:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38408:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9180,"name":"string","nodeType":"ElementaryTypeName","src":"38408:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9183,"mutability":"mutable","name":"p1","nameLocation":"38431:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38426:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9182,"name":"bool","nodeType":"ElementaryTypeName","src":"38426:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9185,"mutability":"mutable","name":"p2","nameLocation":"38443:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38435:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9184,"name":"uint256","nodeType":"ElementaryTypeName","src":"38435:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9187,"mutability":"mutable","name":"p3","nameLocation":"38455:2:20","nodeType":"VariableDeclaration","scope":9202,"src":"38447:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9186,"name":"uint256","nodeType":"ElementaryTypeName","src":"38447:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38407:51:20"},"returnParameters":{"id":9189,"nodeType":"ParameterList","parameters":[],"src":"38473:0:20"},"scope":12860,"src":"38395:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9224,"nodeType":"Block","src":"38672:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c737472696e6729","id":9216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38722:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},"value":"log(string,bool,uint256,string)"},{"id":9217,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9204,"src":"38757:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9218,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9206,"src":"38761:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9219,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9208,"src":"38765:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9220,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9210,"src":"38769:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_742d6ee771df9df1dec5a8b70ff5f7f41567f6ae9fe27e7e391b2811f9978b00","typeString":"literal_string \"log(string,bool,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9214,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38698:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38702:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38698:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38698:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9213,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38682:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38682:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9223,"nodeType":"ExpressionStatement","src":"38682:91:20"}]},"id":9225,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38597:3:20","nodeType":"FunctionDefinition","parameters":{"id":9211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9204,"mutability":"mutable","name":"p0","nameLocation":"38615:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38601:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9203,"name":"string","nodeType":"ElementaryTypeName","src":"38601:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9206,"mutability":"mutable","name":"p1","nameLocation":"38624:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38619:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9205,"name":"bool","nodeType":"ElementaryTypeName","src":"38619:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9208,"mutability":"mutable","name":"p2","nameLocation":"38636:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38628:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9207,"name":"uint256","nodeType":"ElementaryTypeName","src":"38628:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9210,"mutability":"mutable","name":"p3","nameLocation":"38654:2:20","nodeType":"VariableDeclaration","scope":9225,"src":"38640:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9209,"name":"string","nodeType":"ElementaryTypeName","src":"38640:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"38600:57:20"},"returnParameters":{"id":9212,"nodeType":"ParameterList","parameters":[],"src":"38672:0:20"},"scope":12860,"src":"38588:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9247,"nodeType":"Block","src":"38861:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c626f6f6c29","id":9239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"38911:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},"value":"log(string,bool,uint256,bool)"},{"id":9240,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9227,"src":"38944:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9241,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9229,"src":"38948:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9242,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9231,"src":"38952:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9243,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9233,"src":"38956:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8af7cf8a379b674b00a81c3841f4203ce23fde0db10f1f8c2a0017ca424d79e2","typeString":"literal_string \"log(string,bool,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9237,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"38887:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9238,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38891:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"38887:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38887:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9236,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"38871:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38871:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9246,"nodeType":"ExpressionStatement","src":"38871:89:20"}]},"id":9248,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38795:3:20","nodeType":"FunctionDefinition","parameters":{"id":9234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9227,"mutability":"mutable","name":"p0","nameLocation":"38813:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38799:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9226,"name":"string","nodeType":"ElementaryTypeName","src":"38799:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9229,"mutability":"mutable","name":"p1","nameLocation":"38822:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38817:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9228,"name":"bool","nodeType":"ElementaryTypeName","src":"38817:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9231,"mutability":"mutable","name":"p2","nameLocation":"38834:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38826:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9230,"name":"uint256","nodeType":"ElementaryTypeName","src":"38826:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9233,"mutability":"mutable","name":"p3","nameLocation":"38843:2:20","nodeType":"VariableDeclaration","scope":9248,"src":"38838:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9232,"name":"bool","nodeType":"ElementaryTypeName","src":"38838:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"38798:48:20"},"returnParameters":{"id":9235,"nodeType":"ParameterList","parameters":[],"src":"38861:0:20"},"scope":12860,"src":"38786:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9270,"nodeType":"Block","src":"39051:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c75696e743235362c6164647265737329","id":9262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39101:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},"value":"log(string,bool,uint256,address)"},{"id":9263,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9250,"src":"39137:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9264,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9252,"src":"39141:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9265,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9254,"src":"39145:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9266,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9256,"src":"39149:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_935e09bfd29779a7e049f17e6e907bb9f7181e93c0c486cf646b7471eb4a9d1e","typeString":"literal_string \"log(string,bool,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9260,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39077:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39081:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39077:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39077:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9259,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39061:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39061:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9269,"nodeType":"ExpressionStatement","src":"39061:92:20"}]},"id":9271,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"38982:3:20","nodeType":"FunctionDefinition","parameters":{"id":9257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9250,"mutability":"mutable","name":"p0","nameLocation":"39000:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"38986:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9249,"name":"string","nodeType":"ElementaryTypeName","src":"38986:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9252,"mutability":"mutable","name":"p1","nameLocation":"39009:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"39004:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9251,"name":"bool","nodeType":"ElementaryTypeName","src":"39004:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9254,"mutability":"mutable","name":"p2","nameLocation":"39021:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"39013:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9253,"name":"uint256","nodeType":"ElementaryTypeName","src":"39013:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9256,"mutability":"mutable","name":"p3","nameLocation":"39033:2:20","nodeType":"VariableDeclaration","scope":9271,"src":"39025:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9255,"name":"address","nodeType":"ElementaryTypeName","src":"39025:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"38985:51:20"},"returnParameters":{"id":9258,"nodeType":"ParameterList","parameters":[],"src":"39051:0:20"},"scope":12860,"src":"38973:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9293,"nodeType":"Block","src":"39250:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c75696e7432353629","id":9285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39300:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},"value":"log(string,bool,string,uint256)"},{"id":9286,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9273,"src":"39335:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9287,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9275,"src":"39339:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9288,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9277,"src":"39343:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9289,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9279,"src":"39347:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_24f9146562ee02c43db65ac014241fab3a51c9e29435f60d2ed133a186cac03a","typeString":"literal_string \"log(string,bool,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9283,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39276:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39280:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39276:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39276:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9282,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39260:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39260:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9292,"nodeType":"ExpressionStatement","src":"39260:91:20"}]},"id":9294,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39175:3:20","nodeType":"FunctionDefinition","parameters":{"id":9280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9273,"mutability":"mutable","name":"p0","nameLocation":"39193:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39179:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9272,"name":"string","nodeType":"ElementaryTypeName","src":"39179:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9275,"mutability":"mutable","name":"p1","nameLocation":"39202:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39197:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9274,"name":"bool","nodeType":"ElementaryTypeName","src":"39197:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9277,"mutability":"mutable","name":"p2","nameLocation":"39220:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39206:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9276,"name":"string","nodeType":"ElementaryTypeName","src":"39206:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9279,"mutability":"mutable","name":"p3","nameLocation":"39232:2:20","nodeType":"VariableDeclaration","scope":9294,"src":"39224:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9278,"name":"uint256","nodeType":"ElementaryTypeName","src":"39224:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39178:57:20"},"returnParameters":{"id":9281,"nodeType":"ParameterList","parameters":[],"src":"39250:0:20"},"scope":12860,"src":"39166:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9316,"nodeType":"Block","src":"39454:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c737472696e6729","id":9308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39504:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},"value":"log(string,bool,string,string)"},{"id":9309,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9296,"src":"39538:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9310,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9298,"src":"39542:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9311,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9300,"src":"39546:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9312,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9302,"src":"39550:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a826caebc65f4a71211c1c7fd8dc9bdd856d7ef7dbeef42d8af156e9f73bc47d","typeString":"literal_string \"log(string,bool,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9306,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39480:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39484:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39480:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39480:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9305,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39464:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39464:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9315,"nodeType":"ExpressionStatement","src":"39464:90:20"}]},"id":9317,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39373:3:20","nodeType":"FunctionDefinition","parameters":{"id":9303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9296,"mutability":"mutable","name":"p0","nameLocation":"39391:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39377:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9295,"name":"string","nodeType":"ElementaryTypeName","src":"39377:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9298,"mutability":"mutable","name":"p1","nameLocation":"39400:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39395:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9297,"name":"bool","nodeType":"ElementaryTypeName","src":"39395:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9300,"mutability":"mutable","name":"p2","nameLocation":"39418:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39404:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9299,"name":"string","nodeType":"ElementaryTypeName","src":"39404:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9302,"mutability":"mutable","name":"p3","nameLocation":"39436:2:20","nodeType":"VariableDeclaration","scope":9317,"src":"39422:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9301,"name":"string","nodeType":"ElementaryTypeName","src":"39422:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"39376:63:20"},"returnParameters":{"id":9304,"nodeType":"ParameterList","parameters":[],"src":"39454:0:20"},"scope":12860,"src":"39364:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9339,"nodeType":"Block","src":"39648:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c626f6f6c29","id":9331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39698:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},"value":"log(string,bool,string,bool)"},{"id":9332,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9319,"src":"39730:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9333,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9321,"src":"39734:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9334,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9323,"src":"39738:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9335,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9325,"src":"39742:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3f8a701d00386d6ad9c7b7a930805b985bcbbe108e894a7d5cb9493e87e57e8b","typeString":"literal_string \"log(string,bool,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9329,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39674:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39678:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39674:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39674:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9328,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39658:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39658:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9338,"nodeType":"ExpressionStatement","src":"39658:88:20"}]},"id":9340,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39576:3:20","nodeType":"FunctionDefinition","parameters":{"id":9326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9319,"mutability":"mutable","name":"p0","nameLocation":"39594:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39580:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9318,"name":"string","nodeType":"ElementaryTypeName","src":"39580:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9321,"mutability":"mutable","name":"p1","nameLocation":"39603:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39598:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9320,"name":"bool","nodeType":"ElementaryTypeName","src":"39598:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9323,"mutability":"mutable","name":"p2","nameLocation":"39621:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39607:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9322,"name":"string","nodeType":"ElementaryTypeName","src":"39607:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9325,"mutability":"mutable","name":"p3","nameLocation":"39630:2:20","nodeType":"VariableDeclaration","scope":9340,"src":"39625:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9324,"name":"bool","nodeType":"ElementaryTypeName","src":"39625:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"39579:54:20"},"returnParameters":{"id":9327,"nodeType":"ParameterList","parameters":[],"src":"39648:0:20"},"scope":12860,"src":"39567:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9362,"nodeType":"Block","src":"39843:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c737472696e672c6164647265737329","id":9354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"39893:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},"value":"log(string,bool,string,address)"},{"id":9355,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9342,"src":"39928:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9356,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9344,"src":"39932:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9357,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9346,"src":"39936:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9358,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9348,"src":"39940:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e0625b292fa5cbc865b55f61713cbbe0ce7abb244ec2df45291ea19c30ddfaf8","typeString":"literal_string \"log(string,bool,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9352,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"39869:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9353,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"39873:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"39869:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39869:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9351,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"39853:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39853:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9361,"nodeType":"ExpressionStatement","src":"39853:91:20"}]},"id":9363,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39768:3:20","nodeType":"FunctionDefinition","parameters":{"id":9349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9342,"mutability":"mutable","name":"p0","nameLocation":"39786:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39772:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9341,"name":"string","nodeType":"ElementaryTypeName","src":"39772:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9344,"mutability":"mutable","name":"p1","nameLocation":"39795:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39790:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9343,"name":"bool","nodeType":"ElementaryTypeName","src":"39790:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9346,"mutability":"mutable","name":"p2","nameLocation":"39813:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39799:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9345,"name":"string","nodeType":"ElementaryTypeName","src":"39799:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9348,"mutability":"mutable","name":"p3","nameLocation":"39825:2:20","nodeType":"VariableDeclaration","scope":9363,"src":"39817:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9347,"name":"address","nodeType":"ElementaryTypeName","src":"39817:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39771:57:20"},"returnParameters":{"id":9350,"nodeType":"ParameterList","parameters":[],"src":"39843:0:20"},"scope":12860,"src":"39759:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9385,"nodeType":"Block","src":"40032:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c75696e7432353629","id":9377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40082:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},"value":"log(string,bool,bool,uint256)"},{"id":9378,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9365,"src":"40115:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9379,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9367,"src":"40119:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9380,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9369,"src":"40123:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9381,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9371,"src":"40127:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e3f78a95b6137f6ae9ccc69d6fedacb3b283b432b4367bfc497a4b3b428665c","typeString":"literal_string \"log(string,bool,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9375,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40058:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9376,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40062:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40058:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40058:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9374,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40042:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40042:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9384,"nodeType":"ExpressionStatement","src":"40042:89:20"}]},"id":9386,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"39966:3:20","nodeType":"FunctionDefinition","parameters":{"id":9372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9365,"mutability":"mutable","name":"p0","nameLocation":"39984:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"39970:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9364,"name":"string","nodeType":"ElementaryTypeName","src":"39970:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9367,"mutability":"mutable","name":"p1","nameLocation":"39993:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"39988:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9366,"name":"bool","nodeType":"ElementaryTypeName","src":"39988:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9369,"mutability":"mutable","name":"p2","nameLocation":"40002:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"39997:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9368,"name":"bool","nodeType":"ElementaryTypeName","src":"39997:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9371,"mutability":"mutable","name":"p3","nameLocation":"40014:2:20","nodeType":"VariableDeclaration","scope":9386,"src":"40006:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9370,"name":"uint256","nodeType":"ElementaryTypeName","src":"40006:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39969:48:20"},"returnParameters":{"id":9373,"nodeType":"ParameterList","parameters":[],"src":"40032:0:20"},"scope":12860,"src":"39957:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9408,"nodeType":"Block","src":"40225:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c737472696e6729","id":9400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40275:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},"value":"log(string,bool,bool,string)"},{"id":9401,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9388,"src":"40307:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9402,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9390,"src":"40311:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9403,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9392,"src":"40315:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9404,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9394,"src":"40319:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9d22d5dd5fa6b44920526f32944af8a0b12651bcfe7d5e4d9330573146eaf058","typeString":"literal_string \"log(string,bool,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9398,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40251:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40255:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40251:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40251:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9397,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40235:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40235:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9407,"nodeType":"ExpressionStatement","src":"40235:88:20"}]},"id":9409,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40153:3:20","nodeType":"FunctionDefinition","parameters":{"id":9395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9388,"mutability":"mutable","name":"p0","nameLocation":"40171:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40157:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9387,"name":"string","nodeType":"ElementaryTypeName","src":"40157:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9390,"mutability":"mutable","name":"p1","nameLocation":"40180:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40175:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9389,"name":"bool","nodeType":"ElementaryTypeName","src":"40175:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9392,"mutability":"mutable","name":"p2","nameLocation":"40189:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40184:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9391,"name":"bool","nodeType":"ElementaryTypeName","src":"40184:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9394,"mutability":"mutable","name":"p3","nameLocation":"40207:2:20","nodeType":"VariableDeclaration","scope":9409,"src":"40193:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9393,"name":"string","nodeType":"ElementaryTypeName","src":"40193:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40156:54:20"},"returnParameters":{"id":9396,"nodeType":"ParameterList","parameters":[],"src":"40225:0:20"},"scope":12860,"src":"40144:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9431,"nodeType":"Block","src":"40408:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c626f6f6c29","id":9423,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40458:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},"value":"log(string,bool,bool,bool)"},{"id":9424,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9411,"src":"40488:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9425,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9413,"src":"40492:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9426,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9415,"src":"40496:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9427,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9417,"src":"40500:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_895af8c5b50078ceec3119054e20583155eeb3e1a8f56b8ed56efbec57456ad2","typeString":"literal_string \"log(string,bool,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9421,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40434:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40438:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40434:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40434:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9420,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40418:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40418:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9430,"nodeType":"ExpressionStatement","src":"40418:86:20"}]},"id":9432,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40345:3:20","nodeType":"FunctionDefinition","parameters":{"id":9418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9411,"mutability":"mutable","name":"p0","nameLocation":"40363:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40349:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9410,"name":"string","nodeType":"ElementaryTypeName","src":"40349:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9413,"mutability":"mutable","name":"p1","nameLocation":"40372:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40367:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9412,"name":"bool","nodeType":"ElementaryTypeName","src":"40367:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9415,"mutability":"mutable","name":"p2","nameLocation":"40381:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40376:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9414,"name":"bool","nodeType":"ElementaryTypeName","src":"40376:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9417,"mutability":"mutable","name":"p3","nameLocation":"40390:2:20","nodeType":"VariableDeclaration","scope":9432,"src":"40385:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9416,"name":"bool","nodeType":"ElementaryTypeName","src":"40385:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"40348:45:20"},"returnParameters":{"id":9419,"nodeType":"ParameterList","parameters":[],"src":"40408:0:20"},"scope":12860,"src":"40336:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9454,"nodeType":"Block","src":"40592:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c626f6f6c2c6164647265737329","id":9446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40642:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},"value":"log(string,bool,bool,address)"},{"id":9447,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9434,"src":"40675:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9448,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9436,"src":"40679:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9449,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9438,"src":"40683:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9450,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9440,"src":"40687:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7190a529624f3e9168945b9053b9648f6439313f31cad0801b50f9dc38a45d4d","typeString":"literal_string \"log(string,bool,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9444,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40618:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40622:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40618:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40618:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9443,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40602:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40602:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9453,"nodeType":"ExpressionStatement","src":"40602:89:20"}]},"id":9455,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40526:3:20","nodeType":"FunctionDefinition","parameters":{"id":9441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9434,"mutability":"mutable","name":"p0","nameLocation":"40544:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40530:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9433,"name":"string","nodeType":"ElementaryTypeName","src":"40530:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9436,"mutability":"mutable","name":"p1","nameLocation":"40553:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40548:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9435,"name":"bool","nodeType":"ElementaryTypeName","src":"40548:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9438,"mutability":"mutable","name":"p2","nameLocation":"40562:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40557:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9437,"name":"bool","nodeType":"ElementaryTypeName","src":"40557:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9440,"mutability":"mutable","name":"p3","nameLocation":"40574:2:20","nodeType":"VariableDeclaration","scope":9455,"src":"40566:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9439,"name":"address","nodeType":"ElementaryTypeName","src":"40566:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"40529:48:20"},"returnParameters":{"id":9442,"nodeType":"ParameterList","parameters":[],"src":"40592:0:20"},"scope":12860,"src":"40517:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9477,"nodeType":"Block","src":"40782:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c75696e7432353629","id":9469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"40832:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},"value":"log(string,bool,address,uint256)"},{"id":9470,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9457,"src":"40868:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9471,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9459,"src":"40872:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9472,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9461,"src":"40876:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9473,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9463,"src":"40880:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d08bb051545e1af26b8dc05172e6aa8a0bd85212ec19e971b10cea364c21531","typeString":"literal_string \"log(string,bool,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9467,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"40808:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"40812:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"40808:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40808:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9466,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40792:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40792:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9476,"nodeType":"ExpressionStatement","src":"40792:92:20"}]},"id":9478,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40713:3:20","nodeType":"FunctionDefinition","parameters":{"id":9464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9457,"mutability":"mutable","name":"p0","nameLocation":"40731:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40717:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9456,"name":"string","nodeType":"ElementaryTypeName","src":"40717:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9459,"mutability":"mutable","name":"p1","nameLocation":"40740:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40735:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9458,"name":"bool","nodeType":"ElementaryTypeName","src":"40735:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9461,"mutability":"mutable","name":"p2","nameLocation":"40752:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40744:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9460,"name":"address","nodeType":"ElementaryTypeName","src":"40744:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9463,"mutability":"mutable","name":"p3","nameLocation":"40764:2:20","nodeType":"VariableDeclaration","scope":9478,"src":"40756:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9462,"name":"uint256","nodeType":"ElementaryTypeName","src":"40756:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"40716:51:20"},"returnParameters":{"id":9465,"nodeType":"ParameterList","parameters":[],"src":"40782:0:20"},"scope":12860,"src":"40704:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9500,"nodeType":"Block","src":"40981:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c737472696e6729","id":9492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41031:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},"value":"log(string,bool,address,string)"},{"id":9493,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9480,"src":"41066:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9494,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9482,"src":"41070:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9495,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9484,"src":"41074:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9496,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9486,"src":"41078:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2d8e33a4e52268aad313274a8446eec6f40466a28da2456a8f12d83b298c13ef","typeString":"literal_string \"log(string,bool,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9490,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41007:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41011:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41007:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41007:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9489,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"40991:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"40991:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9499,"nodeType":"ExpressionStatement","src":"40991:91:20"}]},"id":9501,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"40906:3:20","nodeType":"FunctionDefinition","parameters":{"id":9487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9480,"mutability":"mutable","name":"p0","nameLocation":"40924:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40910:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9479,"name":"string","nodeType":"ElementaryTypeName","src":"40910:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9482,"mutability":"mutable","name":"p1","nameLocation":"40933:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40928:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9481,"name":"bool","nodeType":"ElementaryTypeName","src":"40928:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9484,"mutability":"mutable","name":"p2","nameLocation":"40945:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40937:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9483,"name":"address","nodeType":"ElementaryTypeName","src":"40937:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9486,"mutability":"mutable","name":"p3","nameLocation":"40963:2:20","nodeType":"VariableDeclaration","scope":9501,"src":"40949:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9485,"name":"string","nodeType":"ElementaryTypeName","src":"40949:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"40909:57:20"},"returnParameters":{"id":9488,"nodeType":"ParameterList","parameters":[],"src":"40981:0:20"},"scope":12860,"src":"40897:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9523,"nodeType":"Block","src":"41170:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c626f6f6c29","id":9515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41220:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},"value":"log(string,bool,address,bool)"},{"id":9516,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9503,"src":"41253:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9517,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9505,"src":"41257:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9518,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9507,"src":"41261:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9519,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9509,"src":"41265:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_958c28c6e7bd79de7ce7f6f112cbcb194d9e383764dfb947492ee1374ff5c482","typeString":"literal_string \"log(string,bool,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9513,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41196:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41200:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41196:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41196:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9512,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41180:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41180:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9522,"nodeType":"ExpressionStatement","src":"41180:89:20"}]},"id":9524,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41104:3:20","nodeType":"FunctionDefinition","parameters":{"id":9510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9503,"mutability":"mutable","name":"p0","nameLocation":"41122:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41108:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9502,"name":"string","nodeType":"ElementaryTypeName","src":"41108:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9505,"mutability":"mutable","name":"p1","nameLocation":"41131:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41126:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9504,"name":"bool","nodeType":"ElementaryTypeName","src":"41126:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9507,"mutability":"mutable","name":"p2","nameLocation":"41143:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41135:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9506,"name":"address","nodeType":"ElementaryTypeName","src":"41135:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9509,"mutability":"mutable","name":"p3","nameLocation":"41152:2:20","nodeType":"VariableDeclaration","scope":9524,"src":"41147:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9508,"name":"bool","nodeType":"ElementaryTypeName","src":"41147:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41107:48:20"},"returnParameters":{"id":9511,"nodeType":"ParameterList","parameters":[],"src":"41170:0:20"},"scope":12860,"src":"41095:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9546,"nodeType":"Block","src":"41360:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c626f6f6c2c616464726573732c6164647265737329","id":9538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41410:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},"value":"log(string,bool,address,address)"},{"id":9539,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9526,"src":"41446:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9540,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9528,"src":"41450:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9541,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9530,"src":"41454:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9542,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9532,"src":"41458:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_33e9dd1deb33816160eb59d86987de501b214bedbbe3c70103eff4092834b53d","typeString":"literal_string \"log(string,bool,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9536,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41386:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41390:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41386:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41386:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9535,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41370:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41370:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9545,"nodeType":"ExpressionStatement","src":"41370:92:20"}]},"id":9547,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41291:3:20","nodeType":"FunctionDefinition","parameters":{"id":9533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9526,"mutability":"mutable","name":"p0","nameLocation":"41309:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41295:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9525,"name":"string","nodeType":"ElementaryTypeName","src":"41295:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9528,"mutability":"mutable","name":"p1","nameLocation":"41318:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41313:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9527,"name":"bool","nodeType":"ElementaryTypeName","src":"41313:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9530,"mutability":"mutable","name":"p2","nameLocation":"41330:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41322:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9529,"name":"address","nodeType":"ElementaryTypeName","src":"41322:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9532,"mutability":"mutable","name":"p3","nameLocation":"41342:2:20","nodeType":"VariableDeclaration","scope":9547,"src":"41334:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9531,"name":"address","nodeType":"ElementaryTypeName","src":"41334:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"41294:51:20"},"returnParameters":{"id":9534,"nodeType":"ParameterList","parameters":[],"src":"41360:0:20"},"scope":12860,"src":"41282:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9569,"nodeType":"Block","src":"41556:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c75696e7432353629","id":9561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41606:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},"value":"log(string,address,uint256,uint256)"},{"id":9562,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9549,"src":"41645:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9563,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9551,"src":"41649:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9564,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9553,"src":"41653:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9565,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9555,"src":"41657:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f8f51b1efa50f24f22e6d84ce2fe784a33e1301484ada1546e913ae05d6370e9","typeString":"literal_string \"log(string,address,uint256,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9559,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41582:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41586:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41582:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41582:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9558,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41566:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41566:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9568,"nodeType":"ExpressionStatement","src":"41566:95:20"}]},"id":9570,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41484:3:20","nodeType":"FunctionDefinition","parameters":{"id":9556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9549,"mutability":"mutable","name":"p0","nameLocation":"41502:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41488:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9548,"name":"string","nodeType":"ElementaryTypeName","src":"41488:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9551,"mutability":"mutable","name":"p1","nameLocation":"41514:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41506:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9550,"name":"address","nodeType":"ElementaryTypeName","src":"41506:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9553,"mutability":"mutable","name":"p2","nameLocation":"41526:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41518:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9552,"name":"uint256","nodeType":"ElementaryTypeName","src":"41518:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9555,"mutability":"mutable","name":"p3","nameLocation":"41538:2:20","nodeType":"VariableDeclaration","scope":9570,"src":"41530:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9554,"name":"uint256","nodeType":"ElementaryTypeName","src":"41530:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"41487:54:20"},"returnParameters":{"id":9557,"nodeType":"ParameterList","parameters":[],"src":"41556:0:20"},"scope":12860,"src":"41475:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9592,"nodeType":"Block","src":"41761:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c737472696e6729","id":9584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"41811:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},"value":"log(string,address,uint256,string)"},{"id":9585,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9572,"src":"41849:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9586,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9574,"src":"41853:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9587,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9576,"src":"41857:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9588,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9578,"src":"41861:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5a477632ed0f8b7872a83c9247644de555db395491f2f355c6edb676d8bcb46c","typeString":"literal_string \"log(string,address,uint256,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9582,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41787:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9583,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41791:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41787:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41787:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9581,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41771:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41771:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9591,"nodeType":"ExpressionStatement","src":"41771:94:20"}]},"id":9593,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41683:3:20","nodeType":"FunctionDefinition","parameters":{"id":9579,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9572,"mutability":"mutable","name":"p0","nameLocation":"41701:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41687:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9571,"name":"string","nodeType":"ElementaryTypeName","src":"41687:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9574,"mutability":"mutable","name":"p1","nameLocation":"41713:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41705:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9573,"name":"address","nodeType":"ElementaryTypeName","src":"41705:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9576,"mutability":"mutable","name":"p2","nameLocation":"41725:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41717:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9575,"name":"uint256","nodeType":"ElementaryTypeName","src":"41717:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9578,"mutability":"mutable","name":"p3","nameLocation":"41743:2:20","nodeType":"VariableDeclaration","scope":9593,"src":"41729:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9577,"name":"string","nodeType":"ElementaryTypeName","src":"41729:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"41686:60:20"},"returnParameters":{"id":9580,"nodeType":"ParameterList","parameters":[],"src":"41761:0:20"},"scope":12860,"src":"41674:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9615,"nodeType":"Block","src":"41956:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c626f6f6c29","id":9607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42006:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},"value":"log(string,address,uint256,bool)"},{"id":9608,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9595,"src":"42042:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9609,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9597,"src":"42046:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9610,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9599,"src":"42050:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9611,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9601,"src":"42054:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fc4845f029f76ed29f7b800fe92a7851214073a807806d7d808676b2cbe7a1c7","typeString":"literal_string \"log(string,address,uint256,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9605,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"41982:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"41986:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"41982:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41982:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9604,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"41966:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"41966:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9614,"nodeType":"ExpressionStatement","src":"41966:92:20"}]},"id":9616,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"41887:3:20","nodeType":"FunctionDefinition","parameters":{"id":9602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9595,"mutability":"mutable","name":"p0","nameLocation":"41905:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41891:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9594,"name":"string","nodeType":"ElementaryTypeName","src":"41891:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9597,"mutability":"mutable","name":"p1","nameLocation":"41917:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41909:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9596,"name":"address","nodeType":"ElementaryTypeName","src":"41909:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9599,"mutability":"mutable","name":"p2","nameLocation":"41929:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41921:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9598,"name":"uint256","nodeType":"ElementaryTypeName","src":"41921:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9601,"mutability":"mutable","name":"p3","nameLocation":"41938:2:20","nodeType":"VariableDeclaration","scope":9616,"src":"41933:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9600,"name":"bool","nodeType":"ElementaryTypeName","src":"41933:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"41890:51:20"},"returnParameters":{"id":9603,"nodeType":"ParameterList","parameters":[],"src":"41956:0:20"},"scope":12860,"src":"41878:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9638,"nodeType":"Block","src":"42152:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c75696e743235362c6164647265737329","id":9630,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42202:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},"value":"log(string,address,uint256,address)"},{"id":9631,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9618,"src":"42241:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9632,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9620,"src":"42245:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9633,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9622,"src":"42249:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9634,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9624,"src":"42253:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_63fb8bc57476e3f2139504feb3fa304f43eeecc15ac8e150b7b3c9fdfa4ea83a","typeString":"literal_string \"log(string,address,uint256,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9628,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42178:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42182:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42178:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42178:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9627,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42162:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42162:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9637,"nodeType":"ExpressionStatement","src":"42162:95:20"}]},"id":9639,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42080:3:20","nodeType":"FunctionDefinition","parameters":{"id":9625,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9618,"mutability":"mutable","name":"p0","nameLocation":"42098:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42084:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9617,"name":"string","nodeType":"ElementaryTypeName","src":"42084:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9620,"mutability":"mutable","name":"p1","nameLocation":"42110:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42102:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9619,"name":"address","nodeType":"ElementaryTypeName","src":"42102:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9622,"mutability":"mutable","name":"p2","nameLocation":"42122:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42114:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9621,"name":"uint256","nodeType":"ElementaryTypeName","src":"42114:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9624,"mutability":"mutable","name":"p3","nameLocation":"42134:2:20","nodeType":"VariableDeclaration","scope":9639,"src":"42126:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9623,"name":"address","nodeType":"ElementaryTypeName","src":"42126:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42083:54:20"},"returnParameters":{"id":9626,"nodeType":"ParameterList","parameters":[],"src":"42152:0:20"},"scope":12860,"src":"42071:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9661,"nodeType":"Block","src":"42357:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c75696e7432353629","id":9653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42407:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},"value":"log(string,address,string,uint256)"},{"id":9654,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9641,"src":"42445:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9655,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9643,"src":"42449:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9656,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9645,"src":"42453:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9657,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9647,"src":"42457:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_91d1112e9ca774de680c78512401449500c1938a4e449f6e73f80a84d95cfcfd","typeString":"literal_string \"log(string,address,string,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9651,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42383:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42387:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42383:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42383:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9650,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42367:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42367:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9660,"nodeType":"ExpressionStatement","src":"42367:94:20"}]},"id":9662,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42279:3:20","nodeType":"FunctionDefinition","parameters":{"id":9648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9641,"mutability":"mutable","name":"p0","nameLocation":"42297:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42283:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9640,"name":"string","nodeType":"ElementaryTypeName","src":"42283:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9643,"mutability":"mutable","name":"p1","nameLocation":"42309:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42301:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9642,"name":"address","nodeType":"ElementaryTypeName","src":"42301:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9645,"mutability":"mutable","name":"p2","nameLocation":"42327:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42313:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9644,"name":"string","nodeType":"ElementaryTypeName","src":"42313:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9647,"mutability":"mutable","name":"p3","nameLocation":"42339:2:20","nodeType":"VariableDeclaration","scope":9662,"src":"42331:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9646,"name":"uint256","nodeType":"ElementaryTypeName","src":"42331:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"42282:60:20"},"returnParameters":{"id":9649,"nodeType":"ParameterList","parameters":[],"src":"42357:0:20"},"scope":12860,"src":"42270:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9684,"nodeType":"Block","src":"42567:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c737472696e6729","id":9676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42617:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},"value":"log(string,address,string,string)"},{"id":9677,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"42654:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9678,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9666,"src":"42658:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9679,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9668,"src":"42662:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9680,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9670,"src":"42666:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_245986f22170901865e76245a48ee28ce0127ca357f6ad576a72190e1d358797","typeString":"literal_string \"log(string,address,string,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9674,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42593:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9675,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42597:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42593:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42593:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9673,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42577:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42577:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9683,"nodeType":"ExpressionStatement","src":"42577:93:20"}]},"id":9685,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42483:3:20","nodeType":"FunctionDefinition","parameters":{"id":9671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9664,"mutability":"mutable","name":"p0","nameLocation":"42501:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42487:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9663,"name":"string","nodeType":"ElementaryTypeName","src":"42487:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9666,"mutability":"mutable","name":"p1","nameLocation":"42513:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42505:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9665,"name":"address","nodeType":"ElementaryTypeName","src":"42505:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9668,"mutability":"mutable","name":"p2","nameLocation":"42531:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42517:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9667,"name":"string","nodeType":"ElementaryTypeName","src":"42517:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9670,"mutability":"mutable","name":"p3","nameLocation":"42549:2:20","nodeType":"VariableDeclaration","scope":9685,"src":"42535:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9669,"name":"string","nodeType":"ElementaryTypeName","src":"42535:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"42486:66:20"},"returnParameters":{"id":9672,"nodeType":"ParameterList","parameters":[],"src":"42567:0:20"},"scope":12860,"src":"42474:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9707,"nodeType":"Block","src":"42767:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c626f6f6c29","id":9699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"42817:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},"value":"log(string,address,string,bool)"},{"id":9700,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9687,"src":"42852:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9701,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9689,"src":"42856:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9702,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9691,"src":"42860:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9703,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9693,"src":"42864:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f15d28c15ddff15fba1c00f6a4975ae6af8b36c9b2a875bf59bd45049046154","typeString":"literal_string \"log(string,address,string,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9697,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42793:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42797:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42793:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9704,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42793:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9696,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42777:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42777:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9706,"nodeType":"ExpressionStatement","src":"42777:91:20"}]},"id":9708,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42692:3:20","nodeType":"FunctionDefinition","parameters":{"id":9694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9687,"mutability":"mutable","name":"p0","nameLocation":"42710:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42696:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9686,"name":"string","nodeType":"ElementaryTypeName","src":"42696:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9689,"mutability":"mutable","name":"p1","nameLocation":"42722:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42714:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9688,"name":"address","nodeType":"ElementaryTypeName","src":"42714:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9691,"mutability":"mutable","name":"p2","nameLocation":"42740:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42726:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9690,"name":"string","nodeType":"ElementaryTypeName","src":"42726:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9693,"mutability":"mutable","name":"p3","nameLocation":"42749:2:20","nodeType":"VariableDeclaration","scope":9708,"src":"42744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9692,"name":"bool","nodeType":"ElementaryTypeName","src":"42744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"42695:57:20"},"returnParameters":{"id":9695,"nodeType":"ParameterList","parameters":[],"src":"42767:0:20"},"scope":12860,"src":"42683:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9730,"nodeType":"Block","src":"42968:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c737472696e672c6164647265737329","id":9722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43018:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},"value":"log(string,address,string,address)"},{"id":9723,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9710,"src":"43056:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9724,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9712,"src":"43060:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9725,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9714,"src":"43064:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9726,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9716,"src":"43068:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aabc9a311ab49789834b120d81155a7fee846a9f0d4f740bbeb970770190c82d","typeString":"literal_string \"log(string,address,string,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9720,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"42994:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9721,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"42998:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"42994:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42994:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9719,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"42978:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"42978:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9729,"nodeType":"ExpressionStatement","src":"42978:94:20"}]},"id":9731,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"42890:3:20","nodeType":"FunctionDefinition","parameters":{"id":9717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9710,"mutability":"mutable","name":"p0","nameLocation":"42908:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42894:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9709,"name":"string","nodeType":"ElementaryTypeName","src":"42894:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9712,"mutability":"mutable","name":"p1","nameLocation":"42920:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42912:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9711,"name":"address","nodeType":"ElementaryTypeName","src":"42912:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9714,"mutability":"mutable","name":"p2","nameLocation":"42938:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42924:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9713,"name":"string","nodeType":"ElementaryTypeName","src":"42924:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9716,"mutability":"mutable","name":"p3","nameLocation":"42950:2:20","nodeType":"VariableDeclaration","scope":9731,"src":"42942:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9715,"name":"address","nodeType":"ElementaryTypeName","src":"42942:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"42893:60:20"},"returnParameters":{"id":9718,"nodeType":"ParameterList","parameters":[],"src":"42968:0:20"},"scope":12860,"src":"42881:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9753,"nodeType":"Block","src":"43163:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c75696e7432353629","id":9745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43213:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},"value":"log(string,address,bool,uint256)"},{"id":9746,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"43249:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9747,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9735,"src":"43253:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9748,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9737,"src":"43257:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9749,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9739,"src":"43261:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3e9f866aadef9b1f2b0257e0ed5e2df8882ba55e598b4f5282674b64ae3f06b5","typeString":"literal_string \"log(string,address,bool,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9743,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43189:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43193:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43189:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43189:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9742,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43173:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43173:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9752,"nodeType":"ExpressionStatement","src":"43173:92:20"}]},"id":9754,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43094:3:20","nodeType":"FunctionDefinition","parameters":{"id":9740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9733,"mutability":"mutable","name":"p0","nameLocation":"43112:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43098:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9732,"name":"string","nodeType":"ElementaryTypeName","src":"43098:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9735,"mutability":"mutable","name":"p1","nameLocation":"43124:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43116:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9734,"name":"address","nodeType":"ElementaryTypeName","src":"43116:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9737,"mutability":"mutable","name":"p2","nameLocation":"43133:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43128:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9736,"name":"bool","nodeType":"ElementaryTypeName","src":"43128:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9739,"mutability":"mutable","name":"p3","nameLocation":"43145:2:20","nodeType":"VariableDeclaration","scope":9754,"src":"43137:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9738,"name":"uint256","nodeType":"ElementaryTypeName","src":"43137:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43097:51:20"},"returnParameters":{"id":9741,"nodeType":"ParameterList","parameters":[],"src":"43163:0:20"},"scope":12860,"src":"43085:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9776,"nodeType":"Block","src":"43362:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c737472696e6729","id":9768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43412:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},"value":"log(string,address,bool,string)"},{"id":9769,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9756,"src":"43447:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9770,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9758,"src":"43451:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9771,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9760,"src":"43455:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9772,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9762,"src":"43459:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0454c0793d4a41e5f630eb9a887926f8a67ff9e817a5feb968698354ac9d22fb","typeString":"literal_string \"log(string,address,bool,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9766,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43388:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43392:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43388:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43388:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9765,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43372:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43372:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9775,"nodeType":"ExpressionStatement","src":"43372:91:20"}]},"id":9777,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43287:3:20","nodeType":"FunctionDefinition","parameters":{"id":9763,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9756,"mutability":"mutable","name":"p0","nameLocation":"43305:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43291:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9755,"name":"string","nodeType":"ElementaryTypeName","src":"43291:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9758,"mutability":"mutable","name":"p1","nameLocation":"43317:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43309:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9757,"name":"address","nodeType":"ElementaryTypeName","src":"43309:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9760,"mutability":"mutable","name":"p2","nameLocation":"43326:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43321:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9759,"name":"bool","nodeType":"ElementaryTypeName","src":"43321:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9762,"mutability":"mutable","name":"p3","nameLocation":"43344:2:20","nodeType":"VariableDeclaration","scope":9777,"src":"43330:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9761,"name":"string","nodeType":"ElementaryTypeName","src":"43330:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"43290:57:20"},"returnParameters":{"id":9764,"nodeType":"ParameterList","parameters":[],"src":"43362:0:20"},"scope":12860,"src":"43278:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9799,"nodeType":"Block","src":"43551:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c626f6f6c29","id":9791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43601:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},"value":"log(string,address,bool,bool)"},{"id":9792,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9779,"src":"43634:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9793,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9781,"src":"43638:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9794,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9783,"src":"43642:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9795,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9785,"src":"43646:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_79884c2bc85eb73c854df1610df373a05f191b834f79cd47a7ab28be2308c039","typeString":"literal_string \"log(string,address,bool,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9789,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43577:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43581:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43577:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43577:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9788,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43561:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43561:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9798,"nodeType":"ExpressionStatement","src":"43561:89:20"}]},"id":9800,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43485:3:20","nodeType":"FunctionDefinition","parameters":{"id":9786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9779,"mutability":"mutable","name":"p0","nameLocation":"43503:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43489:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9778,"name":"string","nodeType":"ElementaryTypeName","src":"43489:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9781,"mutability":"mutable","name":"p1","nameLocation":"43515:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9780,"name":"address","nodeType":"ElementaryTypeName","src":"43507:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9783,"mutability":"mutable","name":"p2","nameLocation":"43524:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43519:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9782,"name":"bool","nodeType":"ElementaryTypeName","src":"43519:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9785,"mutability":"mutable","name":"p3","nameLocation":"43533:2:20","nodeType":"VariableDeclaration","scope":9800,"src":"43528:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9784,"name":"bool","nodeType":"ElementaryTypeName","src":"43528:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"43488:48:20"},"returnParameters":{"id":9787,"nodeType":"ParameterList","parameters":[],"src":"43551:0:20"},"scope":12860,"src":"43476:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9822,"nodeType":"Block","src":"43741:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c626f6f6c2c6164647265737329","id":9814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43791:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},"value":"log(string,address,bool,address)"},{"id":9815,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9802,"src":"43827:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9816,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9804,"src":"43831:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9817,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9806,"src":"43835:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9818,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9808,"src":"43839:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_223603bd064d72559a7d519ad0f1c6a8da707a49f5718dfa23a5ccb01bf9ab76","typeString":"literal_string \"log(string,address,bool,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9812,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43767:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43771:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43767:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43767:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9811,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43751:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43751:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9821,"nodeType":"ExpressionStatement","src":"43751:92:20"}]},"id":9823,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43672:3:20","nodeType":"FunctionDefinition","parameters":{"id":9809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9802,"mutability":"mutable","name":"p0","nameLocation":"43690:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43676:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9801,"name":"string","nodeType":"ElementaryTypeName","src":"43676:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9804,"mutability":"mutable","name":"p1","nameLocation":"43702:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43694:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9803,"name":"address","nodeType":"ElementaryTypeName","src":"43694:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9806,"mutability":"mutable","name":"p2","nameLocation":"43711:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43706:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9805,"name":"bool","nodeType":"ElementaryTypeName","src":"43706:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9808,"mutability":"mutable","name":"p3","nameLocation":"43723:2:20","nodeType":"VariableDeclaration","scope":9823,"src":"43715:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9807,"name":"address","nodeType":"ElementaryTypeName","src":"43715:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"43675:51:20"},"returnParameters":{"id":9810,"nodeType":"ParameterList","parameters":[],"src":"43741:0:20"},"scope":12860,"src":"43663:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9845,"nodeType":"Block","src":"43937:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c75696e7432353629","id":9837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"43987:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},"value":"log(string,address,address,uint256)"},{"id":9838,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9825,"src":"44026:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9839,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9827,"src":"44030:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9840,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9829,"src":"44034:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9841,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9831,"src":"44038:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8ef3f399de1ebecd7840dee5f4cdc1bad43021ab37fa3acdd3dfbd36f7092e7b","typeString":"literal_string \"log(string,address,address,uint256)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9835,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"43963:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9836,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"43967:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"43963:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43963:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9834,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"43947:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"43947:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9844,"nodeType":"ExpressionStatement","src":"43947:95:20"}]},"id":9846,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"43865:3:20","nodeType":"FunctionDefinition","parameters":{"id":9832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9825,"mutability":"mutable","name":"p0","nameLocation":"43883:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43869:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9824,"name":"string","nodeType":"ElementaryTypeName","src":"43869:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9827,"mutability":"mutable","name":"p1","nameLocation":"43895:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43887:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9826,"name":"address","nodeType":"ElementaryTypeName","src":"43887:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9829,"mutability":"mutable","name":"p2","nameLocation":"43907:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43899:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9828,"name":"address","nodeType":"ElementaryTypeName","src":"43899:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9831,"mutability":"mutable","name":"p3","nameLocation":"43919:2:20","nodeType":"VariableDeclaration","scope":9846,"src":"43911:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9830,"name":"uint256","nodeType":"ElementaryTypeName","src":"43911:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"43868:54:20"},"returnParameters":{"id":9833,"nodeType":"ParameterList","parameters":[],"src":"43937:0:20"},"scope":12860,"src":"43856:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9868,"nodeType":"Block","src":"44142:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c737472696e6729","id":9860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44192:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},"value":"log(string,address,address,string)"},{"id":9861,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9848,"src":"44230:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9862,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9850,"src":"44234:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9863,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9852,"src":"44238:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9864,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9854,"src":"44242:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_800a1c6756a402b6162ca8653fd8e87e2c52d1c019c876e92eb2980479636a76","typeString":"literal_string \"log(string,address,address,string)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9858,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44168:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44172:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44168:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44168:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9857,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44152:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44152:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9867,"nodeType":"ExpressionStatement","src":"44152:94:20"}]},"id":9869,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44064:3:20","nodeType":"FunctionDefinition","parameters":{"id":9855,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9848,"mutability":"mutable","name":"p0","nameLocation":"44082:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44068:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9847,"name":"string","nodeType":"ElementaryTypeName","src":"44068:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9850,"mutability":"mutable","name":"p1","nameLocation":"44094:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9849,"name":"address","nodeType":"ElementaryTypeName","src":"44086:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9852,"mutability":"mutable","name":"p2","nameLocation":"44106:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44098:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9851,"name":"address","nodeType":"ElementaryTypeName","src":"44098:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9854,"mutability":"mutable","name":"p3","nameLocation":"44124:2:20","nodeType":"VariableDeclaration","scope":9869,"src":"44110:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9853,"name":"string","nodeType":"ElementaryTypeName","src":"44110:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44067:60:20"},"returnParameters":{"id":9856,"nodeType":"ParameterList","parameters":[],"src":"44142:0:20"},"scope":12860,"src":"44055:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9891,"nodeType":"Block","src":"44337:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c626f6f6c29","id":9883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44387:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},"value":"log(string,address,address,bool)"},{"id":9884,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9871,"src":"44423:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9885,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9873,"src":"44427:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9886,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9875,"src":"44431:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9887,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9877,"src":"44435:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b59dbd60587b4eeae521d5427cbc88bff32729f88aff059e7deb0a3a4320aaf4","typeString":"literal_string \"log(string,address,address,bool)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9881,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44363:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9882,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44367:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44363:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44363:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9880,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44347:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44347:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9890,"nodeType":"ExpressionStatement","src":"44347:92:20"}]},"id":9892,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44268:3:20","nodeType":"FunctionDefinition","parameters":{"id":9878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9871,"mutability":"mutable","name":"p0","nameLocation":"44286:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44272:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9870,"name":"string","nodeType":"ElementaryTypeName","src":"44272:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9873,"mutability":"mutable","name":"p1","nameLocation":"44298:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44290:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9872,"name":"address","nodeType":"ElementaryTypeName","src":"44290:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9875,"mutability":"mutable","name":"p2","nameLocation":"44310:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44302:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9874,"name":"address","nodeType":"ElementaryTypeName","src":"44302:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9877,"mutability":"mutable","name":"p3","nameLocation":"44319:2:20","nodeType":"VariableDeclaration","scope":9892,"src":"44314:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9876,"name":"bool","nodeType":"ElementaryTypeName","src":"44314:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"44271:51:20"},"returnParameters":{"id":9879,"nodeType":"ParameterList","parameters":[],"src":"44337:0:20"},"scope":12860,"src":"44259:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9914,"nodeType":"Block","src":"44533:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728737472696e672c616464726573732c616464726573732c6164647265737329","id":9906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44583:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},"value":"log(string,address,address,address)"},{"id":9907,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9894,"src":"44622:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":9908,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9896,"src":"44626:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9909,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9898,"src":"44630:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":9910,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9900,"src":"44634:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ed8f28f6f4b5d54b1d37f705e543f556805f28b9d1bb3aef0ef7e57ef4992d15","typeString":"literal_string \"log(string,address,address,address)\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9904,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44559:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44563:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44559:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44559:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9903,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44543:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44543:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9913,"nodeType":"ExpressionStatement","src":"44543:95:20"}]},"id":9915,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44461:3:20","nodeType":"FunctionDefinition","parameters":{"id":9901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9894,"mutability":"mutable","name":"p0","nameLocation":"44479:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44465:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9893,"name":"string","nodeType":"ElementaryTypeName","src":"44465:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":9896,"mutability":"mutable","name":"p1","nameLocation":"44491:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44483:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9895,"name":"address","nodeType":"ElementaryTypeName","src":"44483:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9898,"mutability":"mutable","name":"p2","nameLocation":"44503:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44495:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9897,"name":"address","nodeType":"ElementaryTypeName","src":"44495:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":9900,"mutability":"mutable","name":"p3","nameLocation":"44515:2:20","nodeType":"VariableDeclaration","scope":9915,"src":"44507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9899,"name":"address","nodeType":"ElementaryTypeName","src":"44507:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"44464:54:20"},"returnParameters":{"id":9902,"nodeType":"ParameterList","parameters":[],"src":"44533:0:20"},"scope":12860,"src":"44452:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9937,"nodeType":"Block","src":"44723:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c75696e7432353629","id":9929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44773:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},"value":"log(bool,uint256,uint256,uint256)"},{"id":9930,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9917,"src":"44810:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9931,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"44814:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9932,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9921,"src":"44818:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9933,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9923,"src":"44822:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_374bb4b29e495d2b557643d341fe72136bf6e92f2ac9b1edd86dbbd72a19d62b","typeString":"literal_string \"log(bool,uint256,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":9927,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44749:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9928,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44753:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44749:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44749:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9926,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44733:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44733:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9936,"nodeType":"ExpressionStatement","src":"44733:93:20"}]},"id":9938,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44660:3:20","nodeType":"FunctionDefinition","parameters":{"id":9924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9917,"mutability":"mutable","name":"p0","nameLocation":"44669:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44664:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9916,"name":"bool","nodeType":"ElementaryTypeName","src":"44664:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9919,"mutability":"mutable","name":"p1","nameLocation":"44681:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44673:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9918,"name":"uint256","nodeType":"ElementaryTypeName","src":"44673:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9921,"mutability":"mutable","name":"p2","nameLocation":"44693:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44685:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9920,"name":"uint256","nodeType":"ElementaryTypeName","src":"44685:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9923,"mutability":"mutable","name":"p3","nameLocation":"44705:2:20","nodeType":"VariableDeclaration","scope":9938,"src":"44697:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9922,"name":"uint256","nodeType":"ElementaryTypeName","src":"44697:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"44663:45:20"},"returnParameters":{"id":9925,"nodeType":"ParameterList","parameters":[],"src":"44723:0:20"},"scope":12860,"src":"44651:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9960,"nodeType":"Block","src":"44917:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c737472696e6729","id":9952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"44967:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},"value":"log(bool,uint256,uint256,string)"},{"id":9953,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9940,"src":"45003:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9954,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9942,"src":"45007:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9955,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9944,"src":"45011:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9956,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9946,"src":"45015:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8e69fb5dd49f06ae0054ca1d4af84221644c5b45a9306505e04580a4156255c3","typeString":"literal_string \"log(bool,uint256,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":9950,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"44943:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"44947:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"44943:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44943:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9949,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"44927:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"44927:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9959,"nodeType":"ExpressionStatement","src":"44927:92:20"}]},"id":9961,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"44848:3:20","nodeType":"FunctionDefinition","parameters":{"id":9947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9940,"mutability":"mutable","name":"p0","nameLocation":"44857:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44852:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9939,"name":"bool","nodeType":"ElementaryTypeName","src":"44852:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9942,"mutability":"mutable","name":"p1","nameLocation":"44869:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44861:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9941,"name":"uint256","nodeType":"ElementaryTypeName","src":"44861:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9944,"mutability":"mutable","name":"p2","nameLocation":"44881:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44873:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9943,"name":"uint256","nodeType":"ElementaryTypeName","src":"44873:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9946,"mutability":"mutable","name":"p3","nameLocation":"44899:2:20","nodeType":"VariableDeclaration","scope":9961,"src":"44885:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9945,"name":"string","nodeType":"ElementaryTypeName","src":"44885:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"44851:51:20"},"returnParameters":{"id":9948,"nodeType":"ParameterList","parameters":[],"src":"44917:0:20"},"scope":12860,"src":"44839:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":9983,"nodeType":"Block","src":"45101:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c626f6f6c29","id":9975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45151:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},"value":"log(bool,uint256,uint256,bool)"},{"id":9976,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9963,"src":"45185:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":9977,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9965,"src":"45189:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9978,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9967,"src":"45193:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":9979,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9969,"src":"45197:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be9843530e69b1feba88a3a9701a6984aaa8a57e749a7f9d10c857993e79900d","typeString":"literal_string \"log(bool,uint256,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":9973,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45127:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9974,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45131:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45127:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45127:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9972,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45111:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":9981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45111:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9982,"nodeType":"ExpressionStatement","src":"45111:90:20"}]},"id":9984,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45041:3:20","nodeType":"FunctionDefinition","parameters":{"id":9970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9963,"mutability":"mutable","name":"p0","nameLocation":"45050:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45045:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9962,"name":"bool","nodeType":"ElementaryTypeName","src":"45045:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9965,"mutability":"mutable","name":"p1","nameLocation":"45062:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45054:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9964,"name":"uint256","nodeType":"ElementaryTypeName","src":"45054:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9967,"mutability":"mutable","name":"p2","nameLocation":"45074:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45066:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9966,"name":"uint256","nodeType":"ElementaryTypeName","src":"45066:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9969,"mutability":"mutable","name":"p3","nameLocation":"45083:2:20","nodeType":"VariableDeclaration","scope":9984,"src":"45078:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9968,"name":"bool","nodeType":"ElementaryTypeName","src":"45078:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45044:42:20"},"returnParameters":{"id":9971,"nodeType":"ParameterList","parameters":[],"src":"45101:0:20"},"scope":12860,"src":"45032:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10006,"nodeType":"Block","src":"45286:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c75696e743235362c6164647265737329","id":9998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45336:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},"value":"log(bool,uint256,uint256,address)"},{"id":9999,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9986,"src":"45373:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10000,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9988,"src":"45377:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10001,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9990,"src":"45381:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10002,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9992,"src":"45385:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_00dd87b926eb0a94d5705f2c40026359b9577dfd5ddb2d0d51c86b3f4acb5010","typeString":"literal_string \"log(bool,uint256,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":9996,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45312:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45316:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45312:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45312:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":9995,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45296:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45296:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10005,"nodeType":"ExpressionStatement","src":"45296:93:20"}]},"id":10007,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45223:3:20","nodeType":"FunctionDefinition","parameters":{"id":9993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9986,"mutability":"mutable","name":"p0","nameLocation":"45232:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45227:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9985,"name":"bool","nodeType":"ElementaryTypeName","src":"45227:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":9988,"mutability":"mutable","name":"p1","nameLocation":"45244:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45236:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9987,"name":"uint256","nodeType":"ElementaryTypeName","src":"45236:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9990,"mutability":"mutable","name":"p2","nameLocation":"45256:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45248:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9989,"name":"uint256","nodeType":"ElementaryTypeName","src":"45248:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":9992,"mutability":"mutable","name":"p3","nameLocation":"45268:2:20","nodeType":"VariableDeclaration","scope":10007,"src":"45260:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9991,"name":"address","nodeType":"ElementaryTypeName","src":"45260:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45226:45:20"},"returnParameters":{"id":9994,"nodeType":"ParameterList","parameters":[],"src":"45286:0:20"},"scope":12860,"src":"45214:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10029,"nodeType":"Block","src":"45480:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c75696e7432353629","id":10021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45530:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},"value":"log(bool,uint256,string,uint256)"},{"id":10022,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"45566:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10023,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10011,"src":"45570:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10024,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10013,"src":"45574:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10025,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10015,"src":"45578:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a1199e21848ce015eabd66ea7f6a3409c7fc6ef9bb322d84e4c06706c42747e","typeString":"literal_string \"log(bool,uint256,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10019,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45506:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45510:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45506:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45506:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10018,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45490:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45490:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10028,"nodeType":"ExpressionStatement","src":"45490:92:20"}]},"id":10030,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45411:3:20","nodeType":"FunctionDefinition","parameters":{"id":10016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10009,"mutability":"mutable","name":"p0","nameLocation":"45420:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45415:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10008,"name":"bool","nodeType":"ElementaryTypeName","src":"45415:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10011,"mutability":"mutable","name":"p1","nameLocation":"45432:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45424:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10010,"name":"uint256","nodeType":"ElementaryTypeName","src":"45424:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10013,"mutability":"mutable","name":"p2","nameLocation":"45450:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45436:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10012,"name":"string","nodeType":"ElementaryTypeName","src":"45436:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10015,"mutability":"mutable","name":"p3","nameLocation":"45462:2:20","nodeType":"VariableDeclaration","scope":10030,"src":"45454:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10014,"name":"uint256","nodeType":"ElementaryTypeName","src":"45454:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"45414:51:20"},"returnParameters":{"id":10017,"nodeType":"ParameterList","parameters":[],"src":"45480:0:20"},"scope":12860,"src":"45402:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10052,"nodeType":"Block","src":"45679:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c737472696e6729","id":10044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45729:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},"value":"log(bool,uint256,string,string)"},{"id":10045,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10032,"src":"45764:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10046,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10034,"src":"45768:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10047,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"45772:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10048,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10038,"src":"45776:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f5bc2249bce1f463dc4a6cae73d4e7be2aab36b6885cd1506575f16575a67f07","typeString":"literal_string \"log(bool,uint256,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10042,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45705:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10043,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45709:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45705:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45705:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10041,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45689:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45689:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10051,"nodeType":"ExpressionStatement","src":"45689:91:20"}]},"id":10053,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45604:3:20","nodeType":"FunctionDefinition","parameters":{"id":10039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10032,"mutability":"mutable","name":"p0","nameLocation":"45613:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45608:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10031,"name":"bool","nodeType":"ElementaryTypeName","src":"45608:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10034,"mutability":"mutable","name":"p1","nameLocation":"45625:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45617:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10033,"name":"uint256","nodeType":"ElementaryTypeName","src":"45617:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10036,"mutability":"mutable","name":"p2","nameLocation":"45643:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45629:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10035,"name":"string","nodeType":"ElementaryTypeName","src":"45629:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10038,"mutability":"mutable","name":"p3","nameLocation":"45661:2:20","nodeType":"VariableDeclaration","scope":10053,"src":"45647:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10037,"name":"string","nodeType":"ElementaryTypeName","src":"45647:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"45607:57:20"},"returnParameters":{"id":10040,"nodeType":"ParameterList","parameters":[],"src":"45679:0:20"},"scope":12860,"src":"45595:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10075,"nodeType":"Block","src":"45868:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c626f6f6c29","id":10067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"45918:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},"value":"log(bool,uint256,string,bool)"},{"id":10068,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10055,"src":"45951:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10069,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10057,"src":"45955:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10070,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10059,"src":"45959:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10071,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10061,"src":"45963:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e5e70b2b79ba63a1232a1075e7d527614bad7291574e41ebeb8ef428426395c2","typeString":"literal_string \"log(bool,uint256,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10065,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"45894:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"45898:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"45894:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45894:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10064,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"45878:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"45878:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10074,"nodeType":"ExpressionStatement","src":"45878:89:20"}]},"id":10076,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45802:3:20","nodeType":"FunctionDefinition","parameters":{"id":10062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10055,"mutability":"mutable","name":"p0","nameLocation":"45811:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45806:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10054,"name":"bool","nodeType":"ElementaryTypeName","src":"45806:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10057,"mutability":"mutable","name":"p1","nameLocation":"45823:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45815:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10056,"name":"uint256","nodeType":"ElementaryTypeName","src":"45815:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10059,"mutability":"mutable","name":"p2","nameLocation":"45841:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45827:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10058,"name":"string","nodeType":"ElementaryTypeName","src":"45827:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10061,"mutability":"mutable","name":"p3","nameLocation":"45850:2:20","nodeType":"VariableDeclaration","scope":10076,"src":"45845:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10060,"name":"bool","nodeType":"ElementaryTypeName","src":"45845:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"45805:48:20"},"returnParameters":{"id":10063,"nodeType":"ParameterList","parameters":[],"src":"45868:0:20"},"scope":12860,"src":"45793:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10098,"nodeType":"Block","src":"46058:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c737472696e672c6164647265737329","id":10090,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46108:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},"value":"log(bool,uint256,string,address)"},{"id":10091,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10078,"src":"46144:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10092,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10080,"src":"46148:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10093,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10082,"src":"46152:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10094,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10084,"src":"46156:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fedd1fffaad08b0e5474b192f50d84da9ca48f54859d4d4f42d00bf3f4781fab","typeString":"literal_string \"log(bool,uint256,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10088,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46084:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10089,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46088:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46084:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10095,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46084:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10087,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46068:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46068:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10097,"nodeType":"ExpressionStatement","src":"46068:92:20"}]},"id":10099,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"45989:3:20","nodeType":"FunctionDefinition","parameters":{"id":10085,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10078,"mutability":"mutable","name":"p0","nameLocation":"45998:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"45993:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10077,"name":"bool","nodeType":"ElementaryTypeName","src":"45993:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10080,"mutability":"mutable","name":"p1","nameLocation":"46010:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"46002:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10079,"name":"uint256","nodeType":"ElementaryTypeName","src":"46002:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10082,"mutability":"mutable","name":"p2","nameLocation":"46028:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"46014:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10081,"name":"string","nodeType":"ElementaryTypeName","src":"46014:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10084,"mutability":"mutable","name":"p3","nameLocation":"46040:2:20","nodeType":"VariableDeclaration","scope":10099,"src":"46032:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10083,"name":"address","nodeType":"ElementaryTypeName","src":"46032:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"45992:51:20"},"returnParameters":{"id":10086,"nodeType":"ParameterList","parameters":[],"src":"46058:0:20"},"scope":12860,"src":"45980:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10121,"nodeType":"Block","src":"46242:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c75696e7432353629","id":10113,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46292:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},"value":"log(bool,uint256,bool,uint256)"},{"id":10114,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10101,"src":"46326:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10115,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10103,"src":"46330:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10116,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10105,"src":"46334:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10117,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10107,"src":"46338:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7f9bbca288abffbb423da5759392c2bb0e6c7c60dc55ee1c76da7b38adac1443","typeString":"literal_string \"log(bool,uint256,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10111,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46268:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10112,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46272:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46268:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46268:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10110,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46252:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46252:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10120,"nodeType":"ExpressionStatement","src":"46252:90:20"}]},"id":10122,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46182:3:20","nodeType":"FunctionDefinition","parameters":{"id":10108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10101,"mutability":"mutable","name":"p0","nameLocation":"46191:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46186:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10100,"name":"bool","nodeType":"ElementaryTypeName","src":"46186:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10103,"mutability":"mutable","name":"p1","nameLocation":"46203:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46195:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10102,"name":"uint256","nodeType":"ElementaryTypeName","src":"46195:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10105,"mutability":"mutable","name":"p2","nameLocation":"46212:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46207:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10104,"name":"bool","nodeType":"ElementaryTypeName","src":"46207:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10107,"mutability":"mutable","name":"p3","nameLocation":"46224:2:20","nodeType":"VariableDeclaration","scope":10122,"src":"46216:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10106,"name":"uint256","nodeType":"ElementaryTypeName","src":"46216:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46185:42:20"},"returnParameters":{"id":10109,"nodeType":"ParameterList","parameters":[],"src":"46242:0:20"},"scope":12860,"src":"46173:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10144,"nodeType":"Block","src":"46430:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c737472696e6729","id":10136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46480:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},"value":"log(bool,uint256,bool,string)"},{"id":10137,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10124,"src":"46513:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10138,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10126,"src":"46517:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10139,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10128,"src":"46521:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10140,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10130,"src":"46525:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9143dbb14a0962a6e3d7ec52e236cb9bf165b86383a96499ea4cf52b827d7ce0","typeString":"literal_string \"log(bool,uint256,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10134,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46456:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46460:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46456:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46456:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10133,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46440:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46440:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10143,"nodeType":"ExpressionStatement","src":"46440:89:20"}]},"id":10145,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46364:3:20","nodeType":"FunctionDefinition","parameters":{"id":10131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10124,"mutability":"mutable","name":"p0","nameLocation":"46373:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46368:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10123,"name":"bool","nodeType":"ElementaryTypeName","src":"46368:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10126,"mutability":"mutable","name":"p1","nameLocation":"46385:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46377:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10125,"name":"uint256","nodeType":"ElementaryTypeName","src":"46377:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10128,"mutability":"mutable","name":"p2","nameLocation":"46394:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46389:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10127,"name":"bool","nodeType":"ElementaryTypeName","src":"46389:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10130,"mutability":"mutable","name":"p3","nameLocation":"46412:2:20","nodeType":"VariableDeclaration","scope":10145,"src":"46398:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10129,"name":"string","nodeType":"ElementaryTypeName","src":"46398:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"46367:48:20"},"returnParameters":{"id":10132,"nodeType":"ParameterList","parameters":[],"src":"46430:0:20"},"scope":12860,"src":"46355:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10167,"nodeType":"Block","src":"46608:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c626f6f6c29","id":10159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46658:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},"value":"log(bool,uint256,bool,bool)"},{"id":10160,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"46689:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10161,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"46693:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10162,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"46697:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10163,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10153,"src":"46701:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ceb5f4d77121f3d3cfafeaa403e6fff70e4470d0bfb40c1d850f89e3d65029f2","typeString":"literal_string \"log(bool,uint256,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10157,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46634:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10158,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46638:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46634:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46634:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10156,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46618:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46618:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10166,"nodeType":"ExpressionStatement","src":"46618:87:20"}]},"id":10168,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46551:3:20","nodeType":"FunctionDefinition","parameters":{"id":10154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10147,"mutability":"mutable","name":"p0","nameLocation":"46560:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46555:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10146,"name":"bool","nodeType":"ElementaryTypeName","src":"46555:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10149,"mutability":"mutable","name":"p1","nameLocation":"46572:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46564:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10148,"name":"uint256","nodeType":"ElementaryTypeName","src":"46564:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10151,"mutability":"mutable","name":"p2","nameLocation":"46581:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46576:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10150,"name":"bool","nodeType":"ElementaryTypeName","src":"46576:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10153,"mutability":"mutable","name":"p3","nameLocation":"46590:2:20","nodeType":"VariableDeclaration","scope":10168,"src":"46585:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10152,"name":"bool","nodeType":"ElementaryTypeName","src":"46585:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"46554:39:20"},"returnParameters":{"id":10155,"nodeType":"ParameterList","parameters":[],"src":"46608:0:20"},"scope":12860,"src":"46542:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10190,"nodeType":"Block","src":"46787:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c626f6f6c2c6164647265737329","id":10182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"46837:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},"value":"log(bool,uint256,bool,address)"},{"id":10183,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10170,"src":"46871:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10184,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10172,"src":"46875:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10185,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10174,"src":"46879:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10186,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10176,"src":"46883:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9acd3616ce3d15d7b870c591206f600266707f40592e6070353f762f54c75a2e","typeString":"literal_string \"log(bool,uint256,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10180,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46813:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"46817:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46813:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46813:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10179,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46797:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46797:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10189,"nodeType":"ExpressionStatement","src":"46797:90:20"}]},"id":10191,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46727:3:20","nodeType":"FunctionDefinition","parameters":{"id":10177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10170,"mutability":"mutable","name":"p0","nameLocation":"46736:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46731:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10169,"name":"bool","nodeType":"ElementaryTypeName","src":"46731:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10172,"mutability":"mutable","name":"p1","nameLocation":"46748:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46740:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10171,"name":"uint256","nodeType":"ElementaryTypeName","src":"46740:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10174,"mutability":"mutable","name":"p2","nameLocation":"46757:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46752:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10173,"name":"bool","nodeType":"ElementaryTypeName","src":"46752:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10176,"mutability":"mutable","name":"p3","nameLocation":"46769:2:20","nodeType":"VariableDeclaration","scope":10191,"src":"46761:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10175,"name":"address","nodeType":"ElementaryTypeName","src":"46761:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"46730:42:20"},"returnParameters":{"id":10178,"nodeType":"ParameterList","parameters":[],"src":"46787:0:20"},"scope":12860,"src":"46718:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10213,"nodeType":"Block","src":"46972:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c75696e7432353629","id":10205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47022:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},"value":"log(bool,uint256,address,uint256)"},{"id":10206,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10193,"src":"47059:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10207,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10195,"src":"47063:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10208,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10197,"src":"47067:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10209,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10199,"src":"47071:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1537dc87a2086882c18d77c4157142ca3b6771cb00e940824367191cd9b5e560","typeString":"literal_string \"log(bool,uint256,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"46998:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47002:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"46998:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46998:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10202,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"46982:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"46982:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10212,"nodeType":"ExpressionStatement","src":"46982:93:20"}]},"id":10214,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"46909:3:20","nodeType":"FunctionDefinition","parameters":{"id":10200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10193,"mutability":"mutable","name":"p0","nameLocation":"46918:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46913:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10192,"name":"bool","nodeType":"ElementaryTypeName","src":"46913:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10195,"mutability":"mutable","name":"p1","nameLocation":"46930:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46922:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10194,"name":"uint256","nodeType":"ElementaryTypeName","src":"46922:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10197,"mutability":"mutable","name":"p2","nameLocation":"46942:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46934:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10196,"name":"address","nodeType":"ElementaryTypeName","src":"46934:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10199,"mutability":"mutable","name":"p3","nameLocation":"46954:2:20","nodeType":"VariableDeclaration","scope":10214,"src":"46946:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10198,"name":"uint256","nodeType":"ElementaryTypeName","src":"46946:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"46912:45:20"},"returnParameters":{"id":10201,"nodeType":"ParameterList","parameters":[],"src":"46972:0:20"},"scope":12860,"src":"46900:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10236,"nodeType":"Block","src":"47166:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c737472696e6729","id":10228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47216:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},"value":"log(bool,uint256,address,string)"},{"id":10229,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10216,"src":"47252:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10230,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10218,"src":"47256:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10231,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10220,"src":"47260:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10232,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10222,"src":"47264:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1bb3b09a4221f0a7df6a4e6e8ee3a14c54c5ebf8032d4ada871c774122536c94","typeString":"literal_string \"log(bool,uint256,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10226,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47192:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47196:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47192:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47192:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10225,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47176:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47176:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10235,"nodeType":"ExpressionStatement","src":"47176:92:20"}]},"id":10237,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47097:3:20","nodeType":"FunctionDefinition","parameters":{"id":10223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10216,"mutability":"mutable","name":"p0","nameLocation":"47106:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47101:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10215,"name":"bool","nodeType":"ElementaryTypeName","src":"47101:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10218,"mutability":"mutable","name":"p1","nameLocation":"47118:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47110:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10217,"name":"uint256","nodeType":"ElementaryTypeName","src":"47110:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10220,"mutability":"mutable","name":"p2","nameLocation":"47130:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47122:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10219,"name":"address","nodeType":"ElementaryTypeName","src":"47122:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10222,"mutability":"mutable","name":"p3","nameLocation":"47148:2:20","nodeType":"VariableDeclaration","scope":10237,"src":"47134:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10221,"name":"string","nodeType":"ElementaryTypeName","src":"47134:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47100:51:20"},"returnParameters":{"id":10224,"nodeType":"ParameterList","parameters":[],"src":"47166:0:20"},"scope":12860,"src":"47088:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10259,"nodeType":"Block","src":"47350:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c626f6f6c29","id":10251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47400:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},"value":"log(bool,uint256,address,bool)"},{"id":10252,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10239,"src":"47434:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10253,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10241,"src":"47438:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10254,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10243,"src":"47442:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10255,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10245,"src":"47446:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b4c314ff4d8914c4657179922b73426f4bcee4ae499bd03b5b3cf557ef247ea8","typeString":"literal_string \"log(bool,uint256,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10249,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47376:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47380:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47376:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47376:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10248,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47360:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47360:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10258,"nodeType":"ExpressionStatement","src":"47360:90:20"}]},"id":10260,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47290:3:20","nodeType":"FunctionDefinition","parameters":{"id":10246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10239,"mutability":"mutable","name":"p0","nameLocation":"47299:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47294:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10238,"name":"bool","nodeType":"ElementaryTypeName","src":"47294:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10241,"mutability":"mutable","name":"p1","nameLocation":"47311:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47303:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10240,"name":"uint256","nodeType":"ElementaryTypeName","src":"47303:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10243,"mutability":"mutable","name":"p2","nameLocation":"47323:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47315:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10242,"name":"address","nodeType":"ElementaryTypeName","src":"47315:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10245,"mutability":"mutable","name":"p3","nameLocation":"47332:2:20","nodeType":"VariableDeclaration","scope":10260,"src":"47327:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10244,"name":"bool","nodeType":"ElementaryTypeName","src":"47327:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"47293:42:20"},"returnParameters":{"id":10247,"nodeType":"ParameterList","parameters":[],"src":"47350:0:20"},"scope":12860,"src":"47281:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10282,"nodeType":"Block","src":"47535:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c75696e743235362c616464726573732c6164647265737329","id":10274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47585:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},"value":"log(bool,uint256,address,address)"},{"id":10275,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"47622:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10276,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"47626:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10277,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10266,"src":"47630:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10278,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10268,"src":"47634:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_26f560a852938fadf6addef4dd03c86f93715a295417544d6a793cb20f13b8dd","typeString":"literal_string \"log(bool,uint256,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10272,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47561:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47565:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47561:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47561:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10271,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47545:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47545:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10281,"nodeType":"ExpressionStatement","src":"47545:93:20"}]},"id":10283,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47472:3:20","nodeType":"FunctionDefinition","parameters":{"id":10269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"mutability":"mutable","name":"p0","nameLocation":"47481:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47476:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10261,"name":"bool","nodeType":"ElementaryTypeName","src":"47476:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10264,"mutability":"mutable","name":"p1","nameLocation":"47493:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47485:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10263,"name":"uint256","nodeType":"ElementaryTypeName","src":"47485:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10266,"mutability":"mutable","name":"p2","nameLocation":"47505:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47497:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10265,"name":"address","nodeType":"ElementaryTypeName","src":"47497:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10268,"mutability":"mutable","name":"p3","nameLocation":"47517:2:20","nodeType":"VariableDeclaration","scope":10283,"src":"47509:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10267,"name":"address","nodeType":"ElementaryTypeName","src":"47509:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"47475:45:20"},"returnParameters":{"id":10270,"nodeType":"ParameterList","parameters":[],"src":"47535:0:20"},"scope":12860,"src":"47463:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10305,"nodeType":"Block","src":"47729:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c75696e7432353629","id":10297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47779:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},"value":"log(bool,string,uint256,uint256)"},{"id":10298,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10285,"src":"47815:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10299,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10287,"src":"47819:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10300,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10289,"src":"47823:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10301,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10291,"src":"47827:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_28863fcbec29a80af15c2b8595f162a2324efa0e9f70b928971349e597c15cb0","typeString":"literal_string \"log(bool,string,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10295,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47755:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10296,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47759:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47755:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47755:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10294,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47739:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47739:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10304,"nodeType":"ExpressionStatement","src":"47739:92:20"}]},"id":10306,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47660:3:20","nodeType":"FunctionDefinition","parameters":{"id":10292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10285,"mutability":"mutable","name":"p0","nameLocation":"47669:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47664:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10284,"name":"bool","nodeType":"ElementaryTypeName","src":"47664:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10287,"mutability":"mutable","name":"p1","nameLocation":"47687:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47673:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10286,"name":"string","nodeType":"ElementaryTypeName","src":"47673:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10289,"mutability":"mutable","name":"p2","nameLocation":"47699:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47691:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10288,"name":"uint256","nodeType":"ElementaryTypeName","src":"47691:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10291,"mutability":"mutable","name":"p3","nameLocation":"47711:2:20","nodeType":"VariableDeclaration","scope":10306,"src":"47703:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10290,"name":"uint256","nodeType":"ElementaryTypeName","src":"47703:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"47663:51:20"},"returnParameters":{"id":10293,"nodeType":"ParameterList","parameters":[],"src":"47729:0:20"},"scope":12860,"src":"47651:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10328,"nodeType":"Block","src":"47928:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c737472696e6729","id":10320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"47978:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},"value":"log(bool,string,uint256,string)"},{"id":10321,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10308,"src":"48013:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10322,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10310,"src":"48017:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10323,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10312,"src":"48021:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10324,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10314,"src":"48025:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1ad96de6602c0b08f6631d6647303bccf3e586fcfa2c15fa04c5d6cbf0ffc70d","typeString":"literal_string \"log(bool,string,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10318,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"47954:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10319,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"47958:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"47954:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47954:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10317,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"47938:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"47938:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10327,"nodeType":"ExpressionStatement","src":"47938:91:20"}]},"id":10329,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"47853:3:20","nodeType":"FunctionDefinition","parameters":{"id":10315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10308,"mutability":"mutable","name":"p0","nameLocation":"47862:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47857:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10307,"name":"bool","nodeType":"ElementaryTypeName","src":"47857:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10310,"mutability":"mutable","name":"p1","nameLocation":"47880:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47866:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10309,"name":"string","nodeType":"ElementaryTypeName","src":"47866:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10312,"mutability":"mutable","name":"p2","nameLocation":"47892:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47884:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10311,"name":"uint256","nodeType":"ElementaryTypeName","src":"47884:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10314,"mutability":"mutable","name":"p3","nameLocation":"47910:2:20","nodeType":"VariableDeclaration","scope":10329,"src":"47896:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10313,"name":"string","nodeType":"ElementaryTypeName","src":"47896:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"47856:57:20"},"returnParameters":{"id":10316,"nodeType":"ParameterList","parameters":[],"src":"47928:0:20"},"scope":12860,"src":"47844:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10351,"nodeType":"Block","src":"48117:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c626f6f6c29","id":10343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48167:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},"value":"log(bool,string,uint256,bool)"},{"id":10344,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10331,"src":"48200:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10345,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10333,"src":"48204:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10346,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10335,"src":"48208:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10347,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10337,"src":"48212:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6b0e5d538cb3332d8fd45a0c2680232536414e292adbc2f70059f1d665e25411","typeString":"literal_string \"log(bool,string,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10341,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48143:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10342,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48147:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48143:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48143:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10340,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48127:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48127:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10350,"nodeType":"ExpressionStatement","src":"48127:89:20"}]},"id":10352,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48051:3:20","nodeType":"FunctionDefinition","parameters":{"id":10338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10331,"mutability":"mutable","name":"p0","nameLocation":"48060:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48055:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10330,"name":"bool","nodeType":"ElementaryTypeName","src":"48055:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10333,"mutability":"mutable","name":"p1","nameLocation":"48078:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48064:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10332,"name":"string","nodeType":"ElementaryTypeName","src":"48064:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10335,"mutability":"mutable","name":"p2","nameLocation":"48090:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48082:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10334,"name":"uint256","nodeType":"ElementaryTypeName","src":"48082:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10337,"mutability":"mutable","name":"p3","nameLocation":"48099:2:20","nodeType":"VariableDeclaration","scope":10352,"src":"48094:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10336,"name":"bool","nodeType":"ElementaryTypeName","src":"48094:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48054:48:20"},"returnParameters":{"id":10339,"nodeType":"ParameterList","parameters":[],"src":"48117:0:20"},"scope":12860,"src":"48042:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10374,"nodeType":"Block","src":"48307:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c75696e743235362c6164647265737329","id":10366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48357:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},"value":"log(bool,string,uint256,address)"},{"id":10367,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10354,"src":"48393:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10368,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10356,"src":"48397:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10369,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10358,"src":"48401:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10370,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10360,"src":"48405:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1596a1ceb88c7fe162cbcf294bbc564db1eb943f277b50b442bf55dba1134056","typeString":"literal_string \"log(bool,string,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10364,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48333:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48337:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48333:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48333:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10363,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48317:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48317:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10373,"nodeType":"ExpressionStatement","src":"48317:92:20"}]},"id":10375,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48238:3:20","nodeType":"FunctionDefinition","parameters":{"id":10361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10354,"mutability":"mutable","name":"p0","nameLocation":"48247:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10353,"name":"bool","nodeType":"ElementaryTypeName","src":"48242:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10356,"mutability":"mutable","name":"p1","nameLocation":"48265:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48251:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10355,"name":"string","nodeType":"ElementaryTypeName","src":"48251:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10358,"mutability":"mutable","name":"p2","nameLocation":"48277:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48269:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10357,"name":"uint256","nodeType":"ElementaryTypeName","src":"48269:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10360,"mutability":"mutable","name":"p3","nameLocation":"48289:2:20","nodeType":"VariableDeclaration","scope":10375,"src":"48281:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10359,"name":"address","nodeType":"ElementaryTypeName","src":"48281:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"48241:51:20"},"returnParameters":{"id":10362,"nodeType":"ParameterList","parameters":[],"src":"48307:0:20"},"scope":12860,"src":"48229:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10397,"nodeType":"Block","src":"48506:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c75696e7432353629","id":10389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48556:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},"value":"log(bool,string,string,uint256)"},{"id":10390,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10377,"src":"48591:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10391,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10379,"src":"48595:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10392,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"48599:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10393,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10383,"src":"48603:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7be0c3eb1e87c47c60c12330b930fb496493960f97b03f8342bbe08fec9d20a2","typeString":"literal_string \"log(bool,string,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10387,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48532:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10388,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48536:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48532:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48532:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10386,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48516:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48516:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10396,"nodeType":"ExpressionStatement","src":"48516:91:20"}]},"id":10398,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48431:3:20","nodeType":"FunctionDefinition","parameters":{"id":10384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10377,"mutability":"mutable","name":"p0","nameLocation":"48440:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48435:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10376,"name":"bool","nodeType":"ElementaryTypeName","src":"48435:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10379,"mutability":"mutable","name":"p1","nameLocation":"48458:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48444:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10378,"name":"string","nodeType":"ElementaryTypeName","src":"48444:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10381,"mutability":"mutable","name":"p2","nameLocation":"48476:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48462:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10380,"name":"string","nodeType":"ElementaryTypeName","src":"48462:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10383,"mutability":"mutable","name":"p3","nameLocation":"48488:2:20","nodeType":"VariableDeclaration","scope":10398,"src":"48480:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10382,"name":"uint256","nodeType":"ElementaryTypeName","src":"48480:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"48434:57:20"},"returnParameters":{"id":10385,"nodeType":"ParameterList","parameters":[],"src":"48506:0:20"},"scope":12860,"src":"48422:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10420,"nodeType":"Block","src":"48710:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c737472696e6729","id":10412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48760:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},"value":"log(bool,string,string,string)"},{"id":10413,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10400,"src":"48794:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10414,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10402,"src":"48798:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10415,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10404,"src":"48802:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10416,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10406,"src":"48806:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1762e32af9fa924f818d8f4a6c92011d30129df73749081e0b95feea819a17c9","typeString":"literal_string \"log(bool,string,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10410,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48736:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48740:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48736:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48736:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10409,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48720:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48720:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10419,"nodeType":"ExpressionStatement","src":"48720:90:20"}]},"id":10421,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48629:3:20","nodeType":"FunctionDefinition","parameters":{"id":10407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10400,"mutability":"mutable","name":"p0","nameLocation":"48638:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48633:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10399,"name":"bool","nodeType":"ElementaryTypeName","src":"48633:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10402,"mutability":"mutable","name":"p1","nameLocation":"48656:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48642:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10401,"name":"string","nodeType":"ElementaryTypeName","src":"48642:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10404,"mutability":"mutable","name":"p2","nameLocation":"48674:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48660:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10403,"name":"string","nodeType":"ElementaryTypeName","src":"48660:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10406,"mutability":"mutable","name":"p3","nameLocation":"48692:2:20","nodeType":"VariableDeclaration","scope":10421,"src":"48678:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10405,"name":"string","nodeType":"ElementaryTypeName","src":"48678:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"48632:63:20"},"returnParameters":{"id":10408,"nodeType":"ParameterList","parameters":[],"src":"48710:0:20"},"scope":12860,"src":"48620:197:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10443,"nodeType":"Block","src":"48904:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c626f6f6c29","id":10435,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"48954:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},"value":"log(bool,string,string,bool)"},{"id":10436,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10423,"src":"48986:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10437,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10425,"src":"48990:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10438,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10427,"src":"48994:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10439,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10429,"src":"48998:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1e4b87e52d13efc5b368defba0463e423637ec55125c6230945d005f817198d1","typeString":"literal_string \"log(bool,string,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10433,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"48930:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10434,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"48934:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"48930:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48930:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10432,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"48914:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"48914:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10442,"nodeType":"ExpressionStatement","src":"48914:88:20"}]},"id":10444,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"48832:3:20","nodeType":"FunctionDefinition","parameters":{"id":10430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10423,"mutability":"mutable","name":"p0","nameLocation":"48841:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48836:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10422,"name":"bool","nodeType":"ElementaryTypeName","src":"48836:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10425,"mutability":"mutable","name":"p1","nameLocation":"48859:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48845:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10424,"name":"string","nodeType":"ElementaryTypeName","src":"48845:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10427,"mutability":"mutable","name":"p2","nameLocation":"48877:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48863:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10426,"name":"string","nodeType":"ElementaryTypeName","src":"48863:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10429,"mutability":"mutable","name":"p3","nameLocation":"48886:2:20","nodeType":"VariableDeclaration","scope":10444,"src":"48881:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10428,"name":"bool","nodeType":"ElementaryTypeName","src":"48881:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"48835:54:20"},"returnParameters":{"id":10431,"nodeType":"ParameterList","parameters":[],"src":"48904:0:20"},"scope":12860,"src":"48823:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10466,"nodeType":"Block","src":"49099:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c737472696e672c6164647265737329","id":10458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49149:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},"value":"log(bool,string,string,address)"},{"id":10459,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10446,"src":"49184:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10460,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10448,"src":"49188:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10461,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10450,"src":"49192:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10462,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10452,"src":"49196:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_97d394d89551bd441d1340d1c3dcc3b6160871bf042c6884bcb4049b2fa2bdb5","typeString":"literal_string \"log(bool,string,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10456,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49125:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10457,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49129:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49125:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49125:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10455,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49109:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49109:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10465,"nodeType":"ExpressionStatement","src":"49109:91:20"}]},"id":10467,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49024:3:20","nodeType":"FunctionDefinition","parameters":{"id":10453,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10446,"mutability":"mutable","name":"p0","nameLocation":"49033:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49028:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10445,"name":"bool","nodeType":"ElementaryTypeName","src":"49028:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10448,"mutability":"mutable","name":"p1","nameLocation":"49051:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49037:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10447,"name":"string","nodeType":"ElementaryTypeName","src":"49037:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10450,"mutability":"mutable","name":"p2","nameLocation":"49069:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49055:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10449,"name":"string","nodeType":"ElementaryTypeName","src":"49055:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10452,"mutability":"mutable","name":"p3","nameLocation":"49081:2:20","nodeType":"VariableDeclaration","scope":10467,"src":"49073:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10451,"name":"address","nodeType":"ElementaryTypeName","src":"49073:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49027:57:20"},"returnParameters":{"id":10454,"nodeType":"ParameterList","parameters":[],"src":"49099:0:20"},"scope":12860,"src":"49015:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10489,"nodeType":"Block","src":"49288:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c75696e7432353629","id":10481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49338:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},"value":"log(bool,string,bool,uint256)"},{"id":10482,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10469,"src":"49371:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10483,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10471,"src":"49375:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10484,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10473,"src":"49379:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10485,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10475,"src":"49383:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1606a393d6d8ee0e5b372b3b4baba691a3700cb155888ecb60500deb6038e937","typeString":"literal_string \"log(bool,string,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10479,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49314:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49318:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49314:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49314:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10478,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49298:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49298:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10488,"nodeType":"ExpressionStatement","src":"49298:89:20"}]},"id":10490,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49222:3:20","nodeType":"FunctionDefinition","parameters":{"id":10476,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10469,"mutability":"mutable","name":"p0","nameLocation":"49231:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49226:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10468,"name":"bool","nodeType":"ElementaryTypeName","src":"49226:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10471,"mutability":"mutable","name":"p1","nameLocation":"49249:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49235:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10470,"name":"string","nodeType":"ElementaryTypeName","src":"49235:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10473,"mutability":"mutable","name":"p2","nameLocation":"49258:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49253:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10472,"name":"bool","nodeType":"ElementaryTypeName","src":"49253:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10475,"mutability":"mutable","name":"p3","nameLocation":"49270:2:20","nodeType":"VariableDeclaration","scope":10490,"src":"49262:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10474,"name":"uint256","nodeType":"ElementaryTypeName","src":"49262:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49225:48:20"},"returnParameters":{"id":10477,"nodeType":"ParameterList","parameters":[],"src":"49288:0:20"},"scope":12860,"src":"49213:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10512,"nodeType":"Block","src":"49481:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c737472696e6729","id":10504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49531:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},"value":"log(bool,string,bool,string)"},{"id":10505,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10492,"src":"49563:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10506,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10494,"src":"49567:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10507,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10496,"src":"49571:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10508,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10498,"src":"49575:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_483d0416329d0c81c68975a0cac822497c590c00f8ae8be66af490d0f9215468","typeString":"literal_string \"log(bool,string,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10502,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49507:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49511:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49507:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49507:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10501,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49491:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49491:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10511,"nodeType":"ExpressionStatement","src":"49491:88:20"}]},"id":10513,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49409:3:20","nodeType":"FunctionDefinition","parameters":{"id":10499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10492,"mutability":"mutable","name":"p0","nameLocation":"49418:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49413:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10491,"name":"bool","nodeType":"ElementaryTypeName","src":"49413:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10494,"mutability":"mutable","name":"p1","nameLocation":"49436:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49422:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10493,"name":"string","nodeType":"ElementaryTypeName","src":"49422:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10496,"mutability":"mutable","name":"p2","nameLocation":"49445:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49440:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10495,"name":"bool","nodeType":"ElementaryTypeName","src":"49440:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10498,"mutability":"mutable","name":"p3","nameLocation":"49463:2:20","nodeType":"VariableDeclaration","scope":10513,"src":"49449:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10497,"name":"string","nodeType":"ElementaryTypeName","src":"49449:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"49412:54:20"},"returnParameters":{"id":10500,"nodeType":"ParameterList","parameters":[],"src":"49481:0:20"},"scope":12860,"src":"49400:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10535,"nodeType":"Block","src":"49664:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c626f6f6c29","id":10527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49714:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},"value":"log(bool,string,bool,bool)"},{"id":10528,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10515,"src":"49744:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10529,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10517,"src":"49748:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10530,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10519,"src":"49752:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10531,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10521,"src":"49756:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5e935b9ccf45ff13b5900aeaf3a593df3e9479fc07e9c213f5fcaa0951e91f","typeString":"literal_string \"log(bool,string,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49690:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49694:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49690:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49690:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10524,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49674:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49674:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10534,"nodeType":"ExpressionStatement","src":"49674:86:20"}]},"id":10536,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49601:3:20","nodeType":"FunctionDefinition","parameters":{"id":10522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10515,"mutability":"mutable","name":"p0","nameLocation":"49610:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49605:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10514,"name":"bool","nodeType":"ElementaryTypeName","src":"49605:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10517,"mutability":"mutable","name":"p1","nameLocation":"49628:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49614:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10516,"name":"string","nodeType":"ElementaryTypeName","src":"49614:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10519,"mutability":"mutable","name":"p2","nameLocation":"49637:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49632:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10518,"name":"bool","nodeType":"ElementaryTypeName","src":"49632:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10521,"mutability":"mutable","name":"p3","nameLocation":"49646:2:20","nodeType":"VariableDeclaration","scope":10536,"src":"49641:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10520,"name":"bool","nodeType":"ElementaryTypeName","src":"49641:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"49604:45:20"},"returnParameters":{"id":10523,"nodeType":"ParameterList","parameters":[],"src":"49664:0:20"},"scope":12860,"src":"49592:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10558,"nodeType":"Block","src":"49848:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c626f6f6c2c6164647265737329","id":10550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"49898:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},"value":"log(bool,string,bool,address)"},{"id":10551,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10538,"src":"49931:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10552,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10540,"src":"49935:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10553,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10542,"src":"49939:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10554,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10544,"src":"49943:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_538e06ab06366b189ea53da7c11628ee5730bc373b0bc64719bea1a2afab03c5","typeString":"literal_string \"log(bool,string,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10548,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"49874:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"49878:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"49874:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49874:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10547,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"49858:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"49858:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10557,"nodeType":"ExpressionStatement","src":"49858:89:20"}]},"id":10559,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49782:3:20","nodeType":"FunctionDefinition","parameters":{"id":10545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10538,"mutability":"mutable","name":"p0","nameLocation":"49791:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49786:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10537,"name":"bool","nodeType":"ElementaryTypeName","src":"49786:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10540,"mutability":"mutable","name":"p1","nameLocation":"49809:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49795:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10539,"name":"string","nodeType":"ElementaryTypeName","src":"49795:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10542,"mutability":"mutable","name":"p2","nameLocation":"49818:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49813:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10541,"name":"bool","nodeType":"ElementaryTypeName","src":"49813:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10544,"mutability":"mutable","name":"p3","nameLocation":"49830:2:20","nodeType":"VariableDeclaration","scope":10559,"src":"49822:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10543,"name":"address","nodeType":"ElementaryTypeName","src":"49822:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"49785:48:20"},"returnParameters":{"id":10546,"nodeType":"ParameterList","parameters":[],"src":"49848:0:20"},"scope":12860,"src":"49773:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10581,"nodeType":"Block","src":"50038:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c75696e7432353629","id":10573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50088:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},"value":"log(bool,string,address,uint256)"},{"id":10574,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10561,"src":"50124:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10575,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10563,"src":"50128:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10576,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10565,"src":"50132:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10577,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10567,"src":"50136:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a5cada94c7dfdda57d4cfcf14da44c63431bfd533756a6e0d0d0a684af164218","typeString":"literal_string \"log(bool,string,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10571,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50064:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10572,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50068:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50064:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50064:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10570,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50048:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50048:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10580,"nodeType":"ExpressionStatement","src":"50048:92:20"}]},"id":10582,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"49969:3:20","nodeType":"FunctionDefinition","parameters":{"id":10568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10561,"mutability":"mutable","name":"p0","nameLocation":"49978:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"49973:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10560,"name":"bool","nodeType":"ElementaryTypeName","src":"49973:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10563,"mutability":"mutable","name":"p1","nameLocation":"49996:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"49982:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10562,"name":"string","nodeType":"ElementaryTypeName","src":"49982:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10565,"mutability":"mutable","name":"p2","nameLocation":"50008:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"50000:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10564,"name":"address","nodeType":"ElementaryTypeName","src":"50000:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10567,"mutability":"mutable","name":"p3","nameLocation":"50020:2:20","nodeType":"VariableDeclaration","scope":10582,"src":"50012:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10566,"name":"uint256","nodeType":"ElementaryTypeName","src":"50012:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"49972:51:20"},"returnParameters":{"id":10569,"nodeType":"ParameterList","parameters":[],"src":"50038:0:20"},"scope":12860,"src":"49960:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10604,"nodeType":"Block","src":"50237:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c737472696e6729","id":10596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50287:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},"value":"log(bool,string,address,string)"},{"id":10597,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"50322:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10598,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10586,"src":"50326:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10599,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10588,"src":"50330:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10600,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10590,"src":"50334:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_12d6c788fea4d6144f2607e1e8821bec55a5c2dfdc4cece41a536f7b7831e7a7","typeString":"literal_string \"log(bool,string,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10594,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50263:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10595,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50267:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50263:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50263:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10593,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50247:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50247:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10603,"nodeType":"ExpressionStatement","src":"50247:91:20"}]},"id":10605,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50162:3:20","nodeType":"FunctionDefinition","parameters":{"id":10591,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10584,"mutability":"mutable","name":"p0","nameLocation":"50171:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50166:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10583,"name":"bool","nodeType":"ElementaryTypeName","src":"50166:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10586,"mutability":"mutable","name":"p1","nameLocation":"50189:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50175:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10585,"name":"string","nodeType":"ElementaryTypeName","src":"50175:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10588,"mutability":"mutable","name":"p2","nameLocation":"50201:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50193:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10587,"name":"address","nodeType":"ElementaryTypeName","src":"50193:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10590,"mutability":"mutable","name":"p3","nameLocation":"50219:2:20","nodeType":"VariableDeclaration","scope":10605,"src":"50205:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10589,"name":"string","nodeType":"ElementaryTypeName","src":"50205:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50165:57:20"},"returnParameters":{"id":10592,"nodeType":"ParameterList","parameters":[],"src":"50237:0:20"},"scope":12860,"src":"50153:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10627,"nodeType":"Block","src":"50426:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c626f6f6c29","id":10619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50476:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},"value":"log(bool,string,address,bool)"},{"id":10620,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10607,"src":"50509:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10621,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10609,"src":"50513:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10622,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10611,"src":"50517:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10623,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10613,"src":"50521:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6dd434ca1fa26d491bcd72b7fe69eb72d41cae8eadbda5a7f985734e1b80c67d","typeString":"literal_string \"log(bool,string,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10617,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50452:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50456:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50452:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50452:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10616,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50436:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50436:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10626,"nodeType":"ExpressionStatement","src":"50436:89:20"}]},"id":10628,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50360:3:20","nodeType":"FunctionDefinition","parameters":{"id":10614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10607,"mutability":"mutable","name":"p0","nameLocation":"50369:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50364:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10606,"name":"bool","nodeType":"ElementaryTypeName","src":"50364:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10609,"mutability":"mutable","name":"p1","nameLocation":"50387:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50373:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10608,"name":"string","nodeType":"ElementaryTypeName","src":"50373:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10611,"mutability":"mutable","name":"p2","nameLocation":"50399:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50391:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10610,"name":"address","nodeType":"ElementaryTypeName","src":"50391:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10613,"mutability":"mutable","name":"p3","nameLocation":"50408:2:20","nodeType":"VariableDeclaration","scope":10628,"src":"50403:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10612,"name":"bool","nodeType":"ElementaryTypeName","src":"50403:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"50363:48:20"},"returnParameters":{"id":10615,"nodeType":"ParameterList","parameters":[],"src":"50426:0:20"},"scope":12860,"src":"50351:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10650,"nodeType":"Block","src":"50616:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c737472696e672c616464726573732c6164647265737329","id":10642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50666:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},"value":"log(bool,string,address,address)"},{"id":10643,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10630,"src":"50702:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10644,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10632,"src":"50706:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10645,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10634,"src":"50710:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10646,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10636,"src":"50714:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2b2b18dc50ecc75180f201de41eca533fbda0c7bf525c06b5b8e87bc1d010822","typeString":"literal_string \"log(bool,string,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10640,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50642:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10641,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50646:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50642:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50642:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10639,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50626:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50626:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10649,"nodeType":"ExpressionStatement","src":"50626:92:20"}]},"id":10651,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50547:3:20","nodeType":"FunctionDefinition","parameters":{"id":10637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10630,"mutability":"mutable","name":"p0","nameLocation":"50556:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50551:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10629,"name":"bool","nodeType":"ElementaryTypeName","src":"50551:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10632,"mutability":"mutable","name":"p1","nameLocation":"50574:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50560:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10631,"name":"string","nodeType":"ElementaryTypeName","src":"50560:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10634,"mutability":"mutable","name":"p2","nameLocation":"50586:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50578:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10633,"name":"address","nodeType":"ElementaryTypeName","src":"50578:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10636,"mutability":"mutable","name":"p3","nameLocation":"50598:2:20","nodeType":"VariableDeclaration","scope":10651,"src":"50590:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10635,"name":"address","nodeType":"ElementaryTypeName","src":"50590:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"50550:51:20"},"returnParameters":{"id":10638,"nodeType":"ParameterList","parameters":[],"src":"50616:0:20"},"scope":12860,"src":"50538:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10673,"nodeType":"Block","src":"50800:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c75696e7432353629","id":10665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"50850:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},"value":"log(bool,bool,uint256,uint256)"},{"id":10666,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10653,"src":"50884:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10667,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10655,"src":"50888:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10668,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10657,"src":"50892:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10669,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10659,"src":"50896:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0bb00eab8772a517edb34ef48e9be8dbee2f7b7490bba02909d18953766a9d34","typeString":"literal_string \"log(bool,bool,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10663,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"50826:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"50830:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"50826:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50826:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10662,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50810:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50810:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10672,"nodeType":"ExpressionStatement","src":"50810:90:20"}]},"id":10674,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50740:3:20","nodeType":"FunctionDefinition","parameters":{"id":10660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10653,"mutability":"mutable","name":"p0","nameLocation":"50749:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10652,"name":"bool","nodeType":"ElementaryTypeName","src":"50744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10655,"mutability":"mutable","name":"p1","nameLocation":"50758:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50753:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10654,"name":"bool","nodeType":"ElementaryTypeName","src":"50753:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10657,"mutability":"mutable","name":"p2","nameLocation":"50770:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50762:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10656,"name":"uint256","nodeType":"ElementaryTypeName","src":"50762:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10659,"mutability":"mutable","name":"p3","nameLocation":"50782:2:20","nodeType":"VariableDeclaration","scope":10674,"src":"50774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10658,"name":"uint256","nodeType":"ElementaryTypeName","src":"50774:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"50743:42:20"},"returnParameters":{"id":10661,"nodeType":"ParameterList","parameters":[],"src":"50800:0:20"},"scope":12860,"src":"50731:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10696,"nodeType":"Block","src":"50988:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c737472696e6729","id":10688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51038:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},"value":"log(bool,bool,uint256,string)"},{"id":10689,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10676,"src":"51071:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10690,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10678,"src":"51075:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10691,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10680,"src":"51079:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10692,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10682,"src":"51083:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7dd4d0e0c518f4b352fd13daccf87a5d9bed9e01e109d2cd329f8180d1bf37cf","typeString":"literal_string \"log(bool,bool,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10686,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51014:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10687,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51018:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51014:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51014:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10685,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"50998:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"50998:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10695,"nodeType":"ExpressionStatement","src":"50998:89:20"}]},"id":10697,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"50922:3:20","nodeType":"FunctionDefinition","parameters":{"id":10683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10676,"mutability":"mutable","name":"p0","nameLocation":"50931:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50926:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10675,"name":"bool","nodeType":"ElementaryTypeName","src":"50926:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10678,"mutability":"mutable","name":"p1","nameLocation":"50940:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50935:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10677,"name":"bool","nodeType":"ElementaryTypeName","src":"50935:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10680,"mutability":"mutable","name":"p2","nameLocation":"50952:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50944:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10679,"name":"uint256","nodeType":"ElementaryTypeName","src":"50944:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10682,"mutability":"mutable","name":"p3","nameLocation":"50970:2:20","nodeType":"VariableDeclaration","scope":10697,"src":"50956:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10681,"name":"string","nodeType":"ElementaryTypeName","src":"50956:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"50925:48:20"},"returnParameters":{"id":10684,"nodeType":"ParameterList","parameters":[],"src":"50988:0:20"},"scope":12860,"src":"50913:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10719,"nodeType":"Block","src":"51166:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c626f6f6c29","id":10711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51216:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},"value":"log(bool,bool,uint256,bool)"},{"id":10712,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10699,"src":"51247:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10713,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10701,"src":"51251:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10714,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10703,"src":"51255:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10715,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10705,"src":"51259:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_619e4d0eef4ca09035d413eaba6f544cfd6dc9e01c2aeecde070c53237f5a842","typeString":"literal_string \"log(bool,bool,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10709,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51192:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51196:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51192:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51192:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10708,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51176:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51176:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10718,"nodeType":"ExpressionStatement","src":"51176:87:20"}]},"id":10720,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51109:3:20","nodeType":"FunctionDefinition","parameters":{"id":10706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10699,"mutability":"mutable","name":"p0","nameLocation":"51118:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51113:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10698,"name":"bool","nodeType":"ElementaryTypeName","src":"51113:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10701,"mutability":"mutable","name":"p1","nameLocation":"51127:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51122:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10700,"name":"bool","nodeType":"ElementaryTypeName","src":"51122:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10703,"mutability":"mutable","name":"p2","nameLocation":"51139:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51131:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10702,"name":"uint256","nodeType":"ElementaryTypeName","src":"51131:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10705,"mutability":"mutable","name":"p3","nameLocation":"51148:2:20","nodeType":"VariableDeclaration","scope":10720,"src":"51143:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10704,"name":"bool","nodeType":"ElementaryTypeName","src":"51143:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51112:39:20"},"returnParameters":{"id":10707,"nodeType":"ParameterList","parameters":[],"src":"51166:0:20"},"scope":12860,"src":"51100:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10742,"nodeType":"Block","src":"51345:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c75696e743235362c6164647265737329","id":10734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51395:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},"value":"log(bool,bool,uint256,address)"},{"id":10735,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10722,"src":"51429:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10736,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10724,"src":"51433:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10737,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10726,"src":"51437:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":10738,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10728,"src":"51441:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_54a7a9a08e00a28d36d734cc45e318f9adc9ffbfd731cd45d0dc5a2abe2b9ac9","typeString":"literal_string \"log(bool,bool,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51371:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51375:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51371:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51371:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10731,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51355:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51355:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10741,"nodeType":"ExpressionStatement","src":"51355:90:20"}]},"id":10743,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51285:3:20","nodeType":"FunctionDefinition","parameters":{"id":10729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10722,"mutability":"mutable","name":"p0","nameLocation":"51294:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51289:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10721,"name":"bool","nodeType":"ElementaryTypeName","src":"51289:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10724,"mutability":"mutable","name":"p1","nameLocation":"51303:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51298:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10723,"name":"bool","nodeType":"ElementaryTypeName","src":"51298:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10726,"mutability":"mutable","name":"p2","nameLocation":"51315:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51307:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10725,"name":"uint256","nodeType":"ElementaryTypeName","src":"51307:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":10728,"mutability":"mutable","name":"p3","nameLocation":"51327:2:20","nodeType":"VariableDeclaration","scope":10743,"src":"51319:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10727,"name":"address","nodeType":"ElementaryTypeName","src":"51319:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"51288:42:20"},"returnParameters":{"id":10730,"nodeType":"ParameterList","parameters":[],"src":"51345:0:20"},"scope":12860,"src":"51276:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10765,"nodeType":"Block","src":"51533:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c75696e7432353629","id":10757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51583:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},"value":"log(bool,bool,string,uint256)"},{"id":10758,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10745,"src":"51616:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10759,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10747,"src":"51620:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10760,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10749,"src":"51624:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10761,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10751,"src":"51628:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e3a9ca2f5717705d404f75ae4eff025addb4f91e02ce7d2b9a424fc7423a8246","typeString":"literal_string \"log(bool,bool,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10755,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51559:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10756,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51563:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51559:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51559:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10754,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51543:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51543:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10764,"nodeType":"ExpressionStatement","src":"51543:89:20"}]},"id":10766,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51467:3:20","nodeType":"FunctionDefinition","parameters":{"id":10752,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10745,"mutability":"mutable","name":"p0","nameLocation":"51476:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51471:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10744,"name":"bool","nodeType":"ElementaryTypeName","src":"51471:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10747,"mutability":"mutable","name":"p1","nameLocation":"51485:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51480:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10746,"name":"bool","nodeType":"ElementaryTypeName","src":"51480:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10749,"mutability":"mutable","name":"p2","nameLocation":"51503:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51489:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10748,"name":"string","nodeType":"ElementaryTypeName","src":"51489:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10751,"mutability":"mutable","name":"p3","nameLocation":"51515:2:20","nodeType":"VariableDeclaration","scope":10766,"src":"51507:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10750,"name":"uint256","nodeType":"ElementaryTypeName","src":"51507:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"51470:48:20"},"returnParameters":{"id":10753,"nodeType":"ParameterList","parameters":[],"src":"51533:0:20"},"scope":12860,"src":"51458:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10788,"nodeType":"Block","src":"51726:105:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c737472696e6729","id":10780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51776:30:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},"value":"log(bool,bool,string,string)"},{"id":10781,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10768,"src":"51808:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10782,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10770,"src":"51812:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10783,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10772,"src":"51816:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10784,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10774,"src":"51820:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d1e87518c98344bc3efd52648f61de340bda51607aec409d641f3467caafaaf","typeString":"literal_string \"log(bool,bool,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10778,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51752:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51756:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51752:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51752:71:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10777,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51736:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51736:88:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10787,"nodeType":"ExpressionStatement","src":"51736:88:20"}]},"id":10789,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51654:3:20","nodeType":"FunctionDefinition","parameters":{"id":10775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10768,"mutability":"mutable","name":"p0","nameLocation":"51663:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51658:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10767,"name":"bool","nodeType":"ElementaryTypeName","src":"51658:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10770,"mutability":"mutable","name":"p1","nameLocation":"51672:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51667:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10769,"name":"bool","nodeType":"ElementaryTypeName","src":"51667:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10772,"mutability":"mutable","name":"p2","nameLocation":"51690:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51676:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10771,"name":"string","nodeType":"ElementaryTypeName","src":"51676:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10774,"mutability":"mutable","name":"p3","nameLocation":"51708:2:20","nodeType":"VariableDeclaration","scope":10789,"src":"51694:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10773,"name":"string","nodeType":"ElementaryTypeName","src":"51694:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"51657:54:20"},"returnParameters":{"id":10776,"nodeType":"ParameterList","parameters":[],"src":"51726:0:20"},"scope":12860,"src":"51645:186:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10811,"nodeType":"Block","src":"51909:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c626f6f6c29","id":10803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"51959:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},"value":"log(bool,bool,string,bool)"},{"id":10804,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10791,"src":"51989:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10805,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10793,"src":"51993:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10806,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10795,"src":"51997:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10807,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10797,"src":"52001:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b857163a2b7b8273ed53cefa410aa148f1833bdfc22da11e1e2fb89c6e625d02","typeString":"literal_string \"log(bool,bool,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10801,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"51935:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10802,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"51939:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"51935:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51935:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10800,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"51919:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"51919:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10810,"nodeType":"ExpressionStatement","src":"51919:86:20"}]},"id":10812,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"51846:3:20","nodeType":"FunctionDefinition","parameters":{"id":10798,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10791,"mutability":"mutable","name":"p0","nameLocation":"51855:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51850:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10790,"name":"bool","nodeType":"ElementaryTypeName","src":"51850:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10793,"mutability":"mutable","name":"p1","nameLocation":"51864:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51859:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10792,"name":"bool","nodeType":"ElementaryTypeName","src":"51859:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10795,"mutability":"mutable","name":"p2","nameLocation":"51882:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51868:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10794,"name":"string","nodeType":"ElementaryTypeName","src":"51868:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10797,"mutability":"mutable","name":"p3","nameLocation":"51891:2:20","nodeType":"VariableDeclaration","scope":10812,"src":"51886:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10796,"name":"bool","nodeType":"ElementaryTypeName","src":"51886:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"51849:45:20"},"returnParameters":{"id":10799,"nodeType":"ParameterList","parameters":[],"src":"51909:0:20"},"scope":12860,"src":"51837:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10834,"nodeType":"Block","src":"52093:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c737472696e672c6164647265737329","id":10826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52143:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},"value":"log(bool,bool,string,address)"},{"id":10827,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10814,"src":"52176:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10828,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10816,"src":"52180:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10829,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10818,"src":"52184:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":10830,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10820,"src":"52188:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f9ad2b893873fa31c02b102aa30743b2e44c102daa588ea9d1eb1f2baf23d202","typeString":"literal_string \"log(bool,bool,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10824,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52119:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10825,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52123:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52119:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52119:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10823,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52103:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52103:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10833,"nodeType":"ExpressionStatement","src":"52103:89:20"}]},"id":10835,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52027:3:20","nodeType":"FunctionDefinition","parameters":{"id":10821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10814,"mutability":"mutable","name":"p0","nameLocation":"52036:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52031:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10813,"name":"bool","nodeType":"ElementaryTypeName","src":"52031:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10816,"mutability":"mutable","name":"p1","nameLocation":"52045:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52040:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10815,"name":"bool","nodeType":"ElementaryTypeName","src":"52040:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10818,"mutability":"mutable","name":"p2","nameLocation":"52063:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52049:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10817,"name":"string","nodeType":"ElementaryTypeName","src":"52049:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":10820,"mutability":"mutable","name":"p3","nameLocation":"52075:2:20","nodeType":"VariableDeclaration","scope":10835,"src":"52067:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10819,"name":"address","nodeType":"ElementaryTypeName","src":"52067:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52030:48:20"},"returnParameters":{"id":10822,"nodeType":"ParameterList","parameters":[],"src":"52093:0:20"},"scope":12860,"src":"52018:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10857,"nodeType":"Block","src":"52271:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c75696e7432353629","id":10849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52321:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},"value":"log(bool,bool,bool,uint256)"},{"id":10850,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10837,"src":"52352:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10851,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10839,"src":"52356:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10852,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10841,"src":"52360:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10853,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10843,"src":"52364:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6d7045c1b7eb7ef78b5ae54b2426a16952d89f674f6d689a4e37aa73bc076a7c","typeString":"literal_string \"log(bool,bool,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10847,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52297:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52301:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52297:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52297:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10846,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52281:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52281:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10856,"nodeType":"ExpressionStatement","src":"52281:87:20"}]},"id":10858,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52214:3:20","nodeType":"FunctionDefinition","parameters":{"id":10844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10837,"mutability":"mutable","name":"p0","nameLocation":"52223:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52218:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10836,"name":"bool","nodeType":"ElementaryTypeName","src":"52218:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10839,"mutability":"mutable","name":"p1","nameLocation":"52232:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52227:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10838,"name":"bool","nodeType":"ElementaryTypeName","src":"52227:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10841,"mutability":"mutable","name":"p2","nameLocation":"52241:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52236:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10840,"name":"bool","nodeType":"ElementaryTypeName","src":"52236:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10843,"mutability":"mutable","name":"p3","nameLocation":"52253:2:20","nodeType":"VariableDeclaration","scope":10858,"src":"52245:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10842,"name":"uint256","nodeType":"ElementaryTypeName","src":"52245:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52217:39:20"},"returnParameters":{"id":10845,"nodeType":"ParameterList","parameters":[],"src":"52271:0:20"},"scope":12860,"src":"52205:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10880,"nodeType":"Block","src":"52453:103:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c737472696e6729","id":10872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52503:28:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},"value":"log(bool,bool,bool,string)"},{"id":10873,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10860,"src":"52533:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10874,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10862,"src":"52537:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10875,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10864,"src":"52541:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10876,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10866,"src":"52545:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2ae408d4d030305a0361ad07c397f2b9653613b220d82459c7aeb9a6bab96c15","typeString":"literal_string \"log(bool,bool,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10870,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52479:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10871,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52483:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52479:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52479:69:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10869,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52463:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52463:86:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10879,"nodeType":"ExpressionStatement","src":"52463:86:20"}]},"id":10881,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52390:3:20","nodeType":"FunctionDefinition","parameters":{"id":10867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10860,"mutability":"mutable","name":"p0","nameLocation":"52399:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52394:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10859,"name":"bool","nodeType":"ElementaryTypeName","src":"52394:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10862,"mutability":"mutable","name":"p1","nameLocation":"52408:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52403:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10861,"name":"bool","nodeType":"ElementaryTypeName","src":"52403:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10864,"mutability":"mutable","name":"p2","nameLocation":"52417:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52412:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10863,"name":"bool","nodeType":"ElementaryTypeName","src":"52412:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10866,"mutability":"mutable","name":"p3","nameLocation":"52435:2:20","nodeType":"VariableDeclaration","scope":10881,"src":"52421:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10865,"name":"string","nodeType":"ElementaryTypeName","src":"52421:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"52393:45:20"},"returnParameters":{"id":10868,"nodeType":"ParameterList","parameters":[],"src":"52453:0:20"},"scope":12860,"src":"52381:175:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10903,"nodeType":"Block","src":"52625:101:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c626f6f6c29","id":10895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52675:26:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},"value":"log(bool,bool,bool,bool)"},{"id":10896,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10883,"src":"52703:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10897,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10885,"src":"52707:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10898,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10887,"src":"52711:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10899,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10889,"src":"52715:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3b2a5ce0ddf7b166153a4354c81efba12a817983a38c6bc3b58fd91ce816d99f","typeString":"literal_string \"log(bool,bool,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10893,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52651:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52655:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52651:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52651:67:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10892,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52635:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52635:84:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10902,"nodeType":"ExpressionStatement","src":"52635:84:20"}]},"id":10904,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52571:3:20","nodeType":"FunctionDefinition","parameters":{"id":10890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10883,"mutability":"mutable","name":"p0","nameLocation":"52580:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52575:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10882,"name":"bool","nodeType":"ElementaryTypeName","src":"52575:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10885,"mutability":"mutable","name":"p1","nameLocation":"52589:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52584:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10884,"name":"bool","nodeType":"ElementaryTypeName","src":"52584:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10887,"mutability":"mutable","name":"p2","nameLocation":"52598:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52593:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10886,"name":"bool","nodeType":"ElementaryTypeName","src":"52593:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10889,"mutability":"mutable","name":"p3","nameLocation":"52607:2:20","nodeType":"VariableDeclaration","scope":10904,"src":"52602:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10888,"name":"bool","nodeType":"ElementaryTypeName","src":"52602:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"52574:36:20"},"returnParameters":{"id":10891,"nodeType":"ParameterList","parameters":[],"src":"52625:0:20"},"scope":12860,"src":"52562:164:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10926,"nodeType":"Block","src":"52798:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c626f6f6c2c6164647265737329","id":10918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"52848:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},"value":"log(bool,bool,bool,address)"},{"id":10919,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10906,"src":"52879:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10920,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10908,"src":"52883:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10921,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10910,"src":"52887:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10922,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10912,"src":"52891:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c329b1a1752dedfc6b781d23096b49b7f905d62405e6e3f0ab0344786ff69f4","typeString":"literal_string \"log(bool,bool,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":10916,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"52824:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10917,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"52828:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"52824:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52824:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10915,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52808:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52808:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10925,"nodeType":"ExpressionStatement","src":"52808:87:20"}]},"id":10927,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52741:3:20","nodeType":"FunctionDefinition","parameters":{"id":10913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10906,"mutability":"mutable","name":"p0","nameLocation":"52750:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52745:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10905,"name":"bool","nodeType":"ElementaryTypeName","src":"52745:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10908,"mutability":"mutable","name":"p1","nameLocation":"52759:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52754:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10907,"name":"bool","nodeType":"ElementaryTypeName","src":"52754:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10910,"mutability":"mutable","name":"p2","nameLocation":"52768:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52763:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10909,"name":"bool","nodeType":"ElementaryTypeName","src":"52763:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10912,"mutability":"mutable","name":"p3","nameLocation":"52780:2:20","nodeType":"VariableDeclaration","scope":10927,"src":"52772:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10911,"name":"address","nodeType":"ElementaryTypeName","src":"52772:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"52744:39:20"},"returnParameters":{"id":10914,"nodeType":"ParameterList","parameters":[],"src":"52798:0:20"},"scope":12860,"src":"52732:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10949,"nodeType":"Block","src":"52977:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c75696e7432353629","id":10941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53027:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},"value":"log(bool,bool,address,uint256)"},{"id":10942,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10929,"src":"53061:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10943,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10931,"src":"53065:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10944,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10933,"src":"53069:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10945,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10935,"src":"53073:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4c123d5798ed03bd59911522da9ad7b1fc4e62f5a5de1c95ef20dc3897657cf1","typeString":"literal_string \"log(bool,bool,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":10939,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53003:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53007:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53003:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53003:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10938,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"52987:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"52987:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10948,"nodeType":"ExpressionStatement","src":"52987:90:20"}]},"id":10950,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"52917:3:20","nodeType":"FunctionDefinition","parameters":{"id":10936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10929,"mutability":"mutable","name":"p0","nameLocation":"52926:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52921:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10928,"name":"bool","nodeType":"ElementaryTypeName","src":"52921:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10931,"mutability":"mutable","name":"p1","nameLocation":"52935:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52930:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10930,"name":"bool","nodeType":"ElementaryTypeName","src":"52930:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10933,"mutability":"mutable","name":"p2","nameLocation":"52947:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52939:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10932,"name":"address","nodeType":"ElementaryTypeName","src":"52939:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10935,"mutability":"mutable","name":"p3","nameLocation":"52959:2:20","nodeType":"VariableDeclaration","scope":10950,"src":"52951:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10934,"name":"uint256","nodeType":"ElementaryTypeName","src":"52951:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"52920:42:20"},"returnParameters":{"id":10937,"nodeType":"ParameterList","parameters":[],"src":"52977:0:20"},"scope":12860,"src":"52908:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10972,"nodeType":"Block","src":"53165:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c737472696e6729","id":10964,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53215:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},"value":"log(bool,bool,address,string)"},{"id":10965,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10952,"src":"53248:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10966,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10954,"src":"53252:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10967,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10956,"src":"53256:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10968,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10958,"src":"53260:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a0a479635c05dee438b610769de0f667f2e93ee267e4cd4badf3dd44eb6271d2","typeString":"literal_string \"log(bool,bool,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":10962,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53191:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53195:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53191:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53191:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10961,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53175:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53175:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10971,"nodeType":"ExpressionStatement","src":"53175:89:20"}]},"id":10973,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53099:3:20","nodeType":"FunctionDefinition","parameters":{"id":10959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10952,"mutability":"mutable","name":"p0","nameLocation":"53108:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53103:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10951,"name":"bool","nodeType":"ElementaryTypeName","src":"53103:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10954,"mutability":"mutable","name":"p1","nameLocation":"53117:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53112:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10953,"name":"bool","nodeType":"ElementaryTypeName","src":"53112:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10956,"mutability":"mutable","name":"p2","nameLocation":"53129:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53121:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10955,"name":"address","nodeType":"ElementaryTypeName","src":"53121:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10958,"mutability":"mutable","name":"p3","nameLocation":"53147:2:20","nodeType":"VariableDeclaration","scope":10973,"src":"53133:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":10957,"name":"string","nodeType":"ElementaryTypeName","src":"53133:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53102:48:20"},"returnParameters":{"id":10960,"nodeType":"ParameterList","parameters":[],"src":"53165:0:20"},"scope":12860,"src":"53090:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":10995,"nodeType":"Block","src":"53343:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c626f6f6c29","id":10987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53393:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},"value":"log(bool,bool,address,bool)"},{"id":10988,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"53424:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10989,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"53428:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":10990,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"53432:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":10991,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"53436:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c0a302d8f11e8919127c20f396068f7014b94967efb042778db9b27b68ee1eaf","typeString":"literal_string \"log(bool,bool,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":10985,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53369:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10986,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53373:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53369:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":10992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53369:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10984,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53353:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":10993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53353:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10994,"nodeType":"ExpressionStatement","src":"53353:87:20"}]},"id":10996,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53286:3:20","nodeType":"FunctionDefinition","parameters":{"id":10982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10975,"mutability":"mutable","name":"p0","nameLocation":"53295:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53290:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10974,"name":"bool","nodeType":"ElementaryTypeName","src":"53290:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10977,"mutability":"mutable","name":"p1","nameLocation":"53304:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53299:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10976,"name":"bool","nodeType":"ElementaryTypeName","src":"53299:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":10979,"mutability":"mutable","name":"p2","nameLocation":"53316:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53308:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10978,"name":"address","nodeType":"ElementaryTypeName","src":"53308:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":10981,"mutability":"mutable","name":"p3","nameLocation":"53325:2:20","nodeType":"VariableDeclaration","scope":10996,"src":"53320:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10980,"name":"bool","nodeType":"ElementaryTypeName","src":"53320:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"53289:39:20"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[],"src":"53343:0:20"},"scope":12860,"src":"53277:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11018,"nodeType":"Block","src":"53522:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c626f6f6c2c616464726573732c6164647265737329","id":11010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53572:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},"value":"log(bool,bool,address,address)"},{"id":11011,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10998,"src":"53606:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11012,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11000,"src":"53610:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11013,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11002,"src":"53614:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11014,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11004,"src":"53618:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f4880ea4063b4f7e3c68468bb4a7a3f1502aa7497bce4fb0ba02ec0450f047f4","typeString":"literal_string \"log(bool,bool,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11008,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53548:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11009,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53552:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53548:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53548:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11007,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53532:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53532:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11017,"nodeType":"ExpressionStatement","src":"53532:90:20"}]},"id":11019,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53462:3:20","nodeType":"FunctionDefinition","parameters":{"id":11005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10998,"mutability":"mutable","name":"p0","nameLocation":"53471:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53466:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10997,"name":"bool","nodeType":"ElementaryTypeName","src":"53466:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11000,"mutability":"mutable","name":"p1","nameLocation":"53480:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53475:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":10999,"name":"bool","nodeType":"ElementaryTypeName","src":"53475:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11002,"mutability":"mutable","name":"p2","nameLocation":"53492:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53484:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11001,"name":"address","nodeType":"ElementaryTypeName","src":"53484:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11004,"mutability":"mutable","name":"p3","nameLocation":"53504:2:20","nodeType":"VariableDeclaration","scope":11019,"src":"53496:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11003,"name":"address","nodeType":"ElementaryTypeName","src":"53496:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"53465:42:20"},"returnParameters":{"id":11006,"nodeType":"ParameterList","parameters":[],"src":"53522:0:20"},"scope":12860,"src":"53453:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11041,"nodeType":"Block","src":"53707:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c75696e7432353629","id":11033,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53757:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},"value":"log(bool,address,uint256,uint256)"},{"id":11034,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11021,"src":"53794:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11035,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11023,"src":"53798:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11036,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11025,"src":"53802:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11037,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11027,"src":"53806:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7bf181a13b51d775e7d4339fb4fee9749d9226fa1720a2ae5e3183ab5674d16e","typeString":"literal_string \"log(bool,address,uint256,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11031,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53733:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53737:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53733:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53733:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11030,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53717:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53717:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11040,"nodeType":"ExpressionStatement","src":"53717:93:20"}]},"id":11042,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53644:3:20","nodeType":"FunctionDefinition","parameters":{"id":11028,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11021,"mutability":"mutable","name":"p0","nameLocation":"53653:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53648:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11020,"name":"bool","nodeType":"ElementaryTypeName","src":"53648:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11023,"mutability":"mutable","name":"p1","nameLocation":"53665:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53657:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11022,"name":"address","nodeType":"ElementaryTypeName","src":"53657:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11025,"mutability":"mutable","name":"p2","nameLocation":"53677:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53669:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11024,"name":"uint256","nodeType":"ElementaryTypeName","src":"53669:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11027,"mutability":"mutable","name":"p3","nameLocation":"53689:2:20","nodeType":"VariableDeclaration","scope":11042,"src":"53681:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11026,"name":"uint256","nodeType":"ElementaryTypeName","src":"53681:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"53647:45:20"},"returnParameters":{"id":11029,"nodeType":"ParameterList","parameters":[],"src":"53707:0:20"},"scope":12860,"src":"53635:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11064,"nodeType":"Block","src":"53901:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c737472696e6729","id":11056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"53951:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},"value":"log(bool,address,uint256,string)"},{"id":11057,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11044,"src":"53987:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11058,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11046,"src":"53991:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11059,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11048,"src":"53995:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11060,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11050,"src":"53999:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_51f09ff8d49d8535177ce9f46f86e22d6e0ebf6aab24e3ad1fe351dec9cb8af7","typeString":"literal_string \"log(bool,address,uint256,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"53927:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"53931:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"53927:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53927:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11053,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"53911:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"53911:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11063,"nodeType":"ExpressionStatement","src":"53911:92:20"}]},"id":11065,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"53832:3:20","nodeType":"FunctionDefinition","parameters":{"id":11051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11044,"mutability":"mutable","name":"p0","nameLocation":"53841:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53836:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11043,"name":"bool","nodeType":"ElementaryTypeName","src":"53836:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11046,"mutability":"mutable","name":"p1","nameLocation":"53853:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53845:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11045,"name":"address","nodeType":"ElementaryTypeName","src":"53845:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11048,"mutability":"mutable","name":"p2","nameLocation":"53865:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53857:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11047,"name":"uint256","nodeType":"ElementaryTypeName","src":"53857:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11050,"mutability":"mutable","name":"p3","nameLocation":"53883:2:20","nodeType":"VariableDeclaration","scope":11065,"src":"53869:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11049,"name":"string","nodeType":"ElementaryTypeName","src":"53869:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"53835:51:20"},"returnParameters":{"id":11052,"nodeType":"ParameterList","parameters":[],"src":"53901:0:20"},"scope":12860,"src":"53823:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11087,"nodeType":"Block","src":"54085:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c626f6f6c29","id":11079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54135:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},"value":"log(bool,address,uint256,bool)"},{"id":11080,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11067,"src":"54169:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11081,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11069,"src":"54173:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11082,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11071,"src":"54177:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11083,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11073,"src":"54181:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d6019f1c844577cb799272d8b580ae7d31e1d26be8513d99f3a91ca8ea67c958","typeString":"literal_string \"log(bool,address,uint256,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11077,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54111:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54115:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54111:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54111:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11076,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54095:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54095:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11086,"nodeType":"ExpressionStatement","src":"54095:90:20"}]},"id":11088,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54025:3:20","nodeType":"FunctionDefinition","parameters":{"id":11074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11067,"mutability":"mutable","name":"p0","nameLocation":"54034:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54029:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11066,"name":"bool","nodeType":"ElementaryTypeName","src":"54029:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11069,"mutability":"mutable","name":"p1","nameLocation":"54046:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54038:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11068,"name":"address","nodeType":"ElementaryTypeName","src":"54038:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11071,"mutability":"mutable","name":"p2","nameLocation":"54058:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54050:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11070,"name":"uint256","nodeType":"ElementaryTypeName","src":"54050:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11073,"mutability":"mutable","name":"p3","nameLocation":"54067:2:20","nodeType":"VariableDeclaration","scope":11088,"src":"54062:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11072,"name":"bool","nodeType":"ElementaryTypeName","src":"54062:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54028:42:20"},"returnParameters":{"id":11075,"nodeType":"ParameterList","parameters":[],"src":"54085:0:20"},"scope":12860,"src":"54016:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11110,"nodeType":"Block","src":"54270:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c75696e743235362c6164647265737329","id":11102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54320:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},"value":"log(bool,address,uint256,address)"},{"id":11103,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11090,"src":"54357:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11104,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11092,"src":"54361:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11105,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11094,"src":"54365:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11106,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11096,"src":"54369:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_136b05dd56dbfa6e97805ce657954968bb4ea366eef252c9fa3aec31b1aa7ebd","typeString":"literal_string \"log(bool,address,uint256,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11100,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54296:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54300:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54296:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54296:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11099,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54280:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54280:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11109,"nodeType":"ExpressionStatement","src":"54280:93:20"}]},"id":11111,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54207:3:20","nodeType":"FunctionDefinition","parameters":{"id":11097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11090,"mutability":"mutable","name":"p0","nameLocation":"54216:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54211:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11089,"name":"bool","nodeType":"ElementaryTypeName","src":"54211:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11092,"mutability":"mutable","name":"p1","nameLocation":"54228:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54220:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11091,"name":"address","nodeType":"ElementaryTypeName","src":"54220:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11094,"mutability":"mutable","name":"p2","nameLocation":"54240:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54232:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11093,"name":"uint256","nodeType":"ElementaryTypeName","src":"54232:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11096,"mutability":"mutable","name":"p3","nameLocation":"54252:2:20","nodeType":"VariableDeclaration","scope":11111,"src":"54244:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11095,"name":"address","nodeType":"ElementaryTypeName","src":"54244:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54210:45:20"},"returnParameters":{"id":11098,"nodeType":"ParameterList","parameters":[],"src":"54270:0:20"},"scope":12860,"src":"54198:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11133,"nodeType":"Block","src":"54464:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c75696e7432353629","id":11125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54514:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},"value":"log(bool,address,string,uint256)"},{"id":11126,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11113,"src":"54550:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11127,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11115,"src":"54554:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11128,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11117,"src":"54558:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11129,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11119,"src":"54562:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c21f64c781c24c69fbdf6daf185e821c3143831e9c7b3ede1933a6cffd68030d","typeString":"literal_string \"log(bool,address,string,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11123,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54490:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54494:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54490:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54490:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11122,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54474:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54474:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11132,"nodeType":"ExpressionStatement","src":"54474:92:20"}]},"id":11134,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54395:3:20","nodeType":"FunctionDefinition","parameters":{"id":11120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11113,"mutability":"mutable","name":"p0","nameLocation":"54404:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54399:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11112,"name":"bool","nodeType":"ElementaryTypeName","src":"54399:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11115,"mutability":"mutable","name":"p1","nameLocation":"54416:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54408:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11114,"name":"address","nodeType":"ElementaryTypeName","src":"54408:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11117,"mutability":"mutable","name":"p2","nameLocation":"54434:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54420:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11116,"name":"string","nodeType":"ElementaryTypeName","src":"54420:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11119,"mutability":"mutable","name":"p3","nameLocation":"54446:2:20","nodeType":"VariableDeclaration","scope":11134,"src":"54438:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11118,"name":"uint256","nodeType":"ElementaryTypeName","src":"54438:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"54398:51:20"},"returnParameters":{"id":11121,"nodeType":"ParameterList","parameters":[],"src":"54464:0:20"},"scope":12860,"src":"54386:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11156,"nodeType":"Block","src":"54663:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c737472696e6729","id":11148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54713:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},"value":"log(bool,address,string,string)"},{"id":11149,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11136,"src":"54748:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11150,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11138,"src":"54752:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11151,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11140,"src":"54756:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11152,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"54760:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a73c1db639dbf1382c9113eacdf5b14a7ccd81fc001ac60393623936011bf49d","typeString":"literal_string \"log(bool,address,string,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11146,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54689:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54693:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54689:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54689:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11145,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54673:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54673:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11155,"nodeType":"ExpressionStatement","src":"54673:91:20"}]},"id":11157,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54588:3:20","nodeType":"FunctionDefinition","parameters":{"id":11143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11136,"mutability":"mutable","name":"p0","nameLocation":"54597:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54592:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11135,"name":"bool","nodeType":"ElementaryTypeName","src":"54592:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11138,"mutability":"mutable","name":"p1","nameLocation":"54609:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54601:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11137,"name":"address","nodeType":"ElementaryTypeName","src":"54601:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11140,"mutability":"mutable","name":"p2","nameLocation":"54627:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54613:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11139,"name":"string","nodeType":"ElementaryTypeName","src":"54613:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11142,"mutability":"mutable","name":"p3","nameLocation":"54645:2:20","nodeType":"VariableDeclaration","scope":11157,"src":"54631:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11141,"name":"string","nodeType":"ElementaryTypeName","src":"54631:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"54591:57:20"},"returnParameters":{"id":11144,"nodeType":"ParameterList","parameters":[],"src":"54663:0:20"},"scope":12860,"src":"54579:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11179,"nodeType":"Block","src":"54852:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c626f6f6c29","id":11171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"54902:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},"value":"log(bool,address,string,bool)"},{"id":11172,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11159,"src":"54935:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11173,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11161,"src":"54939:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11174,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11163,"src":"54943:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11175,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11165,"src":"54947:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e2bfd60b4f6acdab0603dda631b69bf37ab7cbf71bc5953f9ed72c1f2a76f7dc","typeString":"literal_string \"log(bool,address,string,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11169,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"54878:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11170,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"54882:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"54878:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54878:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11168,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"54862:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"54862:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11178,"nodeType":"ExpressionStatement","src":"54862:89:20"}]},"id":11180,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54786:3:20","nodeType":"FunctionDefinition","parameters":{"id":11166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11159,"mutability":"mutable","name":"p0","nameLocation":"54795:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54790:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11158,"name":"bool","nodeType":"ElementaryTypeName","src":"54790:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11161,"mutability":"mutable","name":"p1","nameLocation":"54807:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54799:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11160,"name":"address","nodeType":"ElementaryTypeName","src":"54799:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11163,"mutability":"mutable","name":"p2","nameLocation":"54825:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54811:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11162,"name":"string","nodeType":"ElementaryTypeName","src":"54811:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11165,"mutability":"mutable","name":"p3","nameLocation":"54834:2:20","nodeType":"VariableDeclaration","scope":11180,"src":"54829:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11164,"name":"bool","nodeType":"ElementaryTypeName","src":"54829:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"54789:48:20"},"returnParameters":{"id":11167,"nodeType":"ParameterList","parameters":[],"src":"54852:0:20"},"scope":12860,"src":"54777:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11202,"nodeType":"Block","src":"55042:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c737472696e672c6164647265737329","id":11194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55092:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},"value":"log(bool,address,string,address)"},{"id":11195,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11182,"src":"55128:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11196,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11184,"src":"55132:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11197,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11186,"src":"55136:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11198,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11188,"src":"55140:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f7c603e9035cbc7959bb3d44ec862ddc6711eecebd67d54ceb0010f42f85654","typeString":"literal_string \"log(bool,address,string,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11192,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55068:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11193,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55072:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55068:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55068:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11191,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55052:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55052:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11201,"nodeType":"ExpressionStatement","src":"55052:92:20"}]},"id":11203,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"54973:3:20","nodeType":"FunctionDefinition","parameters":{"id":11189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11182,"mutability":"mutable","name":"p0","nameLocation":"54982:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"54977:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11181,"name":"bool","nodeType":"ElementaryTypeName","src":"54977:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11184,"mutability":"mutable","name":"p1","nameLocation":"54994:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"54986:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11183,"name":"address","nodeType":"ElementaryTypeName","src":"54986:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11186,"mutability":"mutable","name":"p2","nameLocation":"55012:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"54998:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11185,"name":"string","nodeType":"ElementaryTypeName","src":"54998:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11188,"mutability":"mutable","name":"p3","nameLocation":"55024:2:20","nodeType":"VariableDeclaration","scope":11203,"src":"55016:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11187,"name":"address","nodeType":"ElementaryTypeName","src":"55016:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"54976:51:20"},"returnParameters":{"id":11190,"nodeType":"ParameterList","parameters":[],"src":"55042:0:20"},"scope":12860,"src":"54964:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11225,"nodeType":"Block","src":"55226:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c75696e7432353629","id":11217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55276:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},"value":"log(bool,address,bool,uint256)"},{"id":11218,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11205,"src":"55310:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11219,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11207,"src":"55314:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11220,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11209,"src":"55318:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11221,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11211,"src":"55322:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_07831502b96d5b050adbd4ca2f9d4cd011dd7a8d3e1266dadb6c832ee8e56059","typeString":"literal_string \"log(bool,address,bool,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11215,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55252:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11216,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55256:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55252:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55252:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11214,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55236:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55236:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11224,"nodeType":"ExpressionStatement","src":"55236:90:20"}]},"id":11226,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55166:3:20","nodeType":"FunctionDefinition","parameters":{"id":11212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11205,"mutability":"mutable","name":"p0","nameLocation":"55175:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55170:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11204,"name":"bool","nodeType":"ElementaryTypeName","src":"55170:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11207,"mutability":"mutable","name":"p1","nameLocation":"55187:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55179:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11206,"name":"address","nodeType":"ElementaryTypeName","src":"55179:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11209,"mutability":"mutable","name":"p2","nameLocation":"55196:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55191:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11208,"name":"bool","nodeType":"ElementaryTypeName","src":"55191:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11211,"mutability":"mutable","name":"p3","nameLocation":"55208:2:20","nodeType":"VariableDeclaration","scope":11226,"src":"55200:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11210,"name":"uint256","nodeType":"ElementaryTypeName","src":"55200:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55169:42:20"},"returnParameters":{"id":11213,"nodeType":"ParameterList","parameters":[],"src":"55226:0:20"},"scope":12860,"src":"55157:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11248,"nodeType":"Block","src":"55414:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c737472696e6729","id":11240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55464:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},"value":"log(bool,address,bool,string)"},{"id":11241,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11228,"src":"55497:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11242,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11230,"src":"55501:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11243,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11232,"src":"55505:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11244,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11234,"src":"55509:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a66cb34796065525d301a5b87b440b55f1936e34dd66e2f2039307bc4e3ea59","typeString":"literal_string \"log(bool,address,bool,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11238,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55440:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55444:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55440:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55440:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11237,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55424:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55424:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11247,"nodeType":"ExpressionStatement","src":"55424:89:20"}]},"id":11249,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55348:3:20","nodeType":"FunctionDefinition","parameters":{"id":11235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11228,"mutability":"mutable","name":"p0","nameLocation":"55357:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55352:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11227,"name":"bool","nodeType":"ElementaryTypeName","src":"55352:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11230,"mutability":"mutable","name":"p1","nameLocation":"55369:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55361:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11229,"name":"address","nodeType":"ElementaryTypeName","src":"55361:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11232,"mutability":"mutable","name":"p2","nameLocation":"55378:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55373:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11231,"name":"bool","nodeType":"ElementaryTypeName","src":"55373:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11234,"mutability":"mutable","name":"p3","nameLocation":"55396:2:20","nodeType":"VariableDeclaration","scope":11249,"src":"55382:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11233,"name":"string","nodeType":"ElementaryTypeName","src":"55382:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"55351:48:20"},"returnParameters":{"id":11236,"nodeType":"ParameterList","parameters":[],"src":"55414:0:20"},"scope":12860,"src":"55339:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11271,"nodeType":"Block","src":"55592:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c626f6f6c29","id":11263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55642:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},"value":"log(bool,address,bool,bool)"},{"id":11264,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11251,"src":"55673:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11265,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11253,"src":"55677:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11266,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11255,"src":"55681:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11267,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11257,"src":"55685:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6a9c478bc98300d44308882e2e0b5864f2536a2939cb77105f503738b5832577","typeString":"literal_string \"log(bool,address,bool,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11261,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55618:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11262,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55622:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55618:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55618:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11260,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55602:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55602:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11270,"nodeType":"ExpressionStatement","src":"55602:87:20"}]},"id":11272,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55535:3:20","nodeType":"FunctionDefinition","parameters":{"id":11258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11251,"mutability":"mutable","name":"p0","nameLocation":"55544:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55539:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11250,"name":"bool","nodeType":"ElementaryTypeName","src":"55539:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11253,"mutability":"mutable","name":"p1","nameLocation":"55556:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55548:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11252,"name":"address","nodeType":"ElementaryTypeName","src":"55548:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11255,"mutability":"mutable","name":"p2","nameLocation":"55565:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55560:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11254,"name":"bool","nodeType":"ElementaryTypeName","src":"55560:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11257,"mutability":"mutable","name":"p3","nameLocation":"55574:2:20","nodeType":"VariableDeclaration","scope":11272,"src":"55569:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11256,"name":"bool","nodeType":"ElementaryTypeName","src":"55569:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"55538:39:20"},"returnParameters":{"id":11259,"nodeType":"ParameterList","parameters":[],"src":"55592:0:20"},"scope":12860,"src":"55526:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11294,"nodeType":"Block","src":"55771:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c626f6f6c2c6164647265737329","id":11286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"55821:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},"value":"log(bool,address,bool,address)"},{"id":11287,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11274,"src":"55855:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11288,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11276,"src":"55859:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11289,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"55863:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11290,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"55867:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1c41a336759f1c2fe1d8b137296b2dfbdcfe7114fc53f203852c2835c09f8870","typeString":"literal_string \"log(bool,address,bool,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11284,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55797:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11285,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55801:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55797:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55797:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11283,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55781:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55781:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11293,"nodeType":"ExpressionStatement","src":"55781:90:20"}]},"id":11295,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55711:3:20","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11274,"mutability":"mutable","name":"p0","nameLocation":"55720:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55715:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11273,"name":"bool","nodeType":"ElementaryTypeName","src":"55715:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11276,"mutability":"mutable","name":"p1","nameLocation":"55732:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55724:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11275,"name":"address","nodeType":"ElementaryTypeName","src":"55724:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11278,"mutability":"mutable","name":"p2","nameLocation":"55741:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55736:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11277,"name":"bool","nodeType":"ElementaryTypeName","src":"55736:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11280,"mutability":"mutable","name":"p3","nameLocation":"55753:2:20","nodeType":"VariableDeclaration","scope":11295,"src":"55745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11279,"name":"address","nodeType":"ElementaryTypeName","src":"55745:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"55714:42:20"},"returnParameters":{"id":11282,"nodeType":"ParameterList","parameters":[],"src":"55771:0:20"},"scope":12860,"src":"55702:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11317,"nodeType":"Block","src":"55956:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c75696e7432353629","id":11309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56006:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},"value":"log(bool,address,address,uint256)"},{"id":11310,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11297,"src":"56043:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11311,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11299,"src":"56047:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11312,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11301,"src":"56051:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11313,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11303,"src":"56055:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0c66d1be8b80b8d96088c57d6fc12897f737822d5beb6e751a923520a0a509b8","typeString":"literal_string \"log(bool,address,address,uint256)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11307,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"55982:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"55986:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"55982:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55982:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11306,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"55966:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"55966:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11316,"nodeType":"ExpressionStatement","src":"55966:93:20"}]},"id":11318,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"55893:3:20","nodeType":"FunctionDefinition","parameters":{"id":11304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11297,"mutability":"mutable","name":"p0","nameLocation":"55902:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55897:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11296,"name":"bool","nodeType":"ElementaryTypeName","src":"55897:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11299,"mutability":"mutable","name":"p1","nameLocation":"55914:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55906:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11298,"name":"address","nodeType":"ElementaryTypeName","src":"55906:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11301,"mutability":"mutable","name":"p2","nameLocation":"55926:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55918:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11300,"name":"address","nodeType":"ElementaryTypeName","src":"55918:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11303,"mutability":"mutable","name":"p3","nameLocation":"55938:2:20","nodeType":"VariableDeclaration","scope":11318,"src":"55930:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11302,"name":"uint256","nodeType":"ElementaryTypeName","src":"55930:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"55896:45:20"},"returnParameters":{"id":11305,"nodeType":"ParameterList","parameters":[],"src":"55956:0:20"},"scope":12860,"src":"55884:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11340,"nodeType":"Block","src":"56150:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c737472696e6729","id":11332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56200:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},"value":"log(bool,address,address,string)"},{"id":11333,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11320,"src":"56236:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11334,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11322,"src":"56240:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11335,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"56244:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11336,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11326,"src":"56248:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d812a167fb7ec8cf55a11f06ff411238f0a431de331592d8a735c8c8481f7432","typeString":"literal_string \"log(bool,address,address,string)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11330,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56176:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56180:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56176:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56176:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11329,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56160:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56160:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11339,"nodeType":"ExpressionStatement","src":"56160:92:20"}]},"id":11341,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56081:3:20","nodeType":"FunctionDefinition","parameters":{"id":11327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11320,"mutability":"mutable","name":"p0","nameLocation":"56090:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56085:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11319,"name":"bool","nodeType":"ElementaryTypeName","src":"56085:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11322,"mutability":"mutable","name":"p1","nameLocation":"56102:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56094:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11321,"name":"address","nodeType":"ElementaryTypeName","src":"56094:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11324,"mutability":"mutable","name":"p2","nameLocation":"56114:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56106:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11323,"name":"address","nodeType":"ElementaryTypeName","src":"56106:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11326,"mutability":"mutable","name":"p3","nameLocation":"56132:2:20","nodeType":"VariableDeclaration","scope":11341,"src":"56118:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11325,"name":"string","nodeType":"ElementaryTypeName","src":"56118:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56084:51:20"},"returnParameters":{"id":11328,"nodeType":"ParameterList","parameters":[],"src":"56150:0:20"},"scope":12860,"src":"56072:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11363,"nodeType":"Block","src":"56334:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c626f6f6c29","id":11355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56384:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},"value":"log(bool,address,address,bool)"},{"id":11356,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11343,"src":"56418:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11357,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11345,"src":"56422:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11358,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11347,"src":"56426:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11359,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11349,"src":"56430:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_46600be071bbf2a7e3a3cb4fd0e6efe39e86453e4c4a27c400470867be7afd9e","typeString":"literal_string \"log(bool,address,address,bool)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11353,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56360:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56364:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56360:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56360:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11352,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56344:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56344:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11362,"nodeType":"ExpressionStatement","src":"56344:90:20"}]},"id":11364,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56274:3:20","nodeType":"FunctionDefinition","parameters":{"id":11350,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11343,"mutability":"mutable","name":"p0","nameLocation":"56283:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56278:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11342,"name":"bool","nodeType":"ElementaryTypeName","src":"56278:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11345,"mutability":"mutable","name":"p1","nameLocation":"56295:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56287:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11344,"name":"address","nodeType":"ElementaryTypeName","src":"56287:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11347,"mutability":"mutable","name":"p2","nameLocation":"56307:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56299:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11346,"name":"address","nodeType":"ElementaryTypeName","src":"56299:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11349,"mutability":"mutable","name":"p3","nameLocation":"56316:2:20","nodeType":"VariableDeclaration","scope":11364,"src":"56311:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11348,"name":"bool","nodeType":"ElementaryTypeName","src":"56311:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"56277:42:20"},"returnParameters":{"id":11351,"nodeType":"ParameterList","parameters":[],"src":"56334:0:20"},"scope":12860,"src":"56265:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11386,"nodeType":"Block","src":"56519:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728626f6f6c2c616464726573732c616464726573732c6164647265737329","id":11378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56569:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},"value":"log(bool,address,address,address)"},{"id":11379,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11366,"src":"56606:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11380,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11368,"src":"56610:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11381,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11370,"src":"56614:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11382,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11372,"src":"56618:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1d14d00189540d88098b9fe614aa8c0efbe231c1a0fee05e7d705c0342377123","typeString":"literal_string \"log(bool,address,address,address)\""},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11376,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56545:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56549:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56545:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56545:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11375,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56529:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56529:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11385,"nodeType":"ExpressionStatement","src":"56529:93:20"}]},"id":11387,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56456:3:20","nodeType":"FunctionDefinition","parameters":{"id":11373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11366,"mutability":"mutable","name":"p0","nameLocation":"56465:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56460:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11365,"name":"bool","nodeType":"ElementaryTypeName","src":"56460:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11368,"mutability":"mutable","name":"p1","nameLocation":"56477:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56469:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11367,"name":"address","nodeType":"ElementaryTypeName","src":"56469:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11370,"mutability":"mutable","name":"p2","nameLocation":"56489:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56481:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11369,"name":"address","nodeType":"ElementaryTypeName","src":"56481:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11372,"mutability":"mutable","name":"p3","nameLocation":"56501:2:20","nodeType":"VariableDeclaration","scope":11387,"src":"56493:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11371,"name":"address","nodeType":"ElementaryTypeName","src":"56493:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"56459:45:20"},"returnParameters":{"id":11374,"nodeType":"ParameterList","parameters":[],"src":"56519:0:20"},"scope":12860,"src":"56447:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11409,"nodeType":"Block","src":"56710:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c75696e7432353629","id":11401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56760:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},"value":"log(address,uint256,uint256,uint256)"},{"id":11402,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11389,"src":"56800:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11403,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11391,"src":"56804:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11404,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11393,"src":"56808:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11405,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11395,"src":"56812:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_34f0e636808ebabd61ce9b247c78c7a38984ab35d5f29c0bd51299288509f6d6","typeString":"literal_string \"log(address,uint256,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11399,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56736:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11400,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56740:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56736:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56736:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11398,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56720:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56720:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11408,"nodeType":"ExpressionStatement","src":"56720:96:20"}]},"id":11410,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56644:3:20","nodeType":"FunctionDefinition","parameters":{"id":11396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11389,"mutability":"mutable","name":"p0","nameLocation":"56656:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56648:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11388,"name":"address","nodeType":"ElementaryTypeName","src":"56648:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11391,"mutability":"mutable","name":"p1","nameLocation":"56668:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56660:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11390,"name":"uint256","nodeType":"ElementaryTypeName","src":"56660:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11393,"mutability":"mutable","name":"p2","nameLocation":"56680:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56672:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11392,"name":"uint256","nodeType":"ElementaryTypeName","src":"56672:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11395,"mutability":"mutable","name":"p3","nameLocation":"56692:2:20","nodeType":"VariableDeclaration","scope":11410,"src":"56684:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11394,"name":"uint256","nodeType":"ElementaryTypeName","src":"56684:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"56647:48:20"},"returnParameters":{"id":11397,"nodeType":"ParameterList","parameters":[],"src":"56710:0:20"},"scope":12860,"src":"56635:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11432,"nodeType":"Block","src":"56910:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c737472696e6729","id":11424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"56960:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},"value":"log(address,uint256,uint256,string)"},{"id":11425,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11412,"src":"56999:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11426,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11414,"src":"57003:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11427,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11416,"src":"57007:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11428,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11418,"src":"57011:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_4a28c017e545dc04fb82dd1a46d46ba463e69e0aeff774fbced9bedd205b6cf6","typeString":"literal_string \"log(address,uint256,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11422,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"56936:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11423,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"56940:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"56936:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56936:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11421,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"56920:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"56920:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11431,"nodeType":"ExpressionStatement","src":"56920:95:20"}]},"id":11433,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"56838:3:20","nodeType":"FunctionDefinition","parameters":{"id":11419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11412,"mutability":"mutable","name":"p0","nameLocation":"56850:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56842:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11411,"name":"address","nodeType":"ElementaryTypeName","src":"56842:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11414,"mutability":"mutable","name":"p1","nameLocation":"56862:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56854:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11413,"name":"uint256","nodeType":"ElementaryTypeName","src":"56854:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11416,"mutability":"mutable","name":"p2","nameLocation":"56874:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56866:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11415,"name":"uint256","nodeType":"ElementaryTypeName","src":"56866:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11418,"mutability":"mutable","name":"p3","nameLocation":"56892:2:20","nodeType":"VariableDeclaration","scope":11433,"src":"56878:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11417,"name":"string","nodeType":"ElementaryTypeName","src":"56878:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"56841:54:20"},"returnParameters":{"id":11420,"nodeType":"ParameterList","parameters":[],"src":"56910:0:20"},"scope":12860,"src":"56829:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11455,"nodeType":"Block","src":"57100:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c626f6f6c29","id":11447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57150:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},"value":"log(address,uint256,uint256,bool)"},{"id":11448,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11435,"src":"57187:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11449,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11437,"src":"57191:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11450,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11439,"src":"57195:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11451,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11441,"src":"57199:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_66f1bc67b5cb59260b3541ed684f0a38ab8f590dfff7947bd562de33eae3c57e","typeString":"literal_string \"log(address,uint256,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57126:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57130:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57126:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57126:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11444,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57110:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57110:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11454,"nodeType":"ExpressionStatement","src":"57110:93:20"}]},"id":11456,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57037:3:20","nodeType":"FunctionDefinition","parameters":{"id":11442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11435,"mutability":"mutable","name":"p0","nameLocation":"57049:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57041:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11434,"name":"address","nodeType":"ElementaryTypeName","src":"57041:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11437,"mutability":"mutable","name":"p1","nameLocation":"57061:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57053:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11436,"name":"uint256","nodeType":"ElementaryTypeName","src":"57053:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11439,"mutability":"mutable","name":"p2","nameLocation":"57073:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57065:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11438,"name":"uint256","nodeType":"ElementaryTypeName","src":"57065:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11441,"mutability":"mutable","name":"p3","nameLocation":"57082:2:20","nodeType":"VariableDeclaration","scope":11456,"src":"57077:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11440,"name":"bool","nodeType":"ElementaryTypeName","src":"57077:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57040:45:20"},"returnParameters":{"id":11443,"nodeType":"ParameterList","parameters":[],"src":"57100:0:20"},"scope":12860,"src":"57028:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11478,"nodeType":"Block","src":"57291:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c75696e743235362c6164647265737329","id":11470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57341:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},"value":"log(address,uint256,uint256,address)"},{"id":11471,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11458,"src":"57381:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11472,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11460,"src":"57385:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11473,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11462,"src":"57389:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11474,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11464,"src":"57393:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_20e3984d0b91232a40a479187d959e3fb7102cd2a40a0267e07a4f648290e390","typeString":"literal_string \"log(address,uint256,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11468,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57317:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57321:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57317:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57317:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11467,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57301:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57301:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11477,"nodeType":"ExpressionStatement","src":"57301:96:20"}]},"id":11479,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57225:3:20","nodeType":"FunctionDefinition","parameters":{"id":11465,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11458,"mutability":"mutable","name":"p0","nameLocation":"57237:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57229:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11457,"name":"address","nodeType":"ElementaryTypeName","src":"57229:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11460,"mutability":"mutable","name":"p1","nameLocation":"57249:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57241:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11459,"name":"uint256","nodeType":"ElementaryTypeName","src":"57241:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11462,"mutability":"mutable","name":"p2","nameLocation":"57261:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57253:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11461,"name":"uint256","nodeType":"ElementaryTypeName","src":"57253:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11464,"mutability":"mutable","name":"p3","nameLocation":"57273:2:20","nodeType":"VariableDeclaration","scope":11479,"src":"57265:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11463,"name":"address","nodeType":"ElementaryTypeName","src":"57265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"57228:48:20"},"returnParameters":{"id":11466,"nodeType":"ParameterList","parameters":[],"src":"57291:0:20"},"scope":12860,"src":"57216:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11501,"nodeType":"Block","src":"57491:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c75696e7432353629","id":11493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57541:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},"value":"log(address,uint256,string,uint256)"},{"id":11494,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11481,"src":"57580:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11495,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11483,"src":"57584:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11496,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11485,"src":"57588:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11497,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11487,"src":"57592:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bf01f89152073297823dffc184d44302911f7269a4d8bb68457feda7325d0054","typeString":"literal_string \"log(address,uint256,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11491,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57517:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57521:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57517:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57517:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11490,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57501:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57501:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11500,"nodeType":"ExpressionStatement","src":"57501:95:20"}]},"id":11502,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57419:3:20","nodeType":"FunctionDefinition","parameters":{"id":11488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11481,"mutability":"mutable","name":"p0","nameLocation":"57431:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57423:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11480,"name":"address","nodeType":"ElementaryTypeName","src":"57423:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11483,"mutability":"mutable","name":"p1","nameLocation":"57443:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57435:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11482,"name":"uint256","nodeType":"ElementaryTypeName","src":"57435:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11485,"mutability":"mutable","name":"p2","nameLocation":"57461:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57447:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11484,"name":"string","nodeType":"ElementaryTypeName","src":"57447:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11487,"mutability":"mutable","name":"p3","nameLocation":"57473:2:20","nodeType":"VariableDeclaration","scope":11502,"src":"57465:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11486,"name":"uint256","nodeType":"ElementaryTypeName","src":"57465:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"57422:54:20"},"returnParameters":{"id":11489,"nodeType":"ParameterList","parameters":[],"src":"57491:0:20"},"scope":12860,"src":"57410:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11524,"nodeType":"Block","src":"57696:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c737472696e6729","id":11516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57746:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},"value":"log(address,uint256,string,string)"},{"id":11517,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11504,"src":"57784:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11518,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11506,"src":"57788:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11519,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"57792:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11520,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11510,"src":"57796:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_88a8c40673ee8948292248925b0e9d44ca87355f3f886942e848cf22ee50e1c9","typeString":"literal_string \"log(address,uint256,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11514,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57722:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57726:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57722:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57722:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11513,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57706:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57706:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11523,"nodeType":"ExpressionStatement","src":"57706:94:20"}]},"id":11525,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57618:3:20","nodeType":"FunctionDefinition","parameters":{"id":11511,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11504,"mutability":"mutable","name":"p0","nameLocation":"57630:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57622:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11503,"name":"address","nodeType":"ElementaryTypeName","src":"57622:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11506,"mutability":"mutable","name":"p1","nameLocation":"57642:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57634:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11505,"name":"uint256","nodeType":"ElementaryTypeName","src":"57634:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11508,"mutability":"mutable","name":"p2","nameLocation":"57660:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57646:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11507,"name":"string","nodeType":"ElementaryTypeName","src":"57646:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11510,"mutability":"mutable","name":"p3","nameLocation":"57678:2:20","nodeType":"VariableDeclaration","scope":11525,"src":"57664:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11509,"name":"string","nodeType":"ElementaryTypeName","src":"57664:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"57621:60:20"},"returnParameters":{"id":11512,"nodeType":"ParameterList","parameters":[],"src":"57696:0:20"},"scope":12860,"src":"57609:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11547,"nodeType":"Block","src":"57891:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c626f6f6c29","id":11539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"57941:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},"value":"log(address,uint256,string,bool)"},{"id":11540,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11527,"src":"57977:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11541,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"57981:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11542,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11531,"src":"57985:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11543,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11533,"src":"57989:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf18105cbdc058258aaac7d4703aebeff683e464ae87b167f8bcabefd4799184","typeString":"literal_string \"log(address,uint256,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11537,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"57917:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"57921:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"57917:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57917:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11536,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"57901:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"57901:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11546,"nodeType":"ExpressionStatement","src":"57901:92:20"}]},"id":11548,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"57822:3:20","nodeType":"FunctionDefinition","parameters":{"id":11534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11527,"mutability":"mutable","name":"p0","nameLocation":"57834:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57826:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11526,"name":"address","nodeType":"ElementaryTypeName","src":"57826:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11529,"mutability":"mutable","name":"p1","nameLocation":"57846:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57838:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11528,"name":"uint256","nodeType":"ElementaryTypeName","src":"57838:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11531,"mutability":"mutable","name":"p2","nameLocation":"57864:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57850:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11530,"name":"string","nodeType":"ElementaryTypeName","src":"57850:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11533,"mutability":"mutable","name":"p3","nameLocation":"57873:2:20","nodeType":"VariableDeclaration","scope":11548,"src":"57868:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11532,"name":"bool","nodeType":"ElementaryTypeName","src":"57868:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"57825:51:20"},"returnParameters":{"id":11535,"nodeType":"ParameterList","parameters":[],"src":"57891:0:20"},"scope":12860,"src":"57813:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11570,"nodeType":"Block","src":"58087:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c737472696e672c6164647265737329","id":11562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58137:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},"value":"log(address,uint256,string,address)"},{"id":11563,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11550,"src":"58176:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11564,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11552,"src":"58180:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11565,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11554,"src":"58184:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11566,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11556,"src":"58188:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5c430d475ad8236f34d086a6aae3612106ae74c8621b8677d58f13dcda27570a","typeString":"literal_string \"log(address,uint256,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11560,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58113:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58117:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58113:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58113:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11559,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58097:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58097:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11569,"nodeType":"ExpressionStatement","src":"58097:95:20"}]},"id":11571,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58015:3:20","nodeType":"FunctionDefinition","parameters":{"id":11557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11550,"mutability":"mutable","name":"p0","nameLocation":"58027:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58019:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11549,"name":"address","nodeType":"ElementaryTypeName","src":"58019:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11552,"mutability":"mutable","name":"p1","nameLocation":"58039:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58031:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11551,"name":"uint256","nodeType":"ElementaryTypeName","src":"58031:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11554,"mutability":"mutable","name":"p2","nameLocation":"58057:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58043:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11553,"name":"string","nodeType":"ElementaryTypeName","src":"58043:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11556,"mutability":"mutable","name":"p3","nameLocation":"58069:2:20","nodeType":"VariableDeclaration","scope":11571,"src":"58061:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11555,"name":"address","nodeType":"ElementaryTypeName","src":"58061:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58018:54:20"},"returnParameters":{"id":11558,"nodeType":"ParameterList","parameters":[],"src":"58087:0:20"},"scope":12860,"src":"58006:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11593,"nodeType":"Block","src":"58277:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c75696e7432353629","id":11585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58327:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},"value":"log(address,uint256,bool,uint256)"},{"id":11586,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11573,"src":"58364:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11587,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11575,"src":"58368:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11588,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11577,"src":"58372:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11589,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11579,"src":"58376:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_22f6b999343c50207803e85ddd9e714a5457dacc91c49407b8de02bdaf889e5e","typeString":"literal_string \"log(address,uint256,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11583,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58303:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58307:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58303:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58303:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11582,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58287:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58287:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11592,"nodeType":"ExpressionStatement","src":"58287:93:20"}]},"id":11594,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58214:3:20","nodeType":"FunctionDefinition","parameters":{"id":11580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11573,"mutability":"mutable","name":"p0","nameLocation":"58226:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58218:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11572,"name":"address","nodeType":"ElementaryTypeName","src":"58218:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11575,"mutability":"mutable","name":"p1","nameLocation":"58238:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58230:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11574,"name":"uint256","nodeType":"ElementaryTypeName","src":"58230:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11577,"mutability":"mutable","name":"p2","nameLocation":"58247:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58242:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11576,"name":"bool","nodeType":"ElementaryTypeName","src":"58242:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11579,"mutability":"mutable","name":"p3","nameLocation":"58259:2:20","nodeType":"VariableDeclaration","scope":11594,"src":"58251:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11578,"name":"uint256","nodeType":"ElementaryTypeName","src":"58251:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58217:45:20"},"returnParameters":{"id":11581,"nodeType":"ParameterList","parameters":[],"src":"58277:0:20"},"scope":12860,"src":"58205:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11616,"nodeType":"Block","src":"58471:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c737472696e6729","id":11608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58521:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},"value":"log(address,uint256,bool,string)"},{"id":11609,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11596,"src":"58557:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11610,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11598,"src":"58561:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11611,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11600,"src":"58565:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11612,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11602,"src":"58569:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5ad85f9b1e72940e5c2ff98bcaf10dac65873a2d1f60566284e5a9bba66ce0b","typeString":"literal_string \"log(address,uint256,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58497:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58501:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58497:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58497:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11605,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58481:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58481:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11615,"nodeType":"ExpressionStatement","src":"58481:92:20"}]},"id":11617,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58402:3:20","nodeType":"FunctionDefinition","parameters":{"id":11603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11596,"mutability":"mutable","name":"p0","nameLocation":"58414:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58406:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11595,"name":"address","nodeType":"ElementaryTypeName","src":"58406:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11598,"mutability":"mutable","name":"p1","nameLocation":"58426:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58418:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11597,"name":"uint256","nodeType":"ElementaryTypeName","src":"58418:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11600,"mutability":"mutable","name":"p2","nameLocation":"58435:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58430:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11599,"name":"bool","nodeType":"ElementaryTypeName","src":"58430:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11602,"mutability":"mutable","name":"p3","nameLocation":"58453:2:20","nodeType":"VariableDeclaration","scope":11617,"src":"58439:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11601,"name":"string","nodeType":"ElementaryTypeName","src":"58439:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"58405:51:20"},"returnParameters":{"id":11604,"nodeType":"ParameterList","parameters":[],"src":"58471:0:20"},"scope":12860,"src":"58393:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11639,"nodeType":"Block","src":"58655:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c626f6f6c29","id":11631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58705:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},"value":"log(address,uint256,bool,bool)"},{"id":11632,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11619,"src":"58739:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11633,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11621,"src":"58743:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11634,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11623,"src":"58747:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11635,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11625,"src":"58751:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3bf5e5379bfb03415fbd47322e912c55a56b102cc24fbed41ca848047f460ae7","typeString":"literal_string \"log(address,uint256,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11629,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58681:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11630,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58685:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58681:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58681:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11628,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58665:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58665:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11638,"nodeType":"ExpressionStatement","src":"58665:90:20"}]},"id":11640,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58595:3:20","nodeType":"FunctionDefinition","parameters":{"id":11626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11619,"mutability":"mutable","name":"p0","nameLocation":"58607:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58599:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11618,"name":"address","nodeType":"ElementaryTypeName","src":"58599:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11621,"mutability":"mutable","name":"p1","nameLocation":"58619:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58611:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11620,"name":"uint256","nodeType":"ElementaryTypeName","src":"58611:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11623,"mutability":"mutable","name":"p2","nameLocation":"58628:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58623:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11622,"name":"bool","nodeType":"ElementaryTypeName","src":"58623:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11625,"mutability":"mutable","name":"p3","nameLocation":"58637:2:20","nodeType":"VariableDeclaration","scope":11640,"src":"58632:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11624,"name":"bool","nodeType":"ElementaryTypeName","src":"58632:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"58598:42:20"},"returnParameters":{"id":11627,"nodeType":"ParameterList","parameters":[],"src":"58655:0:20"},"scope":12860,"src":"58586:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11662,"nodeType":"Block","src":"58840:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c626f6f6c2c6164647265737329","id":11654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"58890:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},"value":"log(address,uint256,bool,address)"},{"id":11655,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11642,"src":"58927:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11656,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11644,"src":"58931:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11657,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11646,"src":"58935:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11658,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11648,"src":"58939:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a31bfdcce87cf9e77dc577737a291feb3aa727a8fbb8205e53519527c85ff290","typeString":"literal_string \"log(address,uint256,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11652,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"58866:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11653,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"58870:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"58866:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58866:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11651,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"58850:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"58850:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11661,"nodeType":"ExpressionStatement","src":"58850:93:20"}]},"id":11663,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58777:3:20","nodeType":"FunctionDefinition","parameters":{"id":11649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11642,"mutability":"mutable","name":"p0","nameLocation":"58789:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58781:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11641,"name":"address","nodeType":"ElementaryTypeName","src":"58781:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11644,"mutability":"mutable","name":"p1","nameLocation":"58801:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58793:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11643,"name":"uint256","nodeType":"ElementaryTypeName","src":"58793:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11646,"mutability":"mutable","name":"p2","nameLocation":"58810:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58805:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11645,"name":"bool","nodeType":"ElementaryTypeName","src":"58805:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11648,"mutability":"mutable","name":"p3","nameLocation":"58822:2:20","nodeType":"VariableDeclaration","scope":11663,"src":"58814:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11647,"name":"address","nodeType":"ElementaryTypeName","src":"58814:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"58780:45:20"},"returnParameters":{"id":11650,"nodeType":"ParameterList","parameters":[],"src":"58840:0:20"},"scope":12860,"src":"58768:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11685,"nodeType":"Block","src":"59031:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c75696e7432353629","id":11677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59081:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},"value":"log(address,uint256,address,uint256)"},{"id":11678,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11665,"src":"59121:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11679,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11667,"src":"59125:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11680,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11669,"src":"59129:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11681,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11671,"src":"59133:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_100f650ebf81cb406bb4fb842e06128992c5a86986b0eab3b9e965c3254516e6","typeString":"literal_string \"log(address,uint256,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11675,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59057:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59061:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59057:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59057:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11674,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59041:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59041:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11684,"nodeType":"ExpressionStatement","src":"59041:96:20"}]},"id":11686,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"58965:3:20","nodeType":"FunctionDefinition","parameters":{"id":11672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11665,"mutability":"mutable","name":"p0","nameLocation":"58977:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"58969:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11664,"name":"address","nodeType":"ElementaryTypeName","src":"58969:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11667,"mutability":"mutable","name":"p1","nameLocation":"58989:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"58981:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11666,"name":"uint256","nodeType":"ElementaryTypeName","src":"58981:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11669,"mutability":"mutable","name":"p2","nameLocation":"59001:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"58993:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11668,"name":"address","nodeType":"ElementaryTypeName","src":"58993:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11671,"mutability":"mutable","name":"p3","nameLocation":"59013:2:20","nodeType":"VariableDeclaration","scope":11686,"src":"59005:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11670,"name":"uint256","nodeType":"ElementaryTypeName","src":"59005:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"58968:48:20"},"returnParameters":{"id":11673,"nodeType":"ParameterList","parameters":[],"src":"59031:0:20"},"scope":12860,"src":"58956:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11708,"nodeType":"Block","src":"59231:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c737472696e6729","id":11700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59281:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},"value":"log(address,uint256,address,string)"},{"id":11701,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11688,"src":"59320:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11702,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11690,"src":"59324:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11703,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11692,"src":"59328:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11704,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11694,"src":"59332:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1da986ea2505037a166dd31728d673db1dd36bf0935c0201f0d23934a6acafdb","typeString":"literal_string \"log(address,uint256,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11698,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59257:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11699,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59261:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59257:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59257:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11697,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59241:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59241:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11707,"nodeType":"ExpressionStatement","src":"59241:95:20"}]},"id":11709,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59159:3:20","nodeType":"FunctionDefinition","parameters":{"id":11695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11688,"mutability":"mutable","name":"p0","nameLocation":"59171:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59163:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11687,"name":"address","nodeType":"ElementaryTypeName","src":"59163:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11690,"mutability":"mutable","name":"p1","nameLocation":"59183:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59175:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11689,"name":"uint256","nodeType":"ElementaryTypeName","src":"59175:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11692,"mutability":"mutable","name":"p2","nameLocation":"59195:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59187:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11691,"name":"address","nodeType":"ElementaryTypeName","src":"59187:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11694,"mutability":"mutable","name":"p3","nameLocation":"59213:2:20","nodeType":"VariableDeclaration","scope":11709,"src":"59199:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11693,"name":"string","nodeType":"ElementaryTypeName","src":"59199:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59162:54:20"},"returnParameters":{"id":11696,"nodeType":"ParameterList","parameters":[],"src":"59231:0:20"},"scope":12860,"src":"59150:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11731,"nodeType":"Block","src":"59421:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c626f6f6c29","id":11723,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59471:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},"value":"log(address,uint256,address,bool)"},{"id":11724,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11711,"src":"59508:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11725,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11713,"src":"59512:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11726,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11715,"src":"59516:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11727,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"59520:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a1bcc9b3f106a0ac6ebf0cd2eda5f636e4ab1afa891b1acb460dd180f14bb322","typeString":"literal_string \"log(address,uint256,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59447:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59451:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59447:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59447:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11720,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59431:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59431:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11730,"nodeType":"ExpressionStatement","src":"59431:93:20"}]},"id":11732,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59358:3:20","nodeType":"FunctionDefinition","parameters":{"id":11718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11711,"mutability":"mutable","name":"p0","nameLocation":"59370:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59362:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11710,"name":"address","nodeType":"ElementaryTypeName","src":"59362:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11713,"mutability":"mutable","name":"p1","nameLocation":"59382:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59374:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11712,"name":"uint256","nodeType":"ElementaryTypeName","src":"59374:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11715,"mutability":"mutable","name":"p2","nameLocation":"59394:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59386:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11714,"name":"address","nodeType":"ElementaryTypeName","src":"59386:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11717,"mutability":"mutable","name":"p3","nameLocation":"59403:2:20","nodeType":"VariableDeclaration","scope":11732,"src":"59398:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11716,"name":"bool","nodeType":"ElementaryTypeName","src":"59398:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"59361:45:20"},"returnParameters":{"id":11719,"nodeType":"ParameterList","parameters":[],"src":"59421:0:20"},"scope":12860,"src":"59349:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11754,"nodeType":"Block","src":"59612:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c75696e743235362c616464726573732c6164647265737329","id":11746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59662:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},"value":"log(address,uint256,address,address)"},{"id":11747,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11734,"src":"59702:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11748,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11736,"src":"59706:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11749,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11738,"src":"59710:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11750,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11740,"src":"59714:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_478d1c625a50f0548fbd6ce5c9463f034dc2ce146c930b3546dac402346457d4","typeString":"literal_string \"log(address,uint256,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11744,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59638:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59642:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59638:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59638:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11743,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59622:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59622:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11753,"nodeType":"ExpressionStatement","src":"59622:96:20"}]},"id":11755,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59546:3:20","nodeType":"FunctionDefinition","parameters":{"id":11741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11734,"mutability":"mutable","name":"p0","nameLocation":"59558:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59550:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11733,"name":"address","nodeType":"ElementaryTypeName","src":"59550:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11736,"mutability":"mutable","name":"p1","nameLocation":"59570:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59562:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11735,"name":"uint256","nodeType":"ElementaryTypeName","src":"59562:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11738,"mutability":"mutable","name":"p2","nameLocation":"59582:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59574:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11737,"name":"address","nodeType":"ElementaryTypeName","src":"59574:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11740,"mutability":"mutable","name":"p3","nameLocation":"59594:2:20","nodeType":"VariableDeclaration","scope":11755,"src":"59586:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11739,"name":"address","nodeType":"ElementaryTypeName","src":"59586:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"59549:48:20"},"returnParameters":{"id":11742,"nodeType":"ParameterList","parameters":[],"src":"59612:0:20"},"scope":12860,"src":"59537:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11777,"nodeType":"Block","src":"59812:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c75696e7432353629","id":11769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"59862:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},"value":"log(address,string,uint256,uint256)"},{"id":11770,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11757,"src":"59901:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11771,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11759,"src":"59905:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11772,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11761,"src":"59909:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11773,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11763,"src":"59913:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1dc8e1b86f5e8cc33f88f9c9577316d392566cde443e43069eebe8e56a0a0562","typeString":"literal_string \"log(address,string,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11767,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"59838:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"59842:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"59838:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59838:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11766,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"59822:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"59822:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11776,"nodeType":"ExpressionStatement","src":"59822:95:20"}]},"id":11778,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59740:3:20","nodeType":"FunctionDefinition","parameters":{"id":11764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11757,"mutability":"mutable","name":"p0","nameLocation":"59752:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59744:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11756,"name":"address","nodeType":"ElementaryTypeName","src":"59744:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11759,"mutability":"mutable","name":"p1","nameLocation":"59770:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59756:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11758,"name":"string","nodeType":"ElementaryTypeName","src":"59756:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11761,"mutability":"mutable","name":"p2","nameLocation":"59782:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59774:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11760,"name":"uint256","nodeType":"ElementaryTypeName","src":"59774:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11763,"mutability":"mutable","name":"p3","nameLocation":"59794:2:20","nodeType":"VariableDeclaration","scope":11778,"src":"59786:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11762,"name":"uint256","nodeType":"ElementaryTypeName","src":"59786:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"59743:54:20"},"returnParameters":{"id":11765,"nodeType":"ParameterList","parameters":[],"src":"59812:0:20"},"scope":12860,"src":"59731:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11800,"nodeType":"Block","src":"60017:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c737472696e6729","id":11792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60067:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},"value":"log(address,string,uint256,string)"},{"id":11793,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11780,"src":"60105:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11794,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11782,"src":"60109:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11795,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11784,"src":"60113:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11796,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11786,"src":"60117:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_448830a8c1281c2ef562207eb8a81eaf8ce3a05f5db2e480f1a7741f740725d3","typeString":"literal_string \"log(address,string,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11790,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60043:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11791,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60047:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60043:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60043:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11789,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60027:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60027:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11799,"nodeType":"ExpressionStatement","src":"60027:94:20"}]},"id":11801,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"59939:3:20","nodeType":"FunctionDefinition","parameters":{"id":11787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11780,"mutability":"mutable","name":"p0","nameLocation":"59951:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59943:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11779,"name":"address","nodeType":"ElementaryTypeName","src":"59943:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11782,"mutability":"mutable","name":"p1","nameLocation":"59969:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59955:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11781,"name":"string","nodeType":"ElementaryTypeName","src":"59955:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11784,"mutability":"mutable","name":"p2","nameLocation":"59981:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59973:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11783,"name":"uint256","nodeType":"ElementaryTypeName","src":"59973:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11786,"mutability":"mutable","name":"p3","nameLocation":"59999:2:20","nodeType":"VariableDeclaration","scope":11801,"src":"59985:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11785,"name":"string","nodeType":"ElementaryTypeName","src":"59985:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"59942:60:20"},"returnParameters":{"id":11788,"nodeType":"ParameterList","parameters":[],"src":"60017:0:20"},"scope":12860,"src":"59930:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11823,"nodeType":"Block","src":"60212:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c626f6f6c29","id":11815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60262:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},"value":"log(address,string,uint256,bool)"},{"id":11816,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11803,"src":"60298:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11817,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11805,"src":"60302:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11818,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11807,"src":"60306:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11819,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11809,"src":"60310:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0ef7e050655c297a96024e476b2cd79b6c7fd3efbcd797a5d2723a888114ada4","typeString":"literal_string \"log(address,string,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11813,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60238:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60242:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60238:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60238:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11812,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60222:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11821,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60222:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11822,"nodeType":"ExpressionStatement","src":"60222:92:20"}]},"id":11824,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60143:3:20","nodeType":"FunctionDefinition","parameters":{"id":11810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11803,"mutability":"mutable","name":"p0","nameLocation":"60155:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60147:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11802,"name":"address","nodeType":"ElementaryTypeName","src":"60147:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11805,"mutability":"mutable","name":"p1","nameLocation":"60173:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60159:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11804,"name":"string","nodeType":"ElementaryTypeName","src":"60159:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11807,"mutability":"mutable","name":"p2","nameLocation":"60185:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60177:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11806,"name":"uint256","nodeType":"ElementaryTypeName","src":"60177:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11809,"mutability":"mutable","name":"p3","nameLocation":"60194:2:20","nodeType":"VariableDeclaration","scope":11824,"src":"60189:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11808,"name":"bool","nodeType":"ElementaryTypeName","src":"60189:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60146:51:20"},"returnParameters":{"id":11811,"nodeType":"ParameterList","parameters":[],"src":"60212:0:20"},"scope":12860,"src":"60134:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11846,"nodeType":"Block","src":"60408:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c75696e743235362c6164647265737329","id":11838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60458:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},"value":"log(address,string,uint256,address)"},{"id":11839,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11826,"src":"60497:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11840,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11828,"src":"60501:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11841,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11830,"src":"60505:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":11842,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11832,"src":"60509:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_631836789e813227d6b1cf492359a1dbdd837663758bd3e55e319e4a730f0a18","typeString":"literal_string \"log(address,string,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11836,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60434:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60438:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60434:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60434:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11835,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60418:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60418:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11845,"nodeType":"ExpressionStatement","src":"60418:95:20"}]},"id":11847,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60336:3:20","nodeType":"FunctionDefinition","parameters":{"id":11833,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11826,"mutability":"mutable","name":"p0","nameLocation":"60348:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60340:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11825,"name":"address","nodeType":"ElementaryTypeName","src":"60340:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11828,"mutability":"mutable","name":"p1","nameLocation":"60366:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60352:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11827,"name":"string","nodeType":"ElementaryTypeName","src":"60352:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11830,"mutability":"mutable","name":"p2","nameLocation":"60378:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60370:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11829,"name":"uint256","nodeType":"ElementaryTypeName","src":"60370:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":11832,"mutability":"mutable","name":"p3","nameLocation":"60390:2:20","nodeType":"VariableDeclaration","scope":11847,"src":"60382:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11831,"name":"address","nodeType":"ElementaryTypeName","src":"60382:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"60339:54:20"},"returnParameters":{"id":11834,"nodeType":"ParameterList","parameters":[],"src":"60408:0:20"},"scope":12860,"src":"60327:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11869,"nodeType":"Block","src":"60613:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c75696e7432353629","id":11861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60663:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},"value":"log(address,string,string,uint256)"},{"id":11862,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11849,"src":"60701:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11863,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11851,"src":"60705:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11864,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11853,"src":"60709:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11865,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"60713:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_159f89272dbf40436b74fcc844c992c1f5cc6a7cc05a9db80782be1a20a8f265","typeString":"literal_string \"log(address,string,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11859,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60639:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60643:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60639:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60639:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11858,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60623:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60623:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11868,"nodeType":"ExpressionStatement","src":"60623:94:20"}]},"id":11870,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60535:3:20","nodeType":"FunctionDefinition","parameters":{"id":11856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11849,"mutability":"mutable","name":"p0","nameLocation":"60547:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60539:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11848,"name":"address","nodeType":"ElementaryTypeName","src":"60539:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11851,"mutability":"mutable","name":"p1","nameLocation":"60565:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60551:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11850,"name":"string","nodeType":"ElementaryTypeName","src":"60551:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11853,"mutability":"mutable","name":"p2","nameLocation":"60583:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60569:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11852,"name":"string","nodeType":"ElementaryTypeName","src":"60569:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11855,"mutability":"mutable","name":"p3","nameLocation":"60595:2:20","nodeType":"VariableDeclaration","scope":11870,"src":"60587:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11854,"name":"uint256","nodeType":"ElementaryTypeName","src":"60587:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"60538:60:20"},"returnParameters":{"id":11857,"nodeType":"ParameterList","parameters":[],"src":"60613:0:20"},"scope":12860,"src":"60526:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11892,"nodeType":"Block","src":"60823:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c737472696e6729","id":11884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"60873:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},"value":"log(address,string,string,string)"},{"id":11885,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11872,"src":"60910:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11886,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11874,"src":"60914:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11887,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11876,"src":"60918:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11888,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11878,"src":"60922:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5d02c50b371ad9a1f5c638dc99b5e9b545011f148f0be5233c530a4b2a12665c","typeString":"literal_string \"log(address,string,string,string)\""},{"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"}],"expression":{"id":11882,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"60849:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11883,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"60853:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"60849:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60849:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11881,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"60833:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11890,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"60833:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11891,"nodeType":"ExpressionStatement","src":"60833:93:20"}]},"id":11893,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60739:3:20","nodeType":"FunctionDefinition","parameters":{"id":11879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11872,"mutability":"mutable","name":"p0","nameLocation":"60751:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60743:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11871,"name":"address","nodeType":"ElementaryTypeName","src":"60743:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11874,"mutability":"mutable","name":"p1","nameLocation":"60769:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60755:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11873,"name":"string","nodeType":"ElementaryTypeName","src":"60755:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11876,"mutability":"mutable","name":"p2","nameLocation":"60787:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60773:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11875,"name":"string","nodeType":"ElementaryTypeName","src":"60773:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11878,"mutability":"mutable","name":"p3","nameLocation":"60805:2:20","nodeType":"VariableDeclaration","scope":11893,"src":"60791:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11877,"name":"string","nodeType":"ElementaryTypeName","src":"60791:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"60742:66:20"},"returnParameters":{"id":11880,"nodeType":"ParameterList","parameters":[],"src":"60823:0:20"},"scope":12860,"src":"60730:203:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11915,"nodeType":"Block","src":"61023:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c626f6f6c29","id":11907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61073:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},"value":"log(address,string,string,bool)"},{"id":11908,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11895,"src":"61108:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11909,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11897,"src":"61112:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11910,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11899,"src":"61116:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11911,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11901,"src":"61120:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_35a5071fa9f4610e50772083182f21e949e7a02301a3936e315dd1c4fc39a9ed","typeString":"literal_string \"log(address,string,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11905,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61049:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11906,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61053:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61049:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61049:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11904,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61033:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61033:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11914,"nodeType":"ExpressionStatement","src":"61033:91:20"}]},"id":11916,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"60948:3:20","nodeType":"FunctionDefinition","parameters":{"id":11902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11895,"mutability":"mutable","name":"p0","nameLocation":"60960:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"60952:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11894,"name":"address","nodeType":"ElementaryTypeName","src":"60952:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11897,"mutability":"mutable","name":"p1","nameLocation":"60978:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"60964:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11896,"name":"string","nodeType":"ElementaryTypeName","src":"60964:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11899,"mutability":"mutable","name":"p2","nameLocation":"60996:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"60982:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11898,"name":"string","nodeType":"ElementaryTypeName","src":"60982:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11901,"mutability":"mutable","name":"p3","nameLocation":"61005:2:20","nodeType":"VariableDeclaration","scope":11916,"src":"61000:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11900,"name":"bool","nodeType":"ElementaryTypeName","src":"61000:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"60951:57:20"},"returnParameters":{"id":11903,"nodeType":"ParameterList","parameters":[],"src":"61023:0:20"},"scope":12860,"src":"60939:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11938,"nodeType":"Block","src":"61224:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c737472696e672c6164647265737329","id":11930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61274:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},"value":"log(address,string,string,address)"},{"id":11931,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11918,"src":"61312:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11932,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11920,"src":"61316:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11933,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11922,"src":"61320:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11934,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11924,"src":"61324:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a04e2f87a739673cc9223810c24b00b35c6b2c9f3ef123cc82866752e1fa816f","typeString":"literal_string \"log(address,string,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":11928,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61250:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11929,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61254:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61250:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61250:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11927,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61234:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61234:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11937,"nodeType":"ExpressionStatement","src":"61234:94:20"}]},"id":11939,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61146:3:20","nodeType":"FunctionDefinition","parameters":{"id":11925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11918,"mutability":"mutable","name":"p0","nameLocation":"61158:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61150:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11917,"name":"address","nodeType":"ElementaryTypeName","src":"61150:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11920,"mutability":"mutable","name":"p1","nameLocation":"61176:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61162:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11919,"name":"string","nodeType":"ElementaryTypeName","src":"61162:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11922,"mutability":"mutable","name":"p2","nameLocation":"61194:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61180:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11921,"name":"string","nodeType":"ElementaryTypeName","src":"61180:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11924,"mutability":"mutable","name":"p3","nameLocation":"61206:2:20","nodeType":"VariableDeclaration","scope":11939,"src":"61198:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11923,"name":"address","nodeType":"ElementaryTypeName","src":"61198:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61149:60:20"},"returnParameters":{"id":11926,"nodeType":"ParameterList","parameters":[],"src":"61224:0:20"},"scope":12860,"src":"61137:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11961,"nodeType":"Block","src":"61419:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c75696e7432353629","id":11953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61469:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},"value":"log(address,string,bool,uint256)"},{"id":11954,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11941,"src":"61505:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11955,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11943,"src":"61509:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11956,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11945,"src":"61513:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11957,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"61517:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_515e38b61b40d622a4c0448953be005b3991f6a70155c59b5dca42a264aa0345","typeString":"literal_string \"log(address,string,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":11951,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61445:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11952,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61449:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61445:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61445:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11950,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61429:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61429:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11960,"nodeType":"ExpressionStatement","src":"61429:92:20"}]},"id":11962,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61350:3:20","nodeType":"FunctionDefinition","parameters":{"id":11948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11941,"mutability":"mutable","name":"p0","nameLocation":"61362:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61354:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11940,"name":"address","nodeType":"ElementaryTypeName","src":"61354:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11943,"mutability":"mutable","name":"p1","nameLocation":"61380:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61366:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11942,"name":"string","nodeType":"ElementaryTypeName","src":"61366:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11945,"mutability":"mutable","name":"p2","nameLocation":"61389:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61384:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11944,"name":"bool","nodeType":"ElementaryTypeName","src":"61384:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11947,"mutability":"mutable","name":"p3","nameLocation":"61401:2:20","nodeType":"VariableDeclaration","scope":11962,"src":"61393:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11946,"name":"uint256","nodeType":"ElementaryTypeName","src":"61393:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"61353:51:20"},"returnParameters":{"id":11949,"nodeType":"ParameterList","parameters":[],"src":"61419:0:20"},"scope":12860,"src":"61341:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":11984,"nodeType":"Block","src":"61618:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c737472696e6729","id":11976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61668:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},"value":"log(address,string,bool,string)"},{"id":11977,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11964,"src":"61703:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":11978,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11966,"src":"61707:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":11979,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11968,"src":"61711:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":11980,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11970,"src":"61715:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc0b61fe9497b47eb6a51a5a6a4bf26b32ddcbc9407ccae8cc7de64b3e3d84cc","typeString":"literal_string \"log(address,string,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":11974,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61644:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11975,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61648:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61644:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":11981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61644:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11973,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61628:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":11982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61628:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11983,"nodeType":"ExpressionStatement","src":"61628:91:20"}]},"id":11985,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61543:3:20","nodeType":"FunctionDefinition","parameters":{"id":11971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11964,"mutability":"mutable","name":"p0","nameLocation":"61555:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61547:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11963,"name":"address","nodeType":"ElementaryTypeName","src":"61547:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11966,"mutability":"mutable","name":"p1","nameLocation":"61573:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61559:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11965,"name":"string","nodeType":"ElementaryTypeName","src":"61559:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11968,"mutability":"mutable","name":"p2","nameLocation":"61582:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61577:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11967,"name":"bool","nodeType":"ElementaryTypeName","src":"61577:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11970,"mutability":"mutable","name":"p3","nameLocation":"61600:2:20","nodeType":"VariableDeclaration","scope":11985,"src":"61586:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11969,"name":"string","nodeType":"ElementaryTypeName","src":"61586:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"61546:57:20"},"returnParameters":{"id":11972,"nodeType":"ParameterList","parameters":[],"src":"61618:0:20"},"scope":12860,"src":"61534:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12007,"nodeType":"Block","src":"61807:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c626f6f6c29","id":11999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"61857:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},"value":"log(address,string,bool,bool)"},{"id":12000,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11987,"src":"61890:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12001,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11989,"src":"61894:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12002,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11991,"src":"61898:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12003,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11993,"src":"61902:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f1d5c9f0de8c048364058d1d6842804ada33dbc34bf9eaff8f2be978f384e08","typeString":"literal_string \"log(address,string,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":11997,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"61833:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11998,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"61837:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"61833:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61833:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11996,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"61817:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"61817:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12006,"nodeType":"ExpressionStatement","src":"61817:89:20"}]},"id":12008,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61741:3:20","nodeType":"FunctionDefinition","parameters":{"id":11994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11987,"mutability":"mutable","name":"p0","nameLocation":"61753:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61745:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11986,"name":"address","nodeType":"ElementaryTypeName","src":"61745:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":11989,"mutability":"mutable","name":"p1","nameLocation":"61771:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61757:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11988,"name":"string","nodeType":"ElementaryTypeName","src":"61757:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":11991,"mutability":"mutable","name":"p2","nameLocation":"61780:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61775:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11990,"name":"bool","nodeType":"ElementaryTypeName","src":"61775:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":11993,"mutability":"mutable","name":"p3","nameLocation":"61789:2:20","nodeType":"VariableDeclaration","scope":12008,"src":"61784:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11992,"name":"bool","nodeType":"ElementaryTypeName","src":"61784:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"61744:48:20"},"returnParameters":{"id":11995,"nodeType":"ParameterList","parameters":[],"src":"61807:0:20"},"scope":12860,"src":"61732:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12030,"nodeType":"Block","src":"61997:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c626f6f6c2c6164647265737329","id":12022,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62047:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},"value":"log(address,string,bool,address)"},{"id":12023,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12010,"src":"62083:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12024,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12012,"src":"62087:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12025,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12014,"src":"62091:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12026,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12016,"src":"62095:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_205871c2f2d320acdd350939b5fc035cc20b1a9cc058fb26f1c9fb3d2ba59970","typeString":"literal_string \"log(address,string,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12020,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62023:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62027:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62023:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62023:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12019,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62007:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12028,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62007:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12029,"nodeType":"ExpressionStatement","src":"62007:92:20"}]},"id":12031,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"61928:3:20","nodeType":"FunctionDefinition","parameters":{"id":12017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12010,"mutability":"mutable","name":"p0","nameLocation":"61940:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61932:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12009,"name":"address","nodeType":"ElementaryTypeName","src":"61932:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12012,"mutability":"mutable","name":"p1","nameLocation":"61958:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61944:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12011,"name":"string","nodeType":"ElementaryTypeName","src":"61944:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12014,"mutability":"mutable","name":"p2","nameLocation":"61967:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61962:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12013,"name":"bool","nodeType":"ElementaryTypeName","src":"61962:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12016,"mutability":"mutable","name":"p3","nameLocation":"61979:2:20","nodeType":"VariableDeclaration","scope":12031,"src":"61971:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12015,"name":"address","nodeType":"ElementaryTypeName","src":"61971:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"61931:51:20"},"returnParameters":{"id":12018,"nodeType":"ParameterList","parameters":[],"src":"61997:0:20"},"scope":12860,"src":"61919:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12053,"nodeType":"Block","src":"62193:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c75696e7432353629","id":12045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62243:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},"value":"log(address,string,address,uint256)"},{"id":12046,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12033,"src":"62282:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12047,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12035,"src":"62286:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12048,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12037,"src":"62290:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12049,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12039,"src":"62294:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_457fe3cf7da0d45ce051e53ef9adc21213d4d7779b5a0fadf99dea432be4beb7","typeString":"literal_string \"log(address,string,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12043,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62219:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12044,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62223:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62219:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62219:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12042,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62203:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62203:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12052,"nodeType":"ExpressionStatement","src":"62203:95:20"}]},"id":12054,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62121:3:20","nodeType":"FunctionDefinition","parameters":{"id":12040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12033,"mutability":"mutable","name":"p0","nameLocation":"62133:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62125:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12032,"name":"address","nodeType":"ElementaryTypeName","src":"62125:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12035,"mutability":"mutable","name":"p1","nameLocation":"62151:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62137:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12034,"name":"string","nodeType":"ElementaryTypeName","src":"62137:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12037,"mutability":"mutable","name":"p2","nameLocation":"62163:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62155:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12036,"name":"address","nodeType":"ElementaryTypeName","src":"62155:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12039,"mutability":"mutable","name":"p3","nameLocation":"62175:2:20","nodeType":"VariableDeclaration","scope":12054,"src":"62167:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12038,"name":"uint256","nodeType":"ElementaryTypeName","src":"62167:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62124:54:20"},"returnParameters":{"id":12041,"nodeType":"ParameterList","parameters":[],"src":"62193:0:20"},"scope":12860,"src":"62112:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12076,"nodeType":"Block","src":"62398:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c737472696e6729","id":12068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62448:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},"value":"log(address,string,address,string)"},{"id":12069,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12056,"src":"62486:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12070,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12058,"src":"62490:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12071,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12060,"src":"62494:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12072,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12062,"src":"62498:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f7e3624510fc5618feb98a49f5d4404e3749dacbdc916c267fea7b2051a08dea","typeString":"literal_string \"log(address,string,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12066,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62424:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62428:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62424:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62424:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12065,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62408:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62408:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12075,"nodeType":"ExpressionStatement","src":"62408:94:20"}]},"id":12077,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62320:3:20","nodeType":"FunctionDefinition","parameters":{"id":12063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12056,"mutability":"mutable","name":"p0","nameLocation":"62332:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62324:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12055,"name":"address","nodeType":"ElementaryTypeName","src":"62324:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12058,"mutability":"mutable","name":"p1","nameLocation":"62350:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62336:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12057,"name":"string","nodeType":"ElementaryTypeName","src":"62336:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12060,"mutability":"mutable","name":"p2","nameLocation":"62362:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62354:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12059,"name":"address","nodeType":"ElementaryTypeName","src":"62354:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12062,"mutability":"mutable","name":"p3","nameLocation":"62380:2:20","nodeType":"VariableDeclaration","scope":12077,"src":"62366:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12061,"name":"string","nodeType":"ElementaryTypeName","src":"62366:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"62323:60:20"},"returnParameters":{"id":12064,"nodeType":"ParameterList","parameters":[],"src":"62398:0:20"},"scope":12860,"src":"62311:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12099,"nodeType":"Block","src":"62593:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c626f6f6c29","id":12091,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62643:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},"value":"log(address,string,address,bool)"},{"id":12092,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12079,"src":"62679:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12093,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12081,"src":"62683:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12094,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12083,"src":"62687:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12095,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12085,"src":"62691:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0df12b7620e0bad204ac79fe9930fef9b9a40702161764a681594d50d657b081","typeString":"literal_string \"log(address,string,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62619:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62623:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62619:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62619:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12088,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62603:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62603:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12098,"nodeType":"ExpressionStatement","src":"62603:92:20"}]},"id":12100,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62524:3:20","nodeType":"FunctionDefinition","parameters":{"id":12086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12079,"mutability":"mutable","name":"p0","nameLocation":"62536:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62528:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12078,"name":"address","nodeType":"ElementaryTypeName","src":"62528:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12081,"mutability":"mutable","name":"p1","nameLocation":"62554:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62540:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12080,"name":"string","nodeType":"ElementaryTypeName","src":"62540:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12083,"mutability":"mutable","name":"p2","nameLocation":"62566:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62558:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12082,"name":"address","nodeType":"ElementaryTypeName","src":"62558:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12085,"mutability":"mutable","name":"p3","nameLocation":"62575:2:20","nodeType":"VariableDeclaration","scope":12100,"src":"62570:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12084,"name":"bool","nodeType":"ElementaryTypeName","src":"62570:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"62527:51:20"},"returnParameters":{"id":12087,"nodeType":"ParameterList","parameters":[],"src":"62593:0:20"},"scope":12860,"src":"62515:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12122,"nodeType":"Block","src":"62789:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c737472696e672c616464726573732c6164647265737329","id":12114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"62839:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},"value":"log(address,string,address,address)"},{"id":12115,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12102,"src":"62878:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12116,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12104,"src":"62882:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12117,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12106,"src":"62886:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12118,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12108,"src":"62890:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0d36fa2022fafb45586a59914be3ad4c57b76e89535385dcff89c28c80605121","typeString":"literal_string \"log(address,string,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12112,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"62815:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"62819:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"62815:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62815:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12111,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62799:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62799:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12121,"nodeType":"ExpressionStatement","src":"62799:95:20"}]},"id":12123,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62717:3:20","nodeType":"FunctionDefinition","parameters":{"id":12109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12102,"mutability":"mutable","name":"p0","nameLocation":"62729:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62721:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12101,"name":"address","nodeType":"ElementaryTypeName","src":"62721:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12104,"mutability":"mutable","name":"p1","nameLocation":"62747:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62733:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12103,"name":"string","nodeType":"ElementaryTypeName","src":"62733:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12106,"mutability":"mutable","name":"p2","nameLocation":"62759:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62751:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12105,"name":"address","nodeType":"ElementaryTypeName","src":"62751:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12108,"mutability":"mutable","name":"p3","nameLocation":"62771:2:20","nodeType":"VariableDeclaration","scope":12123,"src":"62763:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12107,"name":"address","nodeType":"ElementaryTypeName","src":"62763:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"62720:54:20"},"returnParameters":{"id":12110,"nodeType":"ParameterList","parameters":[],"src":"62789:0:20"},"scope":12860,"src":"62708:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12145,"nodeType":"Block","src":"62979:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c75696e7432353629","id":12137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63029:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},"value":"log(address,bool,uint256,uint256)"},{"id":12138,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12125,"src":"63066:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12139,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12127,"src":"63070:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12140,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12129,"src":"63074:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12141,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12131,"src":"63078:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_386ff5f4530ea008cf639214e5b8a55077ec58314989bc72a4ee1f3ffe9617a4","typeString":"literal_string \"log(address,bool,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12135,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63005:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12136,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63009:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63005:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63005:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12134,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"62989:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"62989:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12144,"nodeType":"ExpressionStatement","src":"62989:93:20"}]},"id":12146,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"62916:3:20","nodeType":"FunctionDefinition","parameters":{"id":12132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12125,"mutability":"mutable","name":"p0","nameLocation":"62928:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62920:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12124,"name":"address","nodeType":"ElementaryTypeName","src":"62920:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12127,"mutability":"mutable","name":"p1","nameLocation":"62937:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62932:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12126,"name":"bool","nodeType":"ElementaryTypeName","src":"62932:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12129,"mutability":"mutable","name":"p2","nameLocation":"62949:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62941:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12128,"name":"uint256","nodeType":"ElementaryTypeName","src":"62941:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12131,"mutability":"mutable","name":"p3","nameLocation":"62961:2:20","nodeType":"VariableDeclaration","scope":12146,"src":"62953:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12130,"name":"uint256","nodeType":"ElementaryTypeName","src":"62953:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"62919:45:20"},"returnParameters":{"id":12133,"nodeType":"ParameterList","parameters":[],"src":"62979:0:20"},"scope":12860,"src":"62907:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12168,"nodeType":"Block","src":"63173:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c737472696e6729","id":12160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63223:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},"value":"log(address,bool,uint256,string)"},{"id":12161,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12148,"src":"63259:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12162,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12150,"src":"63263:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12163,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12152,"src":"63267:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12164,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12154,"src":"63271:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0aa6cfad2c268cd387390ada6d4a75b3aa3e38d6511517eb59fcd07a90f9c283","typeString":"literal_string \"log(address,bool,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12158,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63199:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63203:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63199:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63199:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12157,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63183:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63183:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12167,"nodeType":"ExpressionStatement","src":"63183:92:20"}]},"id":12169,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63104:3:20","nodeType":"FunctionDefinition","parameters":{"id":12155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12148,"mutability":"mutable","name":"p0","nameLocation":"63116:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63108:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12147,"name":"address","nodeType":"ElementaryTypeName","src":"63108:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12150,"mutability":"mutable","name":"p1","nameLocation":"63125:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63120:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12149,"name":"bool","nodeType":"ElementaryTypeName","src":"63120:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12152,"mutability":"mutable","name":"p2","nameLocation":"63137:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63129:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12151,"name":"uint256","nodeType":"ElementaryTypeName","src":"63129:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12154,"mutability":"mutable","name":"p3","nameLocation":"63155:2:20","nodeType":"VariableDeclaration","scope":12169,"src":"63141:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12153,"name":"string","nodeType":"ElementaryTypeName","src":"63141:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63107:51:20"},"returnParameters":{"id":12156,"nodeType":"ParameterList","parameters":[],"src":"63173:0:20"},"scope":12860,"src":"63095:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12191,"nodeType":"Block","src":"63357:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c626f6f6c29","id":12183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63407:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},"value":"log(address,bool,uint256,bool)"},{"id":12184,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12171,"src":"63441:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12185,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12173,"src":"63445:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12186,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"63449:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12187,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12177,"src":"63453:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c4643e20494ddb98fe78bc587bcecbcc7db255edcee8232992e8be9b00c4713c","typeString":"literal_string \"log(address,bool,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12181,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63383:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63387:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63383:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63383:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12180,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63367:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63367:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12190,"nodeType":"ExpressionStatement","src":"63367:90:20"}]},"id":12192,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63297:3:20","nodeType":"FunctionDefinition","parameters":{"id":12178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12171,"mutability":"mutable","name":"p0","nameLocation":"63309:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63301:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12170,"name":"address","nodeType":"ElementaryTypeName","src":"63301:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12173,"mutability":"mutable","name":"p1","nameLocation":"63318:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63313:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12172,"name":"bool","nodeType":"ElementaryTypeName","src":"63313:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12175,"mutability":"mutable","name":"p2","nameLocation":"63330:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63322:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12174,"name":"uint256","nodeType":"ElementaryTypeName","src":"63322:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12177,"mutability":"mutable","name":"p3","nameLocation":"63339:2:20","nodeType":"VariableDeclaration","scope":12192,"src":"63334:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12176,"name":"bool","nodeType":"ElementaryTypeName","src":"63334:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"63300:42:20"},"returnParameters":{"id":12179,"nodeType":"ParameterList","parameters":[],"src":"63357:0:20"},"scope":12860,"src":"63288:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12214,"nodeType":"Block","src":"63542:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c75696e743235362c6164647265737329","id":12206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63592:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},"value":"log(address,bool,uint256,address)"},{"id":12207,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12194,"src":"63629:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12208,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12196,"src":"63633:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12209,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"63637:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12210,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12200,"src":"63641:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ccf790a175b1b762ef5bfd3564f0b74c078f15eca08b8ee654a38a96a5ad2aee","typeString":"literal_string \"log(address,bool,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12204,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63568:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12205,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63572:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63568:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63568:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12203,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63552:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63552:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12213,"nodeType":"ExpressionStatement","src":"63552:93:20"}]},"id":12215,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63479:3:20","nodeType":"FunctionDefinition","parameters":{"id":12201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12194,"mutability":"mutable","name":"p0","nameLocation":"63491:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63483:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12193,"name":"address","nodeType":"ElementaryTypeName","src":"63483:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12196,"mutability":"mutable","name":"p1","nameLocation":"63500:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63495:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12195,"name":"bool","nodeType":"ElementaryTypeName","src":"63495:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12198,"mutability":"mutable","name":"p2","nameLocation":"63512:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63504:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12197,"name":"uint256","nodeType":"ElementaryTypeName","src":"63504:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12200,"mutability":"mutable","name":"p3","nameLocation":"63524:2:20","nodeType":"VariableDeclaration","scope":12215,"src":"63516:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12199,"name":"address","nodeType":"ElementaryTypeName","src":"63516:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"63482:45:20"},"returnParameters":{"id":12202,"nodeType":"ParameterList","parameters":[],"src":"63542:0:20"},"scope":12860,"src":"63470:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12237,"nodeType":"Block","src":"63736:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c75696e7432353629","id":12229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63786:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},"value":"log(address,bool,string,uint256)"},{"id":12230,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"63822:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12231,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"63826:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12232,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12221,"src":"63830:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12233,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12223,"src":"63834:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_80e6a20b48643c1f2494eae694f173a69e42da349d0e193e48fece80e869df69","typeString":"literal_string \"log(address,bool,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12227,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63762:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63766:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63762:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63762:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12226,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63746:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63746:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12236,"nodeType":"ExpressionStatement","src":"63746:92:20"}]},"id":12238,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63667:3:20","nodeType":"FunctionDefinition","parameters":{"id":12224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12217,"mutability":"mutable","name":"p0","nameLocation":"63679:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63671:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12216,"name":"address","nodeType":"ElementaryTypeName","src":"63671:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12219,"mutability":"mutable","name":"p1","nameLocation":"63688:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63683:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12218,"name":"bool","nodeType":"ElementaryTypeName","src":"63683:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12221,"mutability":"mutable","name":"p2","nameLocation":"63706:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63692:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12220,"name":"string","nodeType":"ElementaryTypeName","src":"63692:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12223,"mutability":"mutable","name":"p3","nameLocation":"63718:2:20","nodeType":"VariableDeclaration","scope":12238,"src":"63710:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12222,"name":"uint256","nodeType":"ElementaryTypeName","src":"63710:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"63670:51:20"},"returnParameters":{"id":12225,"nodeType":"ParameterList","parameters":[],"src":"63736:0:20"},"scope":12860,"src":"63658:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12260,"nodeType":"Block","src":"63935:108:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c737472696e6729","id":12252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"63985:33:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},"value":"log(address,bool,string,string)"},{"id":12253,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12240,"src":"64020:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12254,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12242,"src":"64024:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12255,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12244,"src":"64028:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12256,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12246,"src":"64032:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_475c5c33f91155b7a0e86c9fac7985c60ab58f4bfb411ee9b31d994a7fc95d1f","typeString":"literal_string \"log(address,bool,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12250,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"63961:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12251,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"63965:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"63961:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63961:74:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12249,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"63945:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"63945:91:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12259,"nodeType":"ExpressionStatement","src":"63945:91:20"}]},"id":12261,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"63860:3:20","nodeType":"FunctionDefinition","parameters":{"id":12247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12240,"mutability":"mutable","name":"p0","nameLocation":"63872:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63864:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12239,"name":"address","nodeType":"ElementaryTypeName","src":"63864:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12242,"mutability":"mutable","name":"p1","nameLocation":"63881:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63876:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12241,"name":"bool","nodeType":"ElementaryTypeName","src":"63876:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12244,"mutability":"mutable","name":"p2","nameLocation":"63899:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63885:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12243,"name":"string","nodeType":"ElementaryTypeName","src":"63885:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12246,"mutability":"mutable","name":"p3","nameLocation":"63917:2:20","nodeType":"VariableDeclaration","scope":12261,"src":"63903:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12245,"name":"string","nodeType":"ElementaryTypeName","src":"63903:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"63863:57:20"},"returnParameters":{"id":12248,"nodeType":"ParameterList","parameters":[],"src":"63935:0:20"},"scope":12860,"src":"63851:192:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12283,"nodeType":"Block","src":"64124:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c626f6f6c29","id":12275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64174:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},"value":"log(address,bool,string,bool)"},{"id":12276,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12263,"src":"64207:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12277,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12265,"src":"64211:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12278,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12267,"src":"64215:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12279,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12269,"src":"64219:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_50ad461db24803fc9b2ba76f072192e0a4d8fbb3667a50c400f504443380890f","typeString":"literal_string \"log(address,bool,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12273,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64150:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64154:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64150:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64150:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12272,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64134:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64134:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12282,"nodeType":"ExpressionStatement","src":"64134:89:20"}]},"id":12284,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64058:3:20","nodeType":"FunctionDefinition","parameters":{"id":12270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12263,"mutability":"mutable","name":"p0","nameLocation":"64070:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64062:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12262,"name":"address","nodeType":"ElementaryTypeName","src":"64062:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12265,"mutability":"mutable","name":"p1","nameLocation":"64079:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64074:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12264,"name":"bool","nodeType":"ElementaryTypeName","src":"64074:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12267,"mutability":"mutable","name":"p2","nameLocation":"64097:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64083:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12266,"name":"string","nodeType":"ElementaryTypeName","src":"64083:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12269,"mutability":"mutable","name":"p3","nameLocation":"64106:2:20","nodeType":"VariableDeclaration","scope":12284,"src":"64101:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12268,"name":"bool","nodeType":"ElementaryTypeName","src":"64101:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64061:48:20"},"returnParameters":{"id":12271,"nodeType":"ParameterList","parameters":[],"src":"64124:0:20"},"scope":12860,"src":"64049:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12306,"nodeType":"Block","src":"64314:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c737472696e672c6164647265737329","id":12298,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64364:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},"value":"log(address,bool,string,address)"},{"id":12299,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12286,"src":"64400:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12300,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12288,"src":"64404:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12301,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12290,"src":"64408:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12302,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12292,"src":"64412:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_19fd495659df511498cf8dde03672830bd109ef2d9b9bec18e72190917c328bc","typeString":"literal_string \"log(address,bool,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64340:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64344:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64340:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64340:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12295,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64324:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64324:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12305,"nodeType":"ExpressionStatement","src":"64324:92:20"}]},"id":12307,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64245:3:20","nodeType":"FunctionDefinition","parameters":{"id":12293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12286,"mutability":"mutable","name":"p0","nameLocation":"64257:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64249:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12285,"name":"address","nodeType":"ElementaryTypeName","src":"64249:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12288,"mutability":"mutable","name":"p1","nameLocation":"64266:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64261:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12287,"name":"bool","nodeType":"ElementaryTypeName","src":"64261:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12290,"mutability":"mutable","name":"p2","nameLocation":"64284:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64270:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12289,"name":"string","nodeType":"ElementaryTypeName","src":"64270:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12292,"mutability":"mutable","name":"p3","nameLocation":"64296:2:20","nodeType":"VariableDeclaration","scope":12307,"src":"64288:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12291,"name":"address","nodeType":"ElementaryTypeName","src":"64288:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64248:51:20"},"returnParameters":{"id":12294,"nodeType":"ParameterList","parameters":[],"src":"64314:0:20"},"scope":12860,"src":"64236:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12329,"nodeType":"Block","src":"64498:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c75696e7432353629","id":12321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64548:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},"value":"log(address,bool,bool,uint256)"},{"id":12322,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12309,"src":"64582:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12323,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12311,"src":"64586:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12324,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12313,"src":"64590:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12325,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12315,"src":"64594:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8c4e5de62881fec144fb423112f08d23c6aca116363a7b195024519470acf22e","typeString":"literal_string \"log(address,bool,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12319,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64524:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64528:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64524:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64524:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12318,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64508:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64508:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12328,"nodeType":"ExpressionStatement","src":"64508:90:20"}]},"id":12330,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64438:3:20","nodeType":"FunctionDefinition","parameters":{"id":12316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12309,"mutability":"mutable","name":"p0","nameLocation":"64450:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64442:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12308,"name":"address","nodeType":"ElementaryTypeName","src":"64442:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12311,"mutability":"mutable","name":"p1","nameLocation":"64459:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64454:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12310,"name":"bool","nodeType":"ElementaryTypeName","src":"64454:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12313,"mutability":"mutable","name":"p2","nameLocation":"64468:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64463:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12312,"name":"bool","nodeType":"ElementaryTypeName","src":"64463:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12315,"mutability":"mutable","name":"p3","nameLocation":"64480:2:20","nodeType":"VariableDeclaration","scope":12330,"src":"64472:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12314,"name":"uint256","nodeType":"ElementaryTypeName","src":"64472:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"64441:42:20"},"returnParameters":{"id":12317,"nodeType":"ParameterList","parameters":[],"src":"64498:0:20"},"scope":12860,"src":"64429:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12352,"nodeType":"Block","src":"64686:106:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c737472696e6729","id":12344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64736:31:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},"value":"log(address,bool,bool,string)"},{"id":12345,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12332,"src":"64769:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12346,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12334,"src":"64773:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12347,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12336,"src":"64777:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12348,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12338,"src":"64781:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dfc4a2e8c56809b44edbbc6d92d0a8441e551ad5387596bf8b629c56d9a91300","typeString":"literal_string \"log(address,bool,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12342,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64712:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12343,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64716:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64712:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64712:72:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12341,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64696:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64696:89:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12351,"nodeType":"ExpressionStatement","src":"64696:89:20"}]},"id":12353,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64620:3:20","nodeType":"FunctionDefinition","parameters":{"id":12339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12332,"mutability":"mutable","name":"p0","nameLocation":"64632:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64624:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12331,"name":"address","nodeType":"ElementaryTypeName","src":"64624:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12334,"mutability":"mutable","name":"p1","nameLocation":"64641:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64636:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12333,"name":"bool","nodeType":"ElementaryTypeName","src":"64636:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12336,"mutability":"mutable","name":"p2","nameLocation":"64650:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64645:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12335,"name":"bool","nodeType":"ElementaryTypeName","src":"64645:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12338,"mutability":"mutable","name":"p3","nameLocation":"64668:2:20","nodeType":"VariableDeclaration","scope":12353,"src":"64654:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12337,"name":"string","nodeType":"ElementaryTypeName","src":"64654:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"64623:48:20"},"returnParameters":{"id":12340,"nodeType":"ParameterList","parameters":[],"src":"64686:0:20"},"scope":12860,"src":"64611:181:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12375,"nodeType":"Block","src":"64864:104:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c626f6f6c29","id":12367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"64914:29:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},"value":"log(address,bool,bool,bool)"},{"id":12368,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12355,"src":"64945:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12369,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12357,"src":"64949:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12370,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12359,"src":"64953:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12371,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12361,"src":"64957:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cac434792b973db16714db96d2aeda353b2253f27255abe42b9960b2dc550634","typeString":"literal_string \"log(address,bool,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12365,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"64890:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12366,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"64894:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"64890:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64890:70:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12364,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"64874:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"64874:87:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12374,"nodeType":"ExpressionStatement","src":"64874:87:20"}]},"id":12376,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64807:3:20","nodeType":"FunctionDefinition","parameters":{"id":12362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12355,"mutability":"mutable","name":"p0","nameLocation":"64819:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64811:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12354,"name":"address","nodeType":"ElementaryTypeName","src":"64811:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12357,"mutability":"mutable","name":"p1","nameLocation":"64828:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64823:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12356,"name":"bool","nodeType":"ElementaryTypeName","src":"64823:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12359,"mutability":"mutable","name":"p2","nameLocation":"64837:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64832:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12358,"name":"bool","nodeType":"ElementaryTypeName","src":"64832:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12361,"mutability":"mutable","name":"p3","nameLocation":"64846:2:20","nodeType":"VariableDeclaration","scope":12376,"src":"64841:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12360,"name":"bool","nodeType":"ElementaryTypeName","src":"64841:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"64810:39:20"},"returnParameters":{"id":12363,"nodeType":"ParameterList","parameters":[],"src":"64864:0:20"},"scope":12860,"src":"64798:170:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12398,"nodeType":"Block","src":"65043:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c626f6f6c2c6164647265737329","id":12390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65093:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},"value":"log(address,bool,bool,address)"},{"id":12391,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"65127:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12392,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"65131:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12393,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"65135:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12394,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12384,"src":"65139:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_cf394485abbd1f04b85b0f2c1a2cfc07e3d51c1c6f28386bf16d9e45161e8953","typeString":"literal_string \"log(address,bool,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12388,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65069:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65073:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65069:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65069:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12387,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65053:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65053:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12397,"nodeType":"ExpressionStatement","src":"65053:90:20"}]},"id":12399,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"64983:3:20","nodeType":"FunctionDefinition","parameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12378,"mutability":"mutable","name":"p0","nameLocation":"64995:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"64987:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12377,"name":"address","nodeType":"ElementaryTypeName","src":"64987:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12380,"mutability":"mutable","name":"p1","nameLocation":"65004:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"64999:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12379,"name":"bool","nodeType":"ElementaryTypeName","src":"64999:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12382,"mutability":"mutable","name":"p2","nameLocation":"65013:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"65008:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12381,"name":"bool","nodeType":"ElementaryTypeName","src":"65008:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12384,"mutability":"mutable","name":"p3","nameLocation":"65025:2:20","nodeType":"VariableDeclaration","scope":12399,"src":"65017:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12383,"name":"address","nodeType":"ElementaryTypeName","src":"65017:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"64986:42:20"},"returnParameters":{"id":12386,"nodeType":"ParameterList","parameters":[],"src":"65043:0:20"},"scope":12860,"src":"64974:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12421,"nodeType":"Block","src":"65228:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c75696e7432353629","id":12413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65278:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},"value":"log(address,bool,address,uint256)"},{"id":12414,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12401,"src":"65315:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12415,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12403,"src":"65319:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12416,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12405,"src":"65323:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12417,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"65327:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a75c59de36827f2596ade7bd79f668ae219518c12b79ebf06071586765c3e039","typeString":"literal_string \"log(address,bool,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65254:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65258:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65254:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65254:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12410,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65238:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65238:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12420,"nodeType":"ExpressionStatement","src":"65238:93:20"}]},"id":12422,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65165:3:20","nodeType":"FunctionDefinition","parameters":{"id":12408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12401,"mutability":"mutable","name":"p0","nameLocation":"65177:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65169:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12400,"name":"address","nodeType":"ElementaryTypeName","src":"65169:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12403,"mutability":"mutable","name":"p1","nameLocation":"65186:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65181:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12402,"name":"bool","nodeType":"ElementaryTypeName","src":"65181:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12405,"mutability":"mutable","name":"p2","nameLocation":"65198:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65190:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12404,"name":"address","nodeType":"ElementaryTypeName","src":"65190:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12407,"mutability":"mutable","name":"p3","nameLocation":"65210:2:20","nodeType":"VariableDeclaration","scope":12422,"src":"65202:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12406,"name":"uint256","nodeType":"ElementaryTypeName","src":"65202:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65168:45:20"},"returnParameters":{"id":12409,"nodeType":"ParameterList","parameters":[],"src":"65228:0:20"},"scope":12860,"src":"65156:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12444,"nodeType":"Block","src":"65422:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c737472696e6729","id":12436,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65472:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},"value":"log(address,bool,address,string)"},{"id":12437,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12424,"src":"65508:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12438,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12426,"src":"65512:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12439,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12428,"src":"65516:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12440,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12430,"src":"65520:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2dd778e616be9386b5911da1a074bbaf979640681783fca6396ea75c8caf6453","typeString":"literal_string \"log(address,bool,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12434,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65448:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65452:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65448:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65448:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12433,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65432:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65432:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12443,"nodeType":"ExpressionStatement","src":"65432:92:20"}]},"id":12445,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65353:3:20","nodeType":"FunctionDefinition","parameters":{"id":12431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12424,"mutability":"mutable","name":"p0","nameLocation":"65365:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65357:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12423,"name":"address","nodeType":"ElementaryTypeName","src":"65357:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12426,"mutability":"mutable","name":"p1","nameLocation":"65374:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65369:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12425,"name":"bool","nodeType":"ElementaryTypeName","src":"65369:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12428,"mutability":"mutable","name":"p2","nameLocation":"65386:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65378:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12427,"name":"address","nodeType":"ElementaryTypeName","src":"65378:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12430,"mutability":"mutable","name":"p3","nameLocation":"65404:2:20","nodeType":"VariableDeclaration","scope":12445,"src":"65390:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12429,"name":"string","nodeType":"ElementaryTypeName","src":"65390:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"65356:51:20"},"returnParameters":{"id":12432,"nodeType":"ParameterList","parameters":[],"src":"65422:0:20"},"scope":12860,"src":"65344:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12467,"nodeType":"Block","src":"65606:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c626f6f6c29","id":12459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65656:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},"value":"log(address,bool,address,bool)"},{"id":12460,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12447,"src":"65690:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12461,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12449,"src":"65694:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12462,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12451,"src":"65698:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12463,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12453,"src":"65702:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a6f50b0f122c916fe81861751b94bdddb5e453947768e8af206397bb510790b1","typeString":"literal_string \"log(address,bool,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12457,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65632:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65636:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65632:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65632:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12456,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65616:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65616:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12466,"nodeType":"ExpressionStatement","src":"65616:90:20"}]},"id":12468,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65546:3:20","nodeType":"FunctionDefinition","parameters":{"id":12454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12447,"mutability":"mutable","name":"p0","nameLocation":"65558:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65550:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12446,"name":"address","nodeType":"ElementaryTypeName","src":"65550:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12449,"mutability":"mutable","name":"p1","nameLocation":"65567:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65562:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12448,"name":"bool","nodeType":"ElementaryTypeName","src":"65562:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12451,"mutability":"mutable","name":"p2","nameLocation":"65579:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65571:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12450,"name":"address","nodeType":"ElementaryTypeName","src":"65571:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12453,"mutability":"mutable","name":"p3","nameLocation":"65588:2:20","nodeType":"VariableDeclaration","scope":12468,"src":"65583:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12452,"name":"bool","nodeType":"ElementaryTypeName","src":"65583:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"65549:42:20"},"returnParameters":{"id":12455,"nodeType":"ParameterList","parameters":[],"src":"65606:0:20"},"scope":12860,"src":"65537:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12490,"nodeType":"Block","src":"65791:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c626f6f6c2c616464726573732c6164647265737329","id":12482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"65841:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},"value":"log(address,bool,address,address)"},{"id":12483,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12470,"src":"65878:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12484,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12472,"src":"65882:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12485,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12474,"src":"65886:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12486,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12476,"src":"65890:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_660375ddb58761b4ce952ec7e1ae63efe9f8e9e69831fd72875968fec9046e35","typeString":"literal_string \"log(address,bool,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12480,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"65817:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12481,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"65821:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"65817:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65817:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12479,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65801:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12488,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65801:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12489,"nodeType":"ExpressionStatement","src":"65801:93:20"}]},"id":12491,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65728:3:20","nodeType":"FunctionDefinition","parameters":{"id":12477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12470,"mutability":"mutable","name":"p0","nameLocation":"65740:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65732:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12469,"name":"address","nodeType":"ElementaryTypeName","src":"65732:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12472,"mutability":"mutable","name":"p1","nameLocation":"65749:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65744:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12471,"name":"bool","nodeType":"ElementaryTypeName","src":"65744:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12474,"mutability":"mutable","name":"p2","nameLocation":"65761:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65753:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12473,"name":"address","nodeType":"ElementaryTypeName","src":"65753:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12476,"mutability":"mutable","name":"p3","nameLocation":"65773:2:20","nodeType":"VariableDeclaration","scope":12491,"src":"65765:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12475,"name":"address","nodeType":"ElementaryTypeName","src":"65765:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"65731:45:20"},"returnParameters":{"id":12478,"nodeType":"ParameterList","parameters":[],"src":"65791:0:20"},"scope":12860,"src":"65719:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12513,"nodeType":"Block","src":"65982:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c75696e7432353629","id":12505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66032:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},"value":"log(address,address,uint256,uint256)"},{"id":12506,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12493,"src":"66072:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12507,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12495,"src":"66076:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12508,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12497,"src":"66080:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12509,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12499,"src":"66084:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_be55348107f27daf63b48e87ab23840f2cbf20bdfa1dd4b92b4c2b337967fa25","typeString":"literal_string \"log(address,address,uint256,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12503,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66008:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66012:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66008:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66008:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12502,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"65992:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"65992:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12512,"nodeType":"ExpressionStatement","src":"65992:96:20"}]},"id":12514,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"65916:3:20","nodeType":"FunctionDefinition","parameters":{"id":12500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12493,"mutability":"mutable","name":"p0","nameLocation":"65928:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65920:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12492,"name":"address","nodeType":"ElementaryTypeName","src":"65920:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12495,"mutability":"mutable","name":"p1","nameLocation":"65940:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65932:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12494,"name":"address","nodeType":"ElementaryTypeName","src":"65932:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12497,"mutability":"mutable","name":"p2","nameLocation":"65952:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65944:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12496,"name":"uint256","nodeType":"ElementaryTypeName","src":"65944:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12499,"mutability":"mutable","name":"p3","nameLocation":"65964:2:20","nodeType":"VariableDeclaration","scope":12514,"src":"65956:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12498,"name":"uint256","nodeType":"ElementaryTypeName","src":"65956:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"65919:48:20"},"returnParameters":{"id":12501,"nodeType":"ParameterList","parameters":[],"src":"65982:0:20"},"scope":12860,"src":"65907:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12536,"nodeType":"Block","src":"66182:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c737472696e6729","id":12528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66232:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},"value":"log(address,address,uint256,string)"},{"id":12529,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12516,"src":"66271:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12530,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12518,"src":"66275:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12531,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12520,"src":"66279:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12532,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12522,"src":"66283:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_fdb4f99053c71d9229026b69fabc5567b4324649a228ca0935bada4975f57343","typeString":"literal_string \"log(address,address,uint256,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12526,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66208:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12527,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66212:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66208:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66208:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12525,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66192:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66192:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12535,"nodeType":"ExpressionStatement","src":"66192:95:20"}]},"id":12537,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66110:3:20","nodeType":"FunctionDefinition","parameters":{"id":12523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12516,"mutability":"mutable","name":"p0","nameLocation":"66122:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66114:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12515,"name":"address","nodeType":"ElementaryTypeName","src":"66114:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12518,"mutability":"mutable","name":"p1","nameLocation":"66134:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66126:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12517,"name":"address","nodeType":"ElementaryTypeName","src":"66126:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12520,"mutability":"mutable","name":"p2","nameLocation":"66146:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66138:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12519,"name":"uint256","nodeType":"ElementaryTypeName","src":"66138:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12522,"mutability":"mutable","name":"p3","nameLocation":"66164:2:20","nodeType":"VariableDeclaration","scope":12537,"src":"66150:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12521,"name":"string","nodeType":"ElementaryTypeName","src":"66150:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66113:54:20"},"returnParameters":{"id":12524,"nodeType":"ParameterList","parameters":[],"src":"66182:0:20"},"scope":12860,"src":"66101:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12559,"nodeType":"Block","src":"66372:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c626f6f6c29","id":12551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66422:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},"value":"log(address,address,uint256,bool)"},{"id":12552,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12539,"src":"66459:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12553,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12541,"src":"66463:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12554,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12543,"src":"66467:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12555,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12545,"src":"66471:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9b4254e23753cb4c7d637e38638d109b03aeabf8705961d18d943c5bfa6672cd","typeString":"literal_string \"log(address,address,uint256,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12549,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66398:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12550,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66402:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66398:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66398:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12548,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66382:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66382:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12558,"nodeType":"ExpressionStatement","src":"66382:93:20"}]},"id":12560,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66309:3:20","nodeType":"FunctionDefinition","parameters":{"id":12546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12539,"mutability":"mutable","name":"p0","nameLocation":"66321:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66313:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12538,"name":"address","nodeType":"ElementaryTypeName","src":"66313:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12541,"mutability":"mutable","name":"p1","nameLocation":"66333:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66325:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12540,"name":"address","nodeType":"ElementaryTypeName","src":"66325:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12543,"mutability":"mutable","name":"p2","nameLocation":"66345:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66337:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12542,"name":"uint256","nodeType":"ElementaryTypeName","src":"66337:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12545,"mutability":"mutable","name":"p3","nameLocation":"66354:2:20","nodeType":"VariableDeclaration","scope":12560,"src":"66349:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12544,"name":"bool","nodeType":"ElementaryTypeName","src":"66349:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"66312:45:20"},"returnParameters":{"id":12547,"nodeType":"ParameterList","parameters":[],"src":"66372:0:20"},"scope":12860,"src":"66300:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12582,"nodeType":"Block","src":"66563:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c75696e743235362c6164647265737329","id":12574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66613:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},"value":"log(address,address,uint256,address)"},{"id":12575,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12562,"src":"66653:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12576,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12564,"src":"66657:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12577,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12566,"src":"66661:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":12578,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12568,"src":"66665:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8da6def55c582f2ce59d561e896a66e570478eda5169747a6ea3575cfa60d28b","typeString":"literal_string \"log(address,address,uint256,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66589:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66593:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66589:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66589:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12571,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66573:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66573:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12581,"nodeType":"ExpressionStatement","src":"66573:96:20"}]},"id":12583,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66497:3:20","nodeType":"FunctionDefinition","parameters":{"id":12569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12562,"mutability":"mutable","name":"p0","nameLocation":"66509:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66501:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12561,"name":"address","nodeType":"ElementaryTypeName","src":"66501:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12564,"mutability":"mutable","name":"p1","nameLocation":"66521:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66513:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12563,"name":"address","nodeType":"ElementaryTypeName","src":"66513:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12566,"mutability":"mutable","name":"p2","nameLocation":"66533:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66525:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12565,"name":"uint256","nodeType":"ElementaryTypeName","src":"66525:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":12568,"mutability":"mutable","name":"p3","nameLocation":"66545:2:20","nodeType":"VariableDeclaration","scope":12583,"src":"66537:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12567,"name":"address","nodeType":"ElementaryTypeName","src":"66537:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"66500:48:20"},"returnParameters":{"id":12570,"nodeType":"ParameterList","parameters":[],"src":"66563:0:20"},"scope":12860,"src":"66488:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12605,"nodeType":"Block","src":"66763:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c75696e7432353629","id":12597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"66813:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},"value":"log(address,address,string,uint256)"},{"id":12598,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12585,"src":"66852:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12599,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12587,"src":"66856:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12600,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12589,"src":"66860:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12601,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12591,"src":"66864:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef1cefe7e092dcc5b0ed6bc72a78756f9c352fc002139efb9b181c734d5d45d5","typeString":"literal_string \"log(address,address,string,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12595,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66789:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66793:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66789:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66789:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12594,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66773:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66773:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12604,"nodeType":"ExpressionStatement","src":"66773:95:20"}]},"id":12606,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66691:3:20","nodeType":"FunctionDefinition","parameters":{"id":12592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12585,"mutability":"mutable","name":"p0","nameLocation":"66703:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66695:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12584,"name":"address","nodeType":"ElementaryTypeName","src":"66695:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12587,"mutability":"mutable","name":"p1","nameLocation":"66715:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66707:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12586,"name":"address","nodeType":"ElementaryTypeName","src":"66707:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12589,"mutability":"mutable","name":"p2","nameLocation":"66733:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66719:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12588,"name":"string","nodeType":"ElementaryTypeName","src":"66719:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12591,"mutability":"mutable","name":"p3","nameLocation":"66745:2:20","nodeType":"VariableDeclaration","scope":12606,"src":"66737:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12590,"name":"uint256","nodeType":"ElementaryTypeName","src":"66737:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"66694:54:20"},"returnParameters":{"id":12593,"nodeType":"ParameterList","parameters":[],"src":"66763:0:20"},"scope":12860,"src":"66682:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12628,"nodeType":"Block","src":"66968:111:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c737472696e6729","id":12620,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67018:36:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},"value":"log(address,address,string,string)"},{"id":12621,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12608,"src":"67056:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12622,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12610,"src":"67060:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12623,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12612,"src":"67064:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12624,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12614,"src":"67068:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_21bdaf25c85279ffda21e4e2b9f685ff585c62a37c0ebe7ae25670fd06df3aa1","typeString":"literal_string \"log(address,address,string,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12618,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"66994:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"66998:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"66994:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66994:77:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12617,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"66978:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"66978:94:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12627,"nodeType":"ExpressionStatement","src":"66978:94:20"}]},"id":12629,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"66890:3:20","nodeType":"FunctionDefinition","parameters":{"id":12615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12608,"mutability":"mutable","name":"p0","nameLocation":"66902:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66894:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12607,"name":"address","nodeType":"ElementaryTypeName","src":"66894:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12610,"mutability":"mutable","name":"p1","nameLocation":"66914:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66906:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12609,"name":"address","nodeType":"ElementaryTypeName","src":"66906:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12612,"mutability":"mutable","name":"p2","nameLocation":"66932:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66918:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12611,"name":"string","nodeType":"ElementaryTypeName","src":"66918:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12614,"mutability":"mutable","name":"p3","nameLocation":"66950:2:20","nodeType":"VariableDeclaration","scope":12629,"src":"66936:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12613,"name":"string","nodeType":"ElementaryTypeName","src":"66936:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"66893:60:20"},"returnParameters":{"id":12616,"nodeType":"ParameterList","parameters":[],"src":"66968:0:20"},"scope":12860,"src":"66881:198:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12651,"nodeType":"Block","src":"67163:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c626f6f6c29","id":12643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67213:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},"value":"log(address,address,string,bool)"},{"id":12644,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12631,"src":"67249:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12645,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12633,"src":"67253:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12646,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12635,"src":"67257:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12647,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12637,"src":"67261:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6f1a594e70810560eaae5bbc82bc991f1120ac326ec142f6fb212682169447fd","typeString":"literal_string \"log(address,address,string,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12641,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67189:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67193:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67189:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67189:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12640,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67173:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67173:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12650,"nodeType":"ExpressionStatement","src":"67173:92:20"}]},"id":12652,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67094:3:20","nodeType":"FunctionDefinition","parameters":{"id":12638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12631,"mutability":"mutable","name":"p0","nameLocation":"67106:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67098:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12630,"name":"address","nodeType":"ElementaryTypeName","src":"67098:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12633,"mutability":"mutable","name":"p1","nameLocation":"67118:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67110:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12632,"name":"address","nodeType":"ElementaryTypeName","src":"67110:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12635,"mutability":"mutable","name":"p2","nameLocation":"67136:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67122:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12634,"name":"string","nodeType":"ElementaryTypeName","src":"67122:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12637,"mutability":"mutable","name":"p3","nameLocation":"67145:2:20","nodeType":"VariableDeclaration","scope":12652,"src":"67140:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12636,"name":"bool","nodeType":"ElementaryTypeName","src":"67140:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67097:51:20"},"returnParameters":{"id":12639,"nodeType":"ParameterList","parameters":[],"src":"67163:0:20"},"scope":12860,"src":"67085:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12674,"nodeType":"Block","src":"67359:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c737472696e672c6164647265737329","id":12666,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67409:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},"value":"log(address,address,string,address)"},{"id":12667,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12654,"src":"67448:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12668,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12656,"src":"67452:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12669,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12658,"src":"67456:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":12670,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12660,"src":"67460:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8f736d1685010d3a1ac02ed96109cdd5141fd92077c14203bc63442ad9b6a687","typeString":"literal_string \"log(address,address,string,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12664,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67385:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67389:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67385:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67385:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12663,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67369:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67369:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12673,"nodeType":"ExpressionStatement","src":"67369:95:20"}]},"id":12675,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67287:3:20","nodeType":"FunctionDefinition","parameters":{"id":12661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12654,"mutability":"mutable","name":"p0","nameLocation":"67299:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67291:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12653,"name":"address","nodeType":"ElementaryTypeName","src":"67291:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12656,"mutability":"mutable","name":"p1","nameLocation":"67311:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67303:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12655,"name":"address","nodeType":"ElementaryTypeName","src":"67303:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12658,"mutability":"mutable","name":"p2","nameLocation":"67329:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67315:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12657,"name":"string","nodeType":"ElementaryTypeName","src":"67315:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":12660,"mutability":"mutable","name":"p3","nameLocation":"67341:2:20","nodeType":"VariableDeclaration","scope":12675,"src":"67333:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12659,"name":"address","nodeType":"ElementaryTypeName","src":"67333:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"67290:54:20"},"returnParameters":{"id":12662,"nodeType":"ParameterList","parameters":[],"src":"67359:0:20"},"scope":12860,"src":"67278:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12697,"nodeType":"Block","src":"67549:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c75696e7432353629","id":12689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67599:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},"value":"log(address,address,bool,uint256)"},{"id":12690,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12677,"src":"67636:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12691,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12679,"src":"67640:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12692,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12681,"src":"67644:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12693,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12683,"src":"67648:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_3971e78c267e3c99a8d143ab93f96daa498ed164b55c7e4c2a5439320fbc2671","typeString":"literal_string \"log(address,address,bool,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12687,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67575:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12688,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67579:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67575:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67575:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12686,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67559:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67559:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12696,"nodeType":"ExpressionStatement","src":"67559:93:20"}]},"id":12698,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67486:3:20","nodeType":"FunctionDefinition","parameters":{"id":12684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12677,"mutability":"mutable","name":"p0","nameLocation":"67498:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67490:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12676,"name":"address","nodeType":"ElementaryTypeName","src":"67490:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12679,"mutability":"mutable","name":"p1","nameLocation":"67510:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67502:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12678,"name":"address","nodeType":"ElementaryTypeName","src":"67502:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12681,"mutability":"mutable","name":"p2","nameLocation":"67519:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67514:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12680,"name":"bool","nodeType":"ElementaryTypeName","src":"67514:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12683,"mutability":"mutable","name":"p3","nameLocation":"67531:2:20","nodeType":"VariableDeclaration","scope":12698,"src":"67523:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12682,"name":"uint256","nodeType":"ElementaryTypeName","src":"67523:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"67489:45:20"},"returnParameters":{"id":12685,"nodeType":"ParameterList","parameters":[],"src":"67549:0:20"},"scope":12860,"src":"67477:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12720,"nodeType":"Block","src":"67743:109:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c737472696e6729","id":12712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67793:34:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},"value":"log(address,address,bool,string)"},{"id":12713,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12700,"src":"67829:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12714,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12702,"src":"67833:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12715,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"67837:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12716,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12706,"src":"67841:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_aa6540c8e9a40f69e022e01a14ab22c94aae4999f1d7a246236f464d7c933b88","typeString":"literal_string \"log(address,address,bool,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12710,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67769:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12711,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67773:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67769:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67769:75:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12709,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67753:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67753:92:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12719,"nodeType":"ExpressionStatement","src":"67753:92:20"}]},"id":12721,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67674:3:20","nodeType":"FunctionDefinition","parameters":{"id":12707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12700,"mutability":"mutable","name":"p0","nameLocation":"67686:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67678:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12699,"name":"address","nodeType":"ElementaryTypeName","src":"67678:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12702,"mutability":"mutable","name":"p1","nameLocation":"67698:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67690:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12701,"name":"address","nodeType":"ElementaryTypeName","src":"67690:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12704,"mutability":"mutable","name":"p2","nameLocation":"67707:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67702:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12703,"name":"bool","nodeType":"ElementaryTypeName","src":"67702:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12706,"mutability":"mutable","name":"p3","nameLocation":"67725:2:20","nodeType":"VariableDeclaration","scope":12721,"src":"67711:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12705,"name":"string","nodeType":"ElementaryTypeName","src":"67711:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"67677:51:20"},"returnParameters":{"id":12708,"nodeType":"ParameterList","parameters":[],"src":"67743:0:20"},"scope":12860,"src":"67665:187:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12743,"nodeType":"Block","src":"67927:107:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c626f6f6c29","id":12735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"67977:32:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},"value":"log(address,address,bool,bool)"},{"id":12736,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"68011:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12737,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12725,"src":"68015:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12738,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12727,"src":"68019:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12739,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12729,"src":"68023:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_2cd4134aedbc2cd722f2b9715dc3acb74b16b253590361dd98a4d6cb66119b65","typeString":"literal_string \"log(address,address,bool,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12733,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"67953:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"67957:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"67953:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67953:73:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12732,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"67937:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"67937:90:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12742,"nodeType":"ExpressionStatement","src":"67937:90:20"}]},"id":12744,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"67867:3:20","nodeType":"FunctionDefinition","parameters":{"id":12730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12723,"mutability":"mutable","name":"p0","nameLocation":"67879:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67871:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12722,"name":"address","nodeType":"ElementaryTypeName","src":"67871:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12725,"mutability":"mutable","name":"p1","nameLocation":"67891:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67883:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12724,"name":"address","nodeType":"ElementaryTypeName","src":"67883:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12727,"mutability":"mutable","name":"p2","nameLocation":"67900:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67895:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12726,"name":"bool","nodeType":"ElementaryTypeName","src":"67895:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12729,"mutability":"mutable","name":"p3","nameLocation":"67909:2:20","nodeType":"VariableDeclaration","scope":12744,"src":"67904:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12728,"name":"bool","nodeType":"ElementaryTypeName","src":"67904:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"67870:42:20"},"returnParameters":{"id":12731,"nodeType":"ParameterList","parameters":[],"src":"67927:0:20"},"scope":12860,"src":"67858:176:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12766,"nodeType":"Block","src":"68112:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c626f6f6c2c6164647265737329","id":12758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68162:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},"value":"log(address,address,bool,address)"},{"id":12759,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12746,"src":"68199:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12760,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12748,"src":"68203:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12761,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12750,"src":"68207:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"id":12762,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12752,"src":"68211:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f1bc36e6c1a1385bfe3a230338e478ee5447b81d25d35962aff021b2c578b9c","typeString":"literal_string \"log(address,address,bool,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12756,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68138:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12757,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68142:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68138:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68138:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12755,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68122:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68122:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12765,"nodeType":"ExpressionStatement","src":"68122:93:20"}]},"id":12767,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68049:3:20","nodeType":"FunctionDefinition","parameters":{"id":12753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12746,"mutability":"mutable","name":"p0","nameLocation":"68061:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68053:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12745,"name":"address","nodeType":"ElementaryTypeName","src":"68053:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12748,"mutability":"mutable","name":"p1","nameLocation":"68073:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68065:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12747,"name":"address","nodeType":"ElementaryTypeName","src":"68065:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12750,"mutability":"mutable","name":"p2","nameLocation":"68082:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68077:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12749,"name":"bool","nodeType":"ElementaryTypeName","src":"68077:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":12752,"mutability":"mutable","name":"p3","nameLocation":"68094:2:20","nodeType":"VariableDeclaration","scope":12767,"src":"68086:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12751,"name":"address","nodeType":"ElementaryTypeName","src":"68086:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68052:45:20"},"returnParameters":{"id":12754,"nodeType":"ParameterList","parameters":[],"src":"68112:0:20"},"scope":12860,"src":"68040:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12789,"nodeType":"Block","src":"68303:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c75696e7432353629","id":12781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68353:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},"value":"log(address,address,address,uint256)"},{"id":12782,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12769,"src":"68393:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12783,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12771,"src":"68397:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12784,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12773,"src":"68401:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12785,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12775,"src":"68405:2:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_94250d77556167cb7a7fd3eb9433101f8af8848163edfced0c46147ba10a2577","typeString":"literal_string \"log(address,address,address,uint256)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":12779,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68329:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12780,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68333:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68329:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68329:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12778,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68313:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68313:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12788,"nodeType":"ExpressionStatement","src":"68313:96:20"}]},"id":12790,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68237:3:20","nodeType":"FunctionDefinition","parameters":{"id":12776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12769,"mutability":"mutable","name":"p0","nameLocation":"68249:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68241:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12768,"name":"address","nodeType":"ElementaryTypeName","src":"68241:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12771,"mutability":"mutable","name":"p1","nameLocation":"68261:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68253:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12770,"name":"address","nodeType":"ElementaryTypeName","src":"68253:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12773,"mutability":"mutable","name":"p2","nameLocation":"68273:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68265:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12772,"name":"address","nodeType":"ElementaryTypeName","src":"68265:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12775,"mutability":"mutable","name":"p3","nameLocation":"68285:2:20","nodeType":"VariableDeclaration","scope":12790,"src":"68277:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12774,"name":"uint256","nodeType":"ElementaryTypeName","src":"68277:7:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"68240:48:20"},"returnParameters":{"id":12777,"nodeType":"ParameterList","parameters":[],"src":"68303:0:20"},"scope":12860,"src":"68228:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12812,"nodeType":"Block","src":"68503:112:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c737472696e6729","id":12804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68553:37:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},"value":"log(address,address,address,string)"},{"id":12805,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12792,"src":"68592:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12806,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12794,"src":"68596:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12807,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12796,"src":"68600:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12808,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12798,"src":"68604:2:20","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f808da2086fed855c3e15d9dbfed3b17a93ed9a59947aae6ab05b7e18576f025","typeString":"literal_string \"log(address,address,address,string)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":12802,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68529:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12803,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68533:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68529:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68529:78:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12801,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68513:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68513:95:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12811,"nodeType":"ExpressionStatement","src":"68513:95:20"}]},"id":12813,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68431:3:20","nodeType":"FunctionDefinition","parameters":{"id":12799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12792,"mutability":"mutable","name":"p0","nameLocation":"68443:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68435:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12791,"name":"address","nodeType":"ElementaryTypeName","src":"68435:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12794,"mutability":"mutable","name":"p1","nameLocation":"68455:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68447:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12793,"name":"address","nodeType":"ElementaryTypeName","src":"68447:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12796,"mutability":"mutable","name":"p2","nameLocation":"68467:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68459:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12795,"name":"address","nodeType":"ElementaryTypeName","src":"68459:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12798,"mutability":"mutable","name":"p3","nameLocation":"68485:2:20","nodeType":"VariableDeclaration","scope":12813,"src":"68471:16:20","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12797,"name":"string","nodeType":"ElementaryTypeName","src":"68471:6:20","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"68434:54:20"},"returnParameters":{"id":12800,"nodeType":"ParameterList","parameters":[],"src":"68503:0:20"},"scope":12860,"src":"68422:193:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12835,"nodeType":"Block","src":"68693:110:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c626f6f6c29","id":12827,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68743:35:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},"value":"log(address,address,address,bool)"},{"id":12828,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12815,"src":"68780:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12829,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12817,"src":"68784:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12830,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12819,"src":"68788:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12831,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12821,"src":"68792:2:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_0e378994a4cd2663acfd73a7ad4e09d196e4fb7ee05b7cdf0708eb30271e2afb","typeString":"literal_string \"log(address,address,address,bool)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":12825,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68719:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68723:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68719:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68719:76:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12824,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68703:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68703:93:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12834,"nodeType":"ExpressionStatement","src":"68703:93:20"}]},"id":12836,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68630:3:20","nodeType":"FunctionDefinition","parameters":{"id":12822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12815,"mutability":"mutable","name":"p0","nameLocation":"68642:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68634:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12814,"name":"address","nodeType":"ElementaryTypeName","src":"68634:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12817,"mutability":"mutable","name":"p1","nameLocation":"68654:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68646:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12816,"name":"address","nodeType":"ElementaryTypeName","src":"68646:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12819,"mutability":"mutable","name":"p2","nameLocation":"68666:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68658:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12818,"name":"address","nodeType":"ElementaryTypeName","src":"68658:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12821,"mutability":"mutable","name":"p3","nameLocation":"68675:2:20","nodeType":"VariableDeclaration","scope":12836,"src":"68670:7:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12820,"name":"bool","nodeType":"ElementaryTypeName","src":"68670:4:20","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"68633:45:20"},"returnParameters":{"id":12823,"nodeType":"ParameterList","parameters":[],"src":"68693:0:20"},"scope":12860,"src":"68621:182:20","stateMutability":"pure","virtual":false,"visibility":"internal"},{"body":{"id":12858,"nodeType":"Block","src":"68884:113:20","statements":[{"expression":{"arguments":[{"arguments":[{"hexValue":"6c6f6728616464726573732c616464726573732c616464726573732c6164647265737329","id":12850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"68934:38:20","typeDescriptions":{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},"value":"log(address,address,address,address)"},{"id":12851,"name":"p0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12838,"src":"68974:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12852,"name":"p1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12840,"src":"68978:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12853,"name":"p2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12842,"src":"68982:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":12854,"name":"p3","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12844,"src":"68986:2:20","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_665bf1345e006aa321c0b6b71bed55ce0d6cdd812632f8c43114f62c55ffa0b5","typeString":"literal_string \"log(address,address,address,address)\""},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":12848,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"68910:3:20","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"68914:19:20","memberName":"encodeWithSignature","nodeType":"MemberAccess","src":"68910:23:20","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":12855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68910:79:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12847,"name":"_sendLogPayload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4820,"src":"68894:15:20","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_memory_ptr_$returns$__$","typeString":"function (bytes memory) pure"}},"id":12856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"68894:96:20","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12857,"nodeType":"ExpressionStatement","src":"68894:96:20"}]},"id":12859,"implemented":true,"kind":"function","modifiers":[],"name":"log","nameLocation":"68818:3:20","nodeType":"FunctionDefinition","parameters":{"id":12845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12838,"mutability":"mutable","name":"p0","nameLocation":"68830:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68822:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12837,"name":"address","nodeType":"ElementaryTypeName","src":"68822:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12840,"mutability":"mutable","name":"p1","nameLocation":"68842:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68834:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12839,"name":"address","nodeType":"ElementaryTypeName","src":"68834:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12842,"mutability":"mutable","name":"p2","nameLocation":"68854:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68846:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12841,"name":"address","nodeType":"ElementaryTypeName","src":"68846:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":12844,"mutability":"mutable","name":"p3","nameLocation":"68866:2:20","nodeType":"VariableDeclaration","scope":12859,"src":"68858:10:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12843,"name":"address","nodeType":"ElementaryTypeName","src":"68858:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"68821:48:20"},"returnParameters":{"id":12846,"nodeType":"ParameterList","parameters":[],"src":"68884:0:20"},"scope":12860,"src":"68809:188:20","stateMutability":"pure","virtual":false,"visibility":"internal"}],"scope":12861,"src":"66:68934:20","usedErrors":[],"usedEvents":[]}],"src":"32:68969:20"},"id":20}},"contracts":{"@openzeppelin/contracts/interfaces/draft-IERC6093.sol":{"IERC1155Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC1155InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC1155InvalidApprover","type":"error"},{"inputs":[{"internalType":"uint256","name":"idsLength","type":"uint256"},{"internalType":"uint256","name":"valuesLength","type":"uint256"}],"name":"ERC1155InvalidArrayLength","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC1155InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC1155InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC1155InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC1155MissingApprovalForAll","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC1155InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"idsLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"valuesLength\",\"type\":\"uint256\"}],\"name\":\"ERC1155InvalidArrayLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC1155InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC1155MissingApprovalForAll\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC1155 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC1155 tokens.\",\"errors\":{\"ERC1155InsufficientBalance(address,uint256,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC1155InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC1155InvalidArrayLength(uint256,uint256)\":[{\"details\":\"Indicates an array length mismatch between ids and values in a safeBatchTransferFrom operation. Used in batch transfers.\",\"params\":{\"idsLength\":\"Length of the array of token identifiers\",\"valuesLength\":\"Length of the array of token amounts\"}}],\"ERC1155InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC1155InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC1155InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC1155MissingApprovalForAll(address,address)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"owner\":\"Address of the current owner of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC1155Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"},"IERC20Errors":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC20 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC20 tokens.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC20Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"},"IERC721Errors":{"abi":[{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721IncorrectOwner","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721InsufficientApproval","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC721InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"ERC721InvalidOperator","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ERC721InvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC721InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC721InvalidSender","type":"error"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ERC721NonexistentToken","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard ERC721 Errors Interface of the https://eips.ethereum.org/EIPS/eip-6093[ERC-6093] custom errors for ERC721 tokens.\",\"errors\":{\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":\"IERC721Errors\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]}},\"version\":1}"}},"@openzeppelin/contracts/proxy/utils/Initializable.sol":{"Initializable":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"}],\"devdoc\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor constructor() { _disableInitializers(); } ``` ====\",\"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 proxied contracts do not make use of 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. The initialization functions use a version number. Once a version number is used, it is consumed and cannot be reused. This mechanism prevents re-execution of each \\\"step\\\" but allows the creation of new initialization steps in case an upgrade adds a module that needs to be initialized. For example: [.hljs-theme-light.nopadding] ```solidity contract MyToken is ERC20Upgradeable { function initialize() initializer public { __ERC20_init(\\\"MyToken\\\", \\\"MTK\\\"); } } contract MyTokenV2 is MyToken, ERC20PermitUpgradeable { function initializeV2() reinitializer(2) public { __ERC20Permit_init(\\\"MyToken\\\"); } } ``` 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 prevent the implementation contract from being used, you should invoke the {_disableInitializers} function in the constructor to automatically lock it when it is deployed: [.hljs-theme-light.nopadding] ```\",\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":\"Initializable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/ERC20.sol":{"ERC20":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification.\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/IERC20.sol":{"IERC20":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol":{"ERC20Burnable":{"abi":[{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}"}},"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"IERC20Metadata":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets a `value` amount of tokens as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the value of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the value of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves a `value` amount of tokens from `from` to `to` using the allowance mechanism. `value` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]}},\"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.20+commit.a1b79de6\"},\"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\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Create2.sol":{"Create2":{"abi":[{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"Create2FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"Create2InsufficientBalance","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 PUSH9 0xE7E9279FF64B09F601 SLOAD DUP5 0x2E PUSH18 0x6F7A61CC445F390EC702821D0B55366E14DC PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"495:3877:7:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;495:3877:7;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 PUSH9 0xE7E9279FF64B09F601 SLOAD DUP5 0x2E PUSH18 0x6F7A61CC445F390EC702821D0B55366E14DC PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"495:3877:7:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"Create2InsufficientBalance\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Helper to make usage of the `CREATE2` EVM opcode easier and safer. `CREATE2` can be used to compute in advance the address where a smart contract will be deployed, which allows for interesting new mechanisms known as 'counterfactual interactions'. See the https://eips.ethereum.org/EIPS/eip-1014#motivation[EIP] for more information.\",\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"Create2FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"Create2InsufficientBalance(uint256,uint256)\":[{\"details\":\"Not enough balance for performing a CREATE2 deploy.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Create2.sol\":\"Create2\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/Strings.sol":{"Strings":{"abi":[{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"StringsInsufficientHexLength","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:8:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;251:2847:8;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CODECOPY 0xEE DUP6 GAS PUSH30 0x6A3F72D6DA11B4A850B082834946BAF95BAB3E71BBDB0073BAA95F64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"251:2847:8:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"StringsInsufficientHexLength\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"String operations.\",\"errors\":{\"StringsInsufficientHexLength(uint256,uint256)\":[{\"details\":\"The `value` string doesn't fit in the specified `length`.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/Strings.sol\":\"Strings\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/ECDSA.sol":{"ECDSA":{"abi":[{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:9:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;344:7386:9;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP11 0x2B 0xDF PUSH12 0xA2B7CA0F16A717DF47C789BF SWAP11 PREVRANDAO 0xD9 SWAP2 0x25 0xCE 0x5C SLT SELFDESTRUCT 0x4E ADDRESS LT PUSH11 0x45985464736F6C63430008 EQ STOP CALLER ","sourceMap":"344:7386:9:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol":{"MessageHashUtils":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:10:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;521:3235:10;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204ff24b51dc96863950a56e80dfcafd710d46a6b8fae2ac9159061c19cd3fe66464736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F CALLCODE 0x4B MLOAD 0xDC SWAP7 DUP7 CODECOPY POP 0xA5 PUSH15 0x80DFCAFD710D46A6B8FAE2AC915906 SHR NOT 0xCD EXTCODEHASH 0xE6 PUSH5 0x64736F6C63 NUMBER STOP ADDMOD EQ STOP CALLER ","sourceMap":"521:3235:10:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Signature message hash utilities for producing digests to be consumed by {ECDSA} recovery or signing. The library provides methods for generating a hash of a message that conforms to the https://eips.ethereum.org/EIPS/eip-191[EIP 191] and https://eips.ethereum.org/EIPS/eip-712[EIP 712] specifications.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":\"MessageHashUtils\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/Math.sol":{"Math":{"abi":[{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:11:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;203:14914:11;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4F SGT REVERT 0xB1 PUSH25 0x1F3305FC299657A0D60BCA3167EBF43F36D9C04464D877F134 0xE9 PUSH3 0x64736F PUSH13 0x63430008140033000000000000 ","sourceMap":"203:14914:11:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"}],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"errors\":{\"MathOverflowedMulDiv()\":[{\"details\":\"Muldiv operation overflow.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/Math.sol\":\"Math\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/math/SignedMath.sol":{"SignedMath":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:12:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;216:1047:12;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220218d5db5660fd0b4502f1e2c168b99ed017a5a41e31e1ca4c38e2d92659c3e6264736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x21 DUP14 0x5D 0xB5 PUSH7 0xFD0B4502F1E2C AND DUP12 SWAP10 0xED ADD PUSH27 0x5A41E31E1CA4C38E2D92659C3E6264736F6C634300081400330000 ","sourceMap":"216:1047:12:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard signed math utilities missing in the Solidity language.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":\"SignedMath\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]}},\"version\":1}"}},"@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"EnumerableSet":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 CALLVALUE PUSH4 0xDEBBF13F 0xB8 EXTCODEHASH LOG3 PUSH24 0xD5AEE496BEF03D76CF5DA25C1D00D7810C1A5D8A2C296473 PUSH16 0x6C634300081400330000000000000000 ","sourceMap":"1330:11640:13:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;1330:11640:13;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203463debbf13fb83fa377d5aee496bef03d76cf5da25c1d00d7810c1a5d8a2c2964736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLVALUE PUSH4 0xDEBBF13F 0xB8 EXTCODEHASH LOG3 PUSH24 0xD5AEE496BEF03D76CF5DA25C1D00D7810C1A5D8A2C296473 PUSH16 0x6C634300081400330000000000000000 ","sourceMap":"1330:11640:13:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ```solidity contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported. [WARNING] ==== Trying to delete such a structure from storage will likely result in data corruption, rendering the structure unusable. See https://github.com/ethereum/solidity/pull/11843[ethereum/solidity#11843] for more info. In order to clean an EnumerableSet, you can either remove all elements one by one or create a fresh instance using an array of EnumerableSet. ====\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":\"EnumerableSet\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]}},\"version\":1}"}},"contracts/Bridged.sol":{"Bridged":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"dispatched","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract Relayer","name":"relayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"queried","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"","opcodes":"","sourceMap":""},"methodIdentifiers":{"dispatched(address,bytes)":"5d903f03","initialize(address)":"c4d66de8","queried(address,bytes)":"82dcc731"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"dispatched\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Relayer\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"queried\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Bridged.sol\":\"Bridged\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/Collector.sol":{"Collector":{"abi":[{"inputs":[{"internalType":"contract ValidatorManager","name":"_validatorManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"signature","type":"bytes"}],"name":"Echoed","type":"event"},{"inputs":[{"internalType":"bytes32","name":"hash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"echo","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3779":{"entryPoint":null,"id":3779,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:331:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"120:209:21","statements":[{"body":{"nodeType":"YulBlock","src":"166:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"175:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"178:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"168:6:21"},"nodeType":"YulFunctionCall","src":"168:12:21"},"nodeType":"YulExpressionStatement","src":"168:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"141:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"150:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"137:3:21"},"nodeType":"YulFunctionCall","src":"137:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"162:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"133:3:21"},"nodeType":"YulFunctionCall","src":"133:32:21"},"nodeType":"YulIf","src":"130:52:21"},{"nodeType":"YulVariableDeclaration","src":"191:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"210:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"204:5:21"},"nodeType":"YulFunctionCall","src":"204:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"195:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"283:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"292:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"285:6:21"},"nodeType":"YulFunctionCall","src":"285:12:21"},"nodeType":"YulExpressionStatement","src":"285:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"242:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"273:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"264:3:21"},"nodeType":"YulFunctionCall","src":"264:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"260:3:21"},"nodeType":"YulFunctionCall","src":"260:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"249:3:21"},"nodeType":"YulFunctionCall","src":"249:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"239:2:21"},"nodeType":"YulFunctionCall","src":"239:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:50:21"},"nodeType":"YulIf","src":"229:70:21"},{"nodeType":"YulAssignment","src":"308:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"318:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"308:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"86:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"97:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"109:6:21","type":""}],"src":"14:315:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b5060405161037338038061037383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102e0806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x373 CODESIZE SUB DUP1 PUSH2 0x373 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x2E0 DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x274B9F10 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x14C JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x199ED7C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x333DAF92 SWAP1 PUSH2 0x77 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x24D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x26E JUMP JUMPDEST PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x2BB937B733903B30B634B230BA37B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH32 0x84259FBF8A54ADFE7CE845EEE74785AACEDCF222BDEB9F31672EB2A429D453E0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1A4 JUMPI PUSH2 0x1A4 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1CC JUMPI PUSH2 0x1CC PUSH2 0x136 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x22D JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x211 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x266 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x207 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x290 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x207 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0xE 0xD7 PUSH12 0x9B397A7DDDFB203452FB71D9 0xF DUP12 PUSH16 0xCAD5E57C5D3589686E12FD75E164736F PUSH13 0x63430008140033000000000000 ","sourceMap":"106:466:15:-:0;;;236:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;294:16;:36;;-1:-1:-1;;;;;;294:36:15;-1:-1:-1;;;;;294:36:15;;;;;;;;;;106:466;;14:315:21;109:6;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:21;;239:42;;229:70;;295:1;292;285:12;229:70;318:5;14:315;-1:-1:-1;;;14:315:21:o;:::-;106:466:15;;;;;;"},"deployedBytecode":{"functionDebugData":{"@echo_3801":{"entryPoint":69,"id":3801,"parameterSlots":2,"returnSlots":0},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":622,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_bytes_memory_ptr":{"entryPoint":332,"id":null,"parameterSlots":2,"returnSlots":2},"abi_encode_bytes":{"entryPoint":519,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":589,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":663,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x41":{"entryPoint":310,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:2705:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"242:893:21","statements":[{"body":{"nodeType":"YulBlock","src":"288:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"297:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"300:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"290:6:21"},"nodeType":"YulFunctionCall","src":"290:12:21"},"nodeType":"YulExpressionStatement","src":"290:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"263:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"272:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"259:3:21"},"nodeType":"YulFunctionCall","src":"259:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"284:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"255:3:21"},"nodeType":"YulFunctionCall","src":"255:32:21"},"nodeType":"YulIf","src":"252:52:21"},{"nodeType":"YulAssignment","src":"313:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"336:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"323:12:21"},"nodeType":"YulFunctionCall","src":"323:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"313:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"355:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"386:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"397:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"382:3:21"},"nodeType":"YulFunctionCall","src":"382:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"369:12:21"},"nodeType":"YulFunctionCall","src":"369:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"359:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"410:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"420:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"414:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"465:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"474:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"477:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"467:6:21"},"nodeType":"YulFunctionCall","src":"467:12:21"},"nodeType":"YulExpressionStatement","src":"467:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"453:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"461:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"450:2:21"},"nodeType":"YulFunctionCall","src":"450:14:21"},"nodeType":"YulIf","src":"447:34:21"},{"nodeType":"YulVariableDeclaration","src":"490:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"504:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"515:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"500:3:21"},"nodeType":"YulFunctionCall","src":"500:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"494:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"570:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"579:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"582:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"572:6:21"},"nodeType":"YulFunctionCall","src":"572:12:21"},"nodeType":"YulExpressionStatement","src":"572:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"549:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"553:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"545:3:21"},"nodeType":"YulFunctionCall","src":"545:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"560:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"541:3:21"},"nodeType":"YulFunctionCall","src":"541:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"534:6:21"},"nodeType":"YulFunctionCall","src":"534:35:21"},"nodeType":"YulIf","src":"531:55:21"},{"nodeType":"YulVariableDeclaration","src":"595:26:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"618:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"605:12:21"},"nodeType":"YulFunctionCall","src":"605:16:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"599:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"644:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"646:16:21"},"nodeType":"YulFunctionCall","src":"646:18:21"},"nodeType":"YulExpressionStatement","src":"646:18:21"}]},"condition":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"636:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"640:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"633:2:21"},"nodeType":"YulFunctionCall","src":"633:10:21"},"nodeType":"YulIf","src":"630:36:21"},{"nodeType":"YulVariableDeclaration","src":"675:17:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"689:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"685:3:21"},"nodeType":"YulFunctionCall","src":"685:7:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"701:23:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"721:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"715:5:21"},"nodeType":"YulFunctionCall","src":"715:9:21"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"705:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"733:71:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"755:6:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"779:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"783:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"775:3:21"},"nodeType":"YulFunctionCall","src":"775:13:21"},{"name":"_4","nodeType":"YulIdentifier","src":"790:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"771:3:21"},"nodeType":"YulFunctionCall","src":"771:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"795:2:21","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"767:3:21"},"nodeType":"YulFunctionCall","src":"767:31:21"},{"name":"_4","nodeType":"YulIdentifier","src":"800:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"763:3:21"},"nodeType":"YulFunctionCall","src":"763:40:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"751:3:21"},"nodeType":"YulFunctionCall","src":"751:53:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"737:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"863:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"865:16:21"},"nodeType":"YulFunctionCall","src":"865:18:21"},"nodeType":"YulExpressionStatement","src":"865:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"822:10:21"},{"name":"_1","nodeType":"YulIdentifier","src":"834:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"819:2:21"},"nodeType":"YulFunctionCall","src":"819:18:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"842:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"839:2:21"},"nodeType":"YulFunctionCall","src":"839:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"816:2:21"},"nodeType":"YulFunctionCall","src":"816:46:21"},"nodeType":"YulIf","src":"813:72:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"901:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"905:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"894:6:21"},"nodeType":"YulFunctionCall","src":"894:22:21"},"nodeType":"YulExpressionStatement","src":"894:22:21"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"932:6:21"},{"name":"_3","nodeType":"YulIdentifier","src":"940:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"925:6:21"},"nodeType":"YulFunctionCall","src":"925:18:21"},"nodeType":"YulExpressionStatement","src":"925:18:21"},{"body":{"nodeType":"YulBlock","src":"989:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"998:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1001:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"991:6:21"},"nodeType":"YulFunctionCall","src":"991:12:21"},"nodeType":"YulExpressionStatement","src":"991:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"966:2:21"},{"name":"_3","nodeType":"YulIdentifier","src":"970:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"962:3:21"},"nodeType":"YulFunctionCall","src":"962:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"975:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"958:3:21"},"nodeType":"YulFunctionCall","src":"958:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"980:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"955:2:21"},"nodeType":"YulFunctionCall","src":"955:33:21"},"nodeType":"YulIf","src":"952:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1031:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1039:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1027:3:21"},"nodeType":"YulFunctionCall","src":"1027:15:21"},{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1048:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1052:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1044:3:21"},"nodeType":"YulFunctionCall","src":"1044:11:21"},{"name":"_3","nodeType":"YulIdentifier","src":"1057:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1014:12:21"},"nodeType":"YulFunctionCall","src":"1014:46:21"},"nodeType":"YulExpressionStatement","src":"1014:46:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1084:6:21"},{"name":"_3","nodeType":"YulIdentifier","src":"1092:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1080:3:21"},"nodeType":"YulFunctionCall","src":"1080:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"1097:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1076:3:21"},"nodeType":"YulFunctionCall","src":"1076:24:21"},{"kind":"number","nodeType":"YulLiteral","src":"1102:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1069:6:21"},"nodeType":"YulFunctionCall","src":"1069:35:21"},"nodeType":"YulExpressionStatement","src":"1069:35:21"},{"nodeType":"YulAssignment","src":"1113:16:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1123:6:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1113:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"200:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"211:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"223:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"231:6:21","type":""}],"src":"146:989:21"},{"body":{"nodeType":"YulBlock","src":"1189:373:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1199:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1219:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1213:5:21"},"nodeType":"YulFunctionCall","src":"1213:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1203:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1241:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1246:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1234:6:21"},"nodeType":"YulFunctionCall","src":"1234:19:21"},"nodeType":"YulExpressionStatement","src":"1234:19:21"},{"nodeType":"YulVariableDeclaration","src":"1262:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1271:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1266:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1333:110:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1347:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1357:4:21","type":"","value":"0x20"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1351:2:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1389:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1394:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:11:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1398:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1381:3:21"},"nodeType":"YulFunctionCall","src":"1381:20:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1417:5:21"},{"name":"i","nodeType":"YulIdentifier","src":"1424:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1413:3:21"},"nodeType":"YulFunctionCall","src":"1413:13:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1428:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1409:3:21"},"nodeType":"YulFunctionCall","src":"1409:22:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1403:5:21"},"nodeType":"YulFunctionCall","src":"1403:29:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1374:6:21"},"nodeType":"YulFunctionCall","src":"1374:59:21"},"nodeType":"YulExpressionStatement","src":"1374:59:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1292:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1295:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1289:2:21"},"nodeType":"YulFunctionCall","src":"1289:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1303:21:21","statements":[{"nodeType":"YulAssignment","src":"1305:17:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1314:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"1317:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1310:3:21"},"nodeType":"YulFunctionCall","src":"1310:12:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1305:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1285:3:21","statements":[]},"src":"1281:162:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1467:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1472:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1463:3:21"},"nodeType":"YulFunctionCall","src":"1463:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1481:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1459:3:21"},"nodeType":"YulFunctionCall","src":"1459:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"1488:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1452:6:21"},"nodeType":"YulFunctionCall","src":"1452:38:21"},"nodeType":"YulExpressionStatement","src":"1452:38:21"},{"nodeType":"YulAssignment","src":"1499:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1514:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1527:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1535:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1523:3:21"},"nodeType":"YulFunctionCall","src":"1523:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1544:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1540:3:21"},"nodeType":"YulFunctionCall","src":"1540:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1519:3:21"},"nodeType":"YulFunctionCall","src":"1519:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1510:3:21"},"nodeType":"YulFunctionCall","src":"1510:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"1551:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1506:3:21"},"nodeType":"YulFunctionCall","src":"1506:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"1499:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1166:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1173:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1181:3:21","type":""}],"src":"1140:422:21"},{"body":{"nodeType":"YulBlock","src":"1714:141:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1731:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"1742:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1724:6:21"},"nodeType":"YulFunctionCall","src":"1724:25:21"},"nodeType":"YulExpressionStatement","src":"1724:25:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1769:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1780:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1765:3:21"},"nodeType":"YulFunctionCall","src":"1765:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"1785:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1758:6:21"},"nodeType":"YulFunctionCall","src":"1758:30:21"},"nodeType":"YulExpressionStatement","src":"1758:30:21"},{"nodeType":"YulAssignment","src":"1797:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"1822:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1834:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1845:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1830:3:21"},"nodeType":"YulFunctionCall","src":"1830:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"1805:16:21"},"nodeType":"YulFunctionCall","src":"1805:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1797:4:21"}]}]},"name":"abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1675:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1686:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1694:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1705:4:21","type":""}],"src":"1567:288:21"},{"body":{"nodeType":"YulBlock","src":"1938:199:21","statements":[{"body":{"nodeType":"YulBlock","src":"1984:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1993:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1996:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1986:6:21"},"nodeType":"YulFunctionCall","src":"1986:12:21"},"nodeType":"YulExpressionStatement","src":"1986:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1959:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1968:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1955:3:21"},"nodeType":"YulFunctionCall","src":"1955:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1980:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1951:3:21"},"nodeType":"YulFunctionCall","src":"1951:32:21"},"nodeType":"YulIf","src":"1948:52:21"},{"nodeType":"YulVariableDeclaration","src":"2009:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2028:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2022:5:21"},"nodeType":"YulFunctionCall","src":"2022:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2013:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2091:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2100:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2103:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2093:6:21"},"nodeType":"YulFunctionCall","src":"2093:12:21"},"nodeType":"YulExpressionStatement","src":"2093:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2060:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2081:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2074:6:21"},"nodeType":"YulFunctionCall","src":"2074:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2067:6:21"},"nodeType":"YulFunctionCall","src":"2067:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2057:2:21"},"nodeType":"YulFunctionCall","src":"2057:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2050:6:21"},"nodeType":"YulFunctionCall","src":"2050:40:21"},"nodeType":"YulIf","src":"2047:60:21"},{"nodeType":"YulAssignment","src":"2116:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2126:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2116:6:21"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1904:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1915:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1927:6:21","type":""}],"src":"1860:277:21"},{"body":{"nodeType":"YulBlock","src":"2316:165:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2333:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2344:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2326:6:21"},"nodeType":"YulFunctionCall","src":"2326:21:21"},"nodeType":"YulExpressionStatement","src":"2326:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2367:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2378:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2363:3:21"},"nodeType":"YulFunctionCall","src":"2363:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"2383:2:21","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2356:6:21"},"nodeType":"YulFunctionCall","src":"2356:30:21"},"nodeType":"YulExpressionStatement","src":"2356:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2406:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2417:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2402:3:21"},"nodeType":"YulFunctionCall","src":"2402:18:21"},{"hexValue":"57726f6e672076616c696461746f72","kind":"string","nodeType":"YulLiteral","src":"2422:17:21","type":"","value":"Wrong validator"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2395:6:21"},"nodeType":"YulFunctionCall","src":"2395:45:21"},"nodeType":"YulExpressionStatement","src":"2395:45:21"},{"nodeType":"YulAssignment","src":"2449:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2461:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2472:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2457:3:21"},"nodeType":"YulFunctionCall","src":"2457:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2449:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2293:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2307:4:21","type":""}],"src":"2142:339:21"},{"body":{"nodeType":"YulBlock","src":"2605:98:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2622:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2633:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2615:6:21"},"nodeType":"YulFunctionCall","src":"2615:21:21"},"nodeType":"YulExpressionStatement","src":"2615:21:21"},{"nodeType":"YulAssignment","src":"2645:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2670:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2682:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2693:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2678:3:21"},"nodeType":"YulFunctionCall","src":"2678:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2653:16:21"},"nodeType":"YulFunctionCall","src":"2653:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2645:4:21"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2574:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2585:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2596:4:21","type":""}],"src":"2486:217:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_tuple_t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let _3 := calldataload(_2)\n if gt(_3, _1) { panic_error_0x41() }\n let _4 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_3, 0x1f), _4), 63), _4))\n if or(gt(newFreePtr, _1), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _3)\n if gt(add(add(_2, _3), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(memPtr, 32), add(_2, 32), _3)\n mstore(add(add(memPtr, _3), 32), 0)\n value1 := memPtr\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let i := 0\n for { } lt(i, length) { i := add(i, 0x20) }\n {\n let _1 := 0x20\n mstore(add(add(pos, i), _1), mload(add(add(value, i), _1)))\n }\n mstore(add(add(pos, length), 0x20), 0)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bytes32_t_bytes_memory_ptr__to_t_bytes32_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, value0)\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_fb8e82bae6050e009620e47848ec97e2f2d4adf420124a77b4febcc456529945__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Wrong validator\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes_memory_ptr__to_t_bytes_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x274B9F10 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x14C JUMP JUMPDEST PUSH2 0x45 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x199ED7C9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x333DAF92 SWAP1 PUSH2 0x77 SWAP1 DUP6 SWAP1 DUP6 SWAP1 PUSH1 0x4 ADD PUSH2 0x24D JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x94 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0xB8 SWAP2 SWAP1 PUSH2 0x26E JUMP JUMPDEST PUSH2 0xFA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x2BB937B733903B30B634B230BA37B9 PUSH1 0x89 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP2 PUSH32 0x84259FBF8A54ADFE7CE845EEE74785AACEDCF222BDEB9F31672EB2A429D453E0 DUP3 PUSH1 0x40 MLOAD PUSH2 0x12A SWAP2 SWAP1 PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x15F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x17E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x1A4 JUMPI PUSH2 0x1A4 PUSH2 0x136 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP4 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH2 0x1CC JUMPI PUSH2 0x1CC PUSH2 0x136 JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP3 DUP2 MSTORE DUP9 PUSH1 0x20 DUP5 DUP8 ADD ADD GT ISZERO PUSH2 0x1E5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP5 DUP4 ADD ADD MSTORE DUP1 SWAP6 POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x22D JUMPI PUSH1 0x20 DUP2 DUP6 ADD DUP2 ADD MLOAD DUP7 DUP4 ADD DUP3 ADD MSTORE ADD PUSH2 0x211 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x20 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x20 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x266 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x207 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x280 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x290 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x290 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x207 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 MSIZE 0xE 0xD7 PUSH12 0x9B397A7DDDFB203452FB71D9 0xF DUP12 PUSH16 0xCAD5E57C5D3589686E12FD75E164736F PUSH13 0x63430008140033000000000000 ","sourceMap":"106:466:15:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;343:227;;;;;;:::i;:::-;;:::i;:::-;;;433:16;;:51;;-1:-1:-1;;;433:51:15;;-1:-1:-1;;;;;433:16:15;;;;:34;;:51;;468:4;;474:9;;433:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;412:113;;;;-1:-1:-1;;;412:113:15;;2344:2:21;412:113:15;;;2326:21:21;2383:2;2363:18;;;2356:30;-1:-1:-1;;;2402:18:21;;;2395:45;2457:18;;412:113:15;;;;;;;;547:4;540:23;553:9;540:23;;;;;;:::i;:::-;;;;;;;;343:227;;:::o;14:127:21:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:989;223:6;231;284:2;272:9;263:7;259:23;255:32;252:52;;;300:1;297;290:12;252:52;336:9;323:23;313:33;;397:2;386:9;382:18;369:32;420:18;461:2;453:6;450:14;447:34;;;477:1;474;467:12;447:34;515:6;504:9;500:22;490:32;;560:7;553:4;549:2;545:13;541:27;531:55;;582:1;579;572:12;531:55;618:2;605:16;640:2;636;633:10;630:36;;;646:18;;:::i;:::-;721:2;715:9;689:2;775:13;;-1:-1:-1;;771:22:21;;;795:2;767:31;763:40;751:53;;;819:18;;;839:22;;;816:46;813:72;;;865:18;;:::i;:::-;905:10;901:2;894:22;940:2;932:6;925:18;980:7;975:2;970;966;962:11;958:20;955:33;952:53;;;1001:1;998;991:12;952:53;1057:2;1052;1048;1044:11;1039:2;1031:6;1027:15;1014:46;1102:1;1097:2;1092;1084:6;1080:15;1076:24;1069:35;1123:6;1113:16;;;;;;;146:989;;;;;:::o;1140:422::-;1181:3;1219:5;1213:12;1246:6;1241:3;1234:19;1271:1;1281:162;1295:6;1292:1;1289:13;1281:162;;;1357:4;1413:13;;;1409:22;;1403:29;1385:11;;;1381:20;;1374:59;1310:12;1281:162;;;1285:3;1488:1;1481:4;1472:6;1467:3;1463:16;1459:27;1452:38;1551:4;1544:2;1540:7;1535:2;1527:6;1523:15;1519:29;1514:3;1510:39;1506:50;1499:57;;;1140:422;;;;:::o;1567:288::-;1742:6;1731:9;1724:25;1785:2;1780;1769:9;1765:18;1758:30;1705:4;1805:44;1845:2;1834:9;1830:18;1822:6;1805:44;:::i;:::-;1797:52;1567:288;-1:-1:-1;;;;1567:288:21:o;1860:277::-;1927:6;1980:2;1968:9;1959:7;1955:23;1951:32;1948:52;;;1996:1;1993;1986:12;1948:52;2028:9;2022:16;2081:5;2074:13;2067:21;2060:5;2057:32;2047:60;;2103:1;2100;2093:12;2047:60;2126:5;1860:277;-1:-1:-1;;;1860:277:21:o;2486:217::-;2633:2;2622:9;2615:21;2596:4;2653:44;2693:2;2682:9;2678:18;2670:6;2653:44;:::i"},"methodIdentifiers":{"echo(bytes32,bytes)":"274b9f10"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ValidatorManager\",\"name\":\"_validatorManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"Echoed\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"echo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Collector.sol\":\"Collector\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Collector.sol\":{\"keccak256\":\"0x48ae8bb97847a24a165e63f4c1396db758af521db9eb6d4e37d99a122f61cd34\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://366393dbd6536e91cb52ff3c86cf5e398d5e10f6eb5cff0d086b0e4b8bb50f25\",\"dweb:/ipfs/QmV7gkEvvNK81jHaF2FheT1d6x16UbqVrELgUfVQAohbEC\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]}},\"version\":1}"}},"contracts/ERC20Bridge.sol":{"BridgedERC20":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"address","name":"bridge_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3837":{"entryPoint":null,"id":3837,"parameterSlots":3,"returnSlots":0},"@_442":{"entryPoint":null,"id":442,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":136,"id":745,"parameterSlots":2,"returnSlots":0},"@_update_712":{"entryPoint":202,"id":712,"parameterSlots":3,"returnSlots":0},"abi_decode_string_fromMemory":{"entryPoint":531,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_fromMemory":{"entryPoint":706,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":1194,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":907,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":990,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":847,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":509,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:5278:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"210:776:21","statements":[{"body":{"nodeType":"YulBlock","src":"259:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"271:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"261:6:21"},"nodeType":"YulFunctionCall","src":"261:12:21"},"nodeType":"YulExpressionStatement","src":"261:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"238:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"246:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"234:3:21"},"nodeType":"YulFunctionCall","src":"234:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"253:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"230:3:21"},"nodeType":"YulFunctionCall","src":"230:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"223:6:21"},"nodeType":"YulFunctionCall","src":"223:35:21"},"nodeType":"YulIf","src":"220:55:21"},{"nodeType":"YulVariableDeclaration","src":"284:23:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"300:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"294:5:21"},"nodeType":"YulFunctionCall","src":"294:13:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"288:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"316:28:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"334:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"338:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"330:3:21"},"nodeType":"YulFunctionCall","src":"330:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"342:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"326:3:21"},"nodeType":"YulFunctionCall","src":"326:18:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"320:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"367:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"369:16:21"},"nodeType":"YulFunctionCall","src":"369:18:21"},"nodeType":"YulExpressionStatement","src":"369:18:21"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"359:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"363:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"356:2:21"},"nodeType":"YulFunctionCall","src":"356:10:21"},"nodeType":"YulIf","src":"353:36:21"},{"nodeType":"YulVariableDeclaration","src":"398:17:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"412:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"408:3:21"},"nodeType":"YulFunctionCall","src":"408:7:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"402:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"424:23:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"444:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"438:5:21"},"nodeType":"YulFunctionCall","src":"438:9:21"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"428:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"456:71:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"478:6:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"502:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"506:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"498:3:21"},"nodeType":"YulFunctionCall","src":"498:13:21"},{"name":"_3","nodeType":"YulIdentifier","src":"513:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"494:3:21"},"nodeType":"YulFunctionCall","src":"494:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"518:2:21","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"490:3:21"},"nodeType":"YulFunctionCall","src":"490:31:21"},{"name":"_3","nodeType":"YulIdentifier","src":"523:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"486:3:21"},"nodeType":"YulFunctionCall","src":"486:40:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"474:3:21"},"nodeType":"YulFunctionCall","src":"474:53:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"460:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"586:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"588:16:21"},"nodeType":"YulFunctionCall","src":"588:18:21"},"nodeType":"YulExpressionStatement","src":"588:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"545:10:21"},{"name":"_2","nodeType":"YulIdentifier","src":"557:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"542:2:21"},"nodeType":"YulFunctionCall","src":"542:18:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"565:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"577:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"562:2:21"},"nodeType":"YulFunctionCall","src":"562:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"539:2:21"},"nodeType":"YulFunctionCall","src":"539:46:21"},"nodeType":"YulIf","src":"536:72:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"624:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"628:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"617:6:21"},"nodeType":"YulFunctionCall","src":"617:22:21"},"nodeType":"YulExpressionStatement","src":"617:22:21"},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"655:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"663:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"648:6:21"},"nodeType":"YulFunctionCall","src":"648:18:21"},"nodeType":"YulExpressionStatement","src":"648:18:21"},{"nodeType":"YulVariableDeclaration","src":"675:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"685:4:21","type":"","value":"0x20"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"679:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"735:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"744:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"747:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"737:6:21"},"nodeType":"YulFunctionCall","src":"737:12:21"},"nodeType":"YulExpressionStatement","src":"737:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"712:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"720:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"708:3:21"},"nodeType":"YulFunctionCall","src":"708:15:21"},{"name":"_4","nodeType":"YulIdentifier","src":"725:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"704:3:21"},"nodeType":"YulFunctionCall","src":"704:24:21"},{"name":"end","nodeType":"YulIdentifier","src":"730:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"701:2:21"},"nodeType":"YulFunctionCall","src":"701:33:21"},"nodeType":"YulIf","src":"698:53:21"},{"nodeType":"YulVariableDeclaration","src":"760:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"769:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"764:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"825:87:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"854:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"862:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"850:3:21"},"nodeType":"YulFunctionCall","src":"850:14:21"},{"name":"_4","nodeType":"YulIdentifier","src":"866:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"846:3:21"},"nodeType":"YulFunctionCall","src":"846:23:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"885:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"893:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"881:3:21"},"nodeType":"YulFunctionCall","src":"881:14:21"},{"name":"_4","nodeType":"YulIdentifier","src":"897:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"877:3:21"},"nodeType":"YulFunctionCall","src":"877:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"871:5:21"},"nodeType":"YulFunctionCall","src":"871:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"839:6:21"},"nodeType":"YulFunctionCall","src":"839:63:21"},"nodeType":"YulExpressionStatement","src":"839:63:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"790:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"793:2:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"787:2:21"},"nodeType":"YulFunctionCall","src":"787:9:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"797:19:21","statements":[{"nodeType":"YulAssignment","src":"799:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"808:1:21"},{"name":"_4","nodeType":"YulIdentifier","src":"811:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"804:3:21"},"nodeType":"YulFunctionCall","src":"804:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"799:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"783:3:21","statements":[]},"src":"779:133:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"936:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"944:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"932:3:21"},"nodeType":"YulFunctionCall","src":"932:15:21"},{"name":"_4","nodeType":"YulIdentifier","src":"949:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"928:3:21"},"nodeType":"YulFunctionCall","src":"928:24:21"},{"kind":"number","nodeType":"YulLiteral","src":"954:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"921:6:21"},"nodeType":"YulFunctionCall","src":"921:35:21"},"nodeType":"YulExpressionStatement","src":"921:35:21"},{"nodeType":"YulAssignment","src":"965:15:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"974:6:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"965:5:21"}]}]},"name":"abi_decode_string_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"184:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"192:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"200:5:21","type":""}],"src":"146:840:21"},{"body":{"nodeType":"YulBlock","src":"1126:594:21","statements":[{"body":{"nodeType":"YulBlock","src":"1172:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1181:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1184:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1174:6:21"},"nodeType":"YulFunctionCall","src":"1174:12:21"},"nodeType":"YulExpressionStatement","src":"1174:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1147:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1156:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1143:3:21"},"nodeType":"YulFunctionCall","src":"1143:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1168:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1139:3:21"},"nodeType":"YulFunctionCall","src":"1139:32:21"},"nodeType":"YulIf","src":"1136:52:21"},{"nodeType":"YulVariableDeclaration","src":"1197:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1217:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1211:5:21"},"nodeType":"YulFunctionCall","src":"1211:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1201:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1236:28:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1254:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1258:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1250:3:21"},"nodeType":"YulFunctionCall","src":"1250:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1262:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1246:3:21"},"nodeType":"YulFunctionCall","src":"1246:18:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1240:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1291:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1300:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1303:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1293:6:21"},"nodeType":"YulFunctionCall","src":"1293:12:21"},"nodeType":"YulExpressionStatement","src":"1293:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1279:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1287:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1276:2:21"},"nodeType":"YulFunctionCall","src":"1276:14:21"},"nodeType":"YulIf","src":"1273:34:21"},{"nodeType":"YulAssignment","src":"1316:71:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1359:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1370:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1355:3:21"},"nodeType":"YulFunctionCall","src":"1355:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1379:7:21"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1326:28:21"},"nodeType":"YulFunctionCall","src":"1326:61:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1316:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1396:41:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1422:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1433:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1418:3:21"},"nodeType":"YulFunctionCall","src":"1418:18:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1412:5:21"},"nodeType":"YulFunctionCall","src":"1412:25:21"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"1400:8:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1466:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1475:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1478:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1468:6:21"},"nodeType":"YulFunctionCall","src":"1468:12:21"},"nodeType":"YulExpressionStatement","src":"1468:12:21"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"1452:8:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1462:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1449:2:21"},"nodeType":"YulFunctionCall","src":"1449:16:21"},"nodeType":"YulIf","src":"1446:36:21"},{"nodeType":"YulAssignment","src":"1491:73:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1534:9:21"},{"name":"offset_1","nodeType":"YulIdentifier","src":"1545:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1530:3:21"},"nodeType":"YulFunctionCall","src":"1530:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1556:7:21"}],"functionName":{"name":"abi_decode_string_fromMemory","nodeType":"YulIdentifier","src":"1501:28:21"},"nodeType":"YulFunctionCall","src":"1501:63:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1491:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1573:38:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1596:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1607:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1592:3:21"},"nodeType":"YulFunctionCall","src":"1592:18:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1586:5:21"},"nodeType":"YulFunctionCall","src":"1586:25:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1577:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1674:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1683:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1686:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1676:6:21"},"nodeType":"YulFunctionCall","src":"1676:12:21"},"nodeType":"YulExpressionStatement","src":"1676:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1633:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1644:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1659:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1664:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1655:3:21"},"nodeType":"YulFunctionCall","src":"1655:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1668:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1651:3:21"},"nodeType":"YulFunctionCall","src":"1651:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1640:3:21"},"nodeType":"YulFunctionCall","src":"1640:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1630:2:21"},"nodeType":"YulFunctionCall","src":"1630:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1623:6:21"},"nodeType":"YulFunctionCall","src":"1623:50:21"},"nodeType":"YulIf","src":"1620:70:21"},{"nodeType":"YulAssignment","src":"1699:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"1709:5:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1699:6:21"}]}]},"name":"abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1076:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1087:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1099:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1107:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1115:6:21","type":""}],"src":"991:729:21"},{"body":{"nodeType":"YulBlock","src":"1780:325:21","statements":[{"nodeType":"YulAssignment","src":"1790:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1804:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"1807:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1800:3:21"},"nodeType":"YulFunctionCall","src":"1800:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1790:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1821:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1851:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"1857:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1847:3:21"},"nodeType":"YulFunctionCall","src":"1847:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"1825:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1898:31:21","statements":[{"nodeType":"YulAssignment","src":"1900:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1914:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1922:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1910:3:21"},"nodeType":"YulFunctionCall","src":"1910:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"1900:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1878:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1871:6:21"},"nodeType":"YulFunctionCall","src":"1871:26:21"},"nodeType":"YulIf","src":"1868:61:21"},{"body":{"nodeType":"YulBlock","src":"1988:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2009:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2016:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2021:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2012:3:21"},"nodeType":"YulFunctionCall","src":"2012:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2002:6:21"},"nodeType":"YulFunctionCall","src":"2002:31:21"},"nodeType":"YulExpressionStatement","src":"2002:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2053:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2056:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2046:6:21"},"nodeType":"YulFunctionCall","src":"2046:15:21"},"nodeType":"YulExpressionStatement","src":"2046:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2081:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2084:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2074:6:21"},"nodeType":"YulFunctionCall","src":"2074:15:21"},"nodeType":"YulExpressionStatement","src":"2074:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"1944:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1967:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1975:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1964:2:21"},"nodeType":"YulFunctionCall","src":"1964:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1941:2:21"},"nodeType":"YulFunctionCall","src":"1941:38:21"},"nodeType":"YulIf","src":"1938:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1760:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"1769:6:21","type":""}],"src":"1725:380:21"},{"body":{"nodeType":"YulBlock","src":"2166:65:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2183:1:21","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"2186:3:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2176:6:21"},"nodeType":"YulFunctionCall","src":"2176:14:21"},"nodeType":"YulExpressionStatement","src":"2176:14:21"},{"nodeType":"YulAssignment","src":"2199:26:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2217:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2220:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2207:9:21"},"nodeType":"YulFunctionCall","src":"2207:18:21"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"2199:4:21"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"2149:3:21","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"2157:4:21","type":""}],"src":"2110:121:21"},{"body":{"nodeType":"YulBlock","src":"2317:464:21","statements":[{"body":{"nodeType":"YulBlock","src":"2350:425:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2364:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2374:1:21","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2368:2:21","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2395:2:21"},{"name":"array","nodeType":"YulIdentifier","src":"2399:5:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2388:6:21"},"nodeType":"YulFunctionCall","src":"2388:17:21"},"nodeType":"YulExpressionStatement","src":"2388:17:21"},{"nodeType":"YulVariableDeclaration","src":"2418:31:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"2440:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"2444:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"2430:9:21"},"nodeType":"YulFunctionCall","src":"2430:19:21"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"2422:4:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2462:57:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2485:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2495:1:21","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2502:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"2514:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2498:3:21"},"nodeType":"YulFunctionCall","src":"2498:19:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2491:3:21"},"nodeType":"YulFunctionCall","src":"2491:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2481:3:21"},"nodeType":"YulFunctionCall","src":"2481:38:21"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"2466:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2556:23:21","statements":[{"nodeType":"YulAssignment","src":"2558:19:21","value":{"name":"data","nodeType":"YulIdentifier","src":"2573:4:21"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"2558:11:21"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"2538:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"2550:4:21","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2535:2:21"},"nodeType":"YulFunctionCall","src":"2535:20:21"},"nodeType":"YulIf","src":"2532:47:21"},{"nodeType":"YulVariableDeclaration","src":"2592:41:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2606:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2616:1:21","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2623:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2628:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2619:3:21"},"nodeType":"YulFunctionCall","src":"2619:12:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2612:3:21"},"nodeType":"YulFunctionCall","src":"2612:20:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2602:3:21"},"nodeType":"YulFunctionCall","src":"2602:31:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2596:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2646:24:21","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"2659:11:21"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"2650:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2744:21:21","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2753:5:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2760:2:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2746:6:21"},"nodeType":"YulFunctionCall","src":"2746:17:21"},"nodeType":"YulExpressionStatement","src":"2746:17:21"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2694:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2701:2:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2691:2:21"},"nodeType":"YulFunctionCall","src":"2691:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2705:26:21","statements":[{"nodeType":"YulAssignment","src":"2707:22:21","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"2720:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"2727:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2716:3:21"},"nodeType":"YulFunctionCall","src":"2716:13:21"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"2707:5:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2687:3:21","statements":[]},"src":"2683:82:21"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"2333:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2338:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2330:2:21"},"nodeType":"YulFunctionCall","src":"2330:11:21"},"nodeType":"YulIf","src":"2327:448:21"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"2289:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"2296:3:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"2301:10:21","type":""}],"src":"2236:545:21"},{"body":{"nodeType":"YulBlock","src":"2871:81:21","statements":[{"nodeType":"YulAssignment","src":"2881:65:21","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2896:4:21"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2914:1:21","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"2917:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2910:3:21"},"nodeType":"YulFunctionCall","src":"2910:11:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2927:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2923:3:21"},"nodeType":"YulFunctionCall","src":"2923:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2906:3:21"},"nodeType":"YulFunctionCall","src":"2906:24:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2902:3:21"},"nodeType":"YulFunctionCall","src":"2902:29:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2892:3:21"},"nodeType":"YulFunctionCall","src":"2892:40:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2938:1:21","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"2941:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2934:3:21"},"nodeType":"YulFunctionCall","src":"2934:11:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2889:2:21"},"nodeType":"YulFunctionCall","src":"2889:57:21"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"2881:4:21"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2848:4:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"2854:3:21","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"2862:4:21","type":""}],"src":"2786:166:21"},{"body":{"nodeType":"YulBlock","src":"3053:1256:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3063:24:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3083:3:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3077:5:21"},"nodeType":"YulFunctionCall","src":"3077:10:21"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"3067:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3130:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"3132:16:21"},"nodeType":"YulFunctionCall","src":"3132:18:21"},"nodeType":"YulExpressionStatement","src":"3132:18:21"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3102:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3118:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"3122:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3114:3:21"},"nodeType":"YulFunctionCall","src":"3114:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"3126:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3110:3:21"},"nodeType":"YulFunctionCall","src":"3110:18:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3099:2:21"},"nodeType":"YulFunctionCall","src":"3099:30:21"},"nodeType":"YulIf","src":"3096:56:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3205:4:21"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3243:4:21"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"3237:5:21"},"nodeType":"YulFunctionCall","src":"3237:11:21"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"3211:25:21"},"nodeType":"YulFunctionCall","src":"3211:38:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"3251:6:21"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"3161:43:21"},"nodeType":"YulFunctionCall","src":"3161:97:21"},"nodeType":"YulExpressionStatement","src":"3161:97:21"},{"nodeType":"YulVariableDeclaration","src":"3267:18:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3284:1:21","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"3271:9:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3294:23:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3313:4:21","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"3298:11:21","type":""}]},{"nodeType":"YulAssignment","src":"3326:24:21","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3339:11:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3326:9:21"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"3396:656:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3410:35:21","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3429:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3441:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3437:3:21"},"nodeType":"YulFunctionCall","src":"3437:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3425:3:21"},"nodeType":"YulFunctionCall","src":"3425:20:21"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"3414:7:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3458:49:21","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"3502:4:21"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"3472:29:21"},"nodeType":"YulFunctionCall","src":"3472:35:21"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"3462:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3520:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3529:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3524:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3607:172:21","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3632:6:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3650:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3655:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3646:3:21"},"nodeType":"YulFunctionCall","src":"3646:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3640:5:21"},"nodeType":"YulFunctionCall","src":"3640:26:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3625:6:21"},"nodeType":"YulFunctionCall","src":"3625:42:21"},"nodeType":"YulExpressionStatement","src":"3625:42:21"},{"nodeType":"YulAssignment","src":"3684:24:21","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3698:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"3706:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3694:3:21"},"nodeType":"YulFunctionCall","src":"3694:14:21"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3684:6:21"}]},{"nodeType":"YulAssignment","src":"3725:40:21","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3742:9:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3753:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:21"},"nodeType":"YulFunctionCall","src":"3738:27:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"3725:9:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3554:1:21"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"3557:7:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3551:2:21"},"nodeType":"YulFunctionCall","src":"3551:14:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3566:28:21","statements":[{"nodeType":"YulAssignment","src":"3568:24:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3577:1:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"3580:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3573:3:21"},"nodeType":"YulFunctionCall","src":"3573:19:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3568:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"3547:3:21","statements":[]},"src":"3543:236:21"},{"body":{"nodeType":"YulBlock","src":"3827:166:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3845:43:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"3872:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"3877:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3868:3:21"},"nodeType":"YulFunctionCall","src":"3868:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3862:5:21"},"nodeType":"YulFunctionCall","src":"3862:26:21"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"3849:9:21","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"3912:6:21"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"3924:9:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3951:1:21","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"3954:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3947:3:21"},"nodeType":"YulFunctionCall","src":"3947:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"3963:3:21","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3943:3:21"},"nodeType":"YulFunctionCall","src":"3943:24:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3973:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3969:3:21"},"nodeType":"YulFunctionCall","src":"3969:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"3939:3:21"},"nodeType":"YulFunctionCall","src":"3939:37:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"3935:3:21"},"nodeType":"YulFunctionCall","src":"3935:42:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3920:3:21"},"nodeType":"YulFunctionCall","src":"3920:58:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"3905:6:21"},"nodeType":"YulFunctionCall","src":"3905:74:21"},"nodeType":"YulExpressionStatement","src":"3905:74:21"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"3798:7:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"3807:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3795:2:21"},"nodeType":"YulFunctionCall","src":"3795:19:21"},"nodeType":"YulIf","src":"3792:201:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4013:4:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4027:1:21","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"4030:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4023:3:21"},"nodeType":"YulFunctionCall","src":"4023:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"4039:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4019:3:21"},"nodeType":"YulFunctionCall","src":"4019:22:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4006:6:21"},"nodeType":"YulFunctionCall","src":"4006:36:21"},"nodeType":"YulExpressionStatement","src":"4006:36:21"}]},"nodeType":"YulCase","src":"3389:663:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3394:1:21","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"4069:234:21","statements":[{"nodeType":"YulVariableDeclaration","src":"4083:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"4096:1:21","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4087:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4132:67:21","statements":[{"nodeType":"YulAssignment","src":"4150:35:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"4169:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"4174:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4165:3:21"},"nodeType":"YulFunctionCall","src":"4165:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4159:5:21"},"nodeType":"YulFunctionCall","src":"4159:26:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"4150:5:21"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"4113:6:21"},"nodeType":"YulIf","src":"4110:89:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"4219:4:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4278:5:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"4285:6:21"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"4225:52:21"},"nodeType":"YulFunctionCall","src":"4225:67:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"4212:6:21"},"nodeType":"YulFunctionCall","src":"4212:81:21"},"nodeType":"YulExpressionStatement","src":"4212:81:21"}]},"nodeType":"YulCase","src":"4061:242:21","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"3369:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"3377:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3366:2:21"},"nodeType":"YulFunctionCall","src":"3366:14:21"},"nodeType":"YulSwitch","src":"3359:944:21"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"3038:4:21","type":""},{"name":"src","nodeType":"YulTypedName","src":"3044:3:21","type":""}],"src":"2957:1352:21"},{"body":{"nodeType":"YulBlock","src":"4415:102:21","statements":[{"nodeType":"YulAssignment","src":"4425:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4437:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4448:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4433:3:21"},"nodeType":"YulFunctionCall","src":"4433:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4425:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4467:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4482:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4498:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4503:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4494:3:21"},"nodeType":"YulFunctionCall","src":"4494:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"4507:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4490:3:21"},"nodeType":"YulFunctionCall","src":"4490:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4478:3:21"},"nodeType":"YulFunctionCall","src":"4478:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4460:6:21"},"nodeType":"YulFunctionCall","src":"4460:51:21"},"nodeType":"YulExpressionStatement","src":"4460:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4384:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4395:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4406:4:21","type":""}],"src":"4314:203:21"},{"body":{"nodeType":"YulBlock","src":"4570:174:21","statements":[{"nodeType":"YulAssignment","src":"4580:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4591:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"4594:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4587:3:21"},"nodeType":"YulFunctionCall","src":"4587:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"4580:3:21"}]},{"body":{"nodeType":"YulBlock","src":"4627:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4648:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4655:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4660:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4651:3:21"},"nodeType":"YulFunctionCall","src":"4651:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4641:6:21"},"nodeType":"YulFunctionCall","src":"4641:31:21"},"nodeType":"YulExpressionStatement","src":"4641:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4692:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4695:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4685:6:21"},"nodeType":"YulFunctionCall","src":"4685:15:21"},"nodeType":"YulExpressionStatement","src":"4685:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4720:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4723:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4713:6:21"},"nodeType":"YulFunctionCall","src":"4713:15:21"},"nodeType":"YulExpressionStatement","src":"4713:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4611:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"4614:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4608:2:21"},"nodeType":"YulFunctionCall","src":"4608:10:21"},"nodeType":"YulIf","src":"4605:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4553:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"4556:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"4562:3:21","type":""}],"src":"4522:222:21"},{"body":{"nodeType":"YulBlock","src":"4906:188:21","statements":[{"nodeType":"YulAssignment","src":"4916:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4928:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4939:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4924:3:21"},"nodeType":"YulFunctionCall","src":"4924:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4916:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4958:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4973:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4989:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"4994:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4985:3:21"},"nodeType":"YulFunctionCall","src":"4985:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"4998:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4981:3:21"},"nodeType":"YulFunctionCall","src":"4981:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"4969:3:21"},"nodeType":"YulFunctionCall","src":"4969:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4951:6:21"},"nodeType":"YulFunctionCall","src":"4951:51:21"},"nodeType":"YulExpressionStatement","src":"4951:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5022:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5033:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5018:3:21"},"nodeType":"YulFunctionCall","src":"5018:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"5038:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5011:6:21"},"nodeType":"YulFunctionCall","src":"5011:34:21"},"nodeType":"YulExpressionStatement","src":"5011:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5065:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5076:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5061:3:21"},"nodeType":"YulFunctionCall","src":"5061:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"5081:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5054:6:21"},"nodeType":"YulFunctionCall","src":"5054:34:21"},"nodeType":"YulExpressionStatement","src":"5054:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4859:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4870:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4878:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4886:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4897:4:21","type":""}],"src":"4749:345:21"},{"body":{"nodeType":"YulBlock","src":"5200:76:21","statements":[{"nodeType":"YulAssignment","src":"5210:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5222:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5233:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5218:3:21"},"nodeType":"YulFunctionCall","src":"5218:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5210:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5252:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"5263:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5245:6:21"},"nodeType":"YulFunctionCall","src":"5245:25:21"},"nodeType":"YulExpressionStatement","src":"5245:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5169:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5180:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5191:4:21","type":""}],"src":"5099:177:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_string_fromMemory(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := mload(offset)\n let _2 := sub(shl(64, 1), 1)\n if gt(_1, _2) { panic_error_0x41() }\n let _3 := not(31)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(and(add(_1, 0x1f), _3), 63), _3))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n mstore(memPtr, _1)\n let _4 := 0x20\n if gt(add(add(offset, _1), _4), end) { revert(0, 0) }\n let i := 0\n for { } lt(i, _1) { i := add(i, _4) }\n {\n mstore(add(add(memPtr, i), _4), mload(add(add(offset, i), _4)))\n }\n mstore(add(add(memPtr, _1), _4), 0)\n array := memPtr\n }\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_address_fromMemory(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let offset := mload(headStart)\n let _1 := sub(shl(64, 1), 1)\n if gt(offset, _1) { revert(0, 0) }\n value0 := abi_decode_string_fromMemory(add(headStart, offset), dataEnd)\n let offset_1 := mload(add(headStart, 32))\n if gt(offset_1, _1) { revert(0, 0) }\n value1 := abi_decode_string_fromMemory(add(headStart, offset_1), dataEnd)\n let value := mload(add(headStart, 64))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value2 := value\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000de138038062000de18339810160408190526200003491620002c2565b82826003620000448382620003de565b506004620000538282620003de565b5050600580546001600160a01b0319166001600160a01b038416179055506200007f336103e862000088565b505050620004d2565b6001600160a01b038216620000b85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000c660008383620000ca565b5050565b6001600160a01b038316620000f9578060026000828254620000ed9190620004aa565b909155506200016d9050565b6001600160a01b038316600090815260208190526040902054818110156200014e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000af565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200018b57600280548290039055620001aa565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001f091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022557600080fd5b81516001600160401b0380821115620002425762000242620001fd565b604051601f8301601f19908116603f011681019082821181831017156200026d576200026d620001fd565b816040528381526020925086838588010111156200028a57600080fd5b600091505b83821015620002ae57858201830151818301840152908201906200028f565b600093810190920192909252949350505050565b600080600060608486031215620002d857600080fd5b83516001600160401b0380821115620002f057600080fd5b620002fe8783880162000213565b945060208601519150808211156200031557600080fd5b50620003248682870162000213565b604086015190935090506001600160a01b03811681146200034457600080fd5b809150509250925092565b600181811c908216806200036457607f821691505b6020821081036200038557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d957600081815260208120601f850160051c81016020861015620003b45750805b601f850160051c820191505b81811015620003d557828155600101620003c0565b5050505b505050565b81516001600160401b03811115620003fa57620003fa620001fd565b62000412816200040b84546200034f565b846200038b565b602080601f8311600181146200044a5760008415620004315750858301515b600019600386901b1c1916600185901b178555620003d5565b600085815260208120601f198616915b828110156200047b578886015182559484019460019091019084016200045a565b50858210156200049a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004cc57634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004e26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xDE1 CODESIZE SUB DUP1 PUSH3 0xDE1 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x2C2 JUMP JUMPDEST DUP3 DUP3 PUSH1 0x3 PUSH3 0x44 DUP4 DUP3 PUSH3 0x3DE JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x53 DUP3 DUP3 PUSH3 0x3DE JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE POP PUSH3 0x7F CALLER PUSH2 0x3E8 PUSH3 0x88 JUMP JUMPDEST POP POP POP PUSH3 0x4D2 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xB8 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0xC6 PUSH1 0x0 DUP4 DUP4 PUSH3 0xCA JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0xF9 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0xED SWAP2 SWAP1 PUSH3 0x4AA JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH3 0x16D SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH3 0x14E JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH3 0xAF JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x18B JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH3 0x1AA JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x1F0 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x225 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x242 JUMPI PUSH3 0x242 PUSH3 0x1FD JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP4 ADD PUSH1 0x1F NOT SWAP1 DUP2 AND PUSH1 0x3F ADD AND DUP2 ADD SWAP1 DUP3 DUP3 GT DUP2 DUP4 LT OR ISZERO PUSH3 0x26D JUMPI PUSH3 0x26D PUSH3 0x1FD JUMP JUMPDEST DUP2 PUSH1 0x40 MSTORE DUP4 DUP2 MSTORE PUSH1 0x20 SWAP3 POP DUP7 DUP4 DUP6 DUP9 ADD ADD GT ISZERO PUSH3 0x28A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 SWAP2 POP JUMPDEST DUP4 DUP3 LT ISZERO PUSH3 0x2AE JUMPI DUP6 DUP3 ADD DUP4 ADD MLOAD DUP2 DUP4 ADD DUP5 ADD MSTORE SWAP1 DUP3 ADD SWAP1 PUSH3 0x28F JUMP JUMPDEST PUSH1 0x0 SWAP4 DUP2 ADD SWAP1 SWAP3 ADD SWAP3 SWAP1 SWAP3 MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH3 0x2D8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x2F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH3 0x2FE DUP8 DUP4 DUP9 ADD PUSH3 0x213 JUMP JUMPDEST SWAP5 POP PUSH1 0x20 DUP7 ADD MLOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH3 0x315 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH3 0x324 DUP7 DUP3 DUP8 ADD PUSH3 0x213 JUMP JUMPDEST PUSH1 0x40 DUP7 ADD MLOAD SWAP1 SWAP4 POP SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x344 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x364 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x385 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x3D9 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x3B4 JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x3D5 JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x3C0 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x3FA JUMPI PUSH3 0x3FA PUSH3 0x1FD JUMP JUMPDEST PUSH3 0x412 DUP2 PUSH3 0x40B DUP5 SLOAD PUSH3 0x34F JUMP JUMPDEST DUP5 PUSH3 0x38B JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x44A JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x431 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x3D5 JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x47B JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x45A JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x49A JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH3 0x4CC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8FF DUP1 PUSH3 0x4E2 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB SMOD 0xB5 LOG3 SWAP8 0xBA DUP8 EXP PUSH32 0xB9851B8B1563C851AF8457C239E4AA8B7011B5CF1F376264736F6C6343000814 STOP CALLER ","sourceMap":"222:579:16:-:0;;;296:192;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;405:5;412:7;1962:5:2;:13;405:5:16;1962::2;:13;:::i;:::-;-1:-1:-1;1985:7:2;:17;1995:7;1985;:17;:::i;:::-;-1:-1:-1;;431:7:16::1;:17:::0;;-1:-1:-1;;;;;;431:17:16::1;-1:-1:-1::0;;;;;431:17:16;::::1;;::::0;;-1:-1:-1;458:23:16::1;464:10;476:4;458:5;:23::i;:::-;296:192:::0;;;222:579;;7721:208:2;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;4460:51:21;4433:18;;7835:32:2;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;4969:32:21;;6649:50:2;;;4951:51:21;5018:18;;;5011:34;;;5061:18;;;5054:34;;;4924:18;;6649:50:2;4749:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;5245::21;;5233:2;5218:18;;5099:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:127:21:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:21;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:21;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:21:o;991:729::-;1099:6;1107;1115;1168:2;1156:9;1147:7;1143:23;1139:32;1136:52;;;1184:1;1181;1174:12;1136:52;1211:16;;-1:-1:-1;;;;;1276:14:21;;;1273:34;;;1303:1;1300;1293:12;1273:34;1326:61;1379:7;1370:6;1359:9;1355:22;1326:61;:::i;:::-;1316:71;;1433:2;1422:9;1418:18;1412:25;1396:41;;1462:2;1452:8;1449:16;1446:36;;;1478:1;1475;1468:12;1446:36;;1501:63;1556:7;1545:8;1534:9;1530:24;1501:63;:::i;:::-;1607:2;1592:18;;1586:25;1491:73;;-1:-1:-1;1586:25:21;-1:-1:-1;;;;;;1640:31:21;;1630:42;;1620:70;;1686:1;1683;1676:12;1620:70;1709:5;1699:15;;;991:729;;;;;:::o;1725:380::-;1804:1;1800:12;;;;1847;;;1868:61;;1922:4;1914:6;1910:17;1900:27;;1868:61;1975:2;1967:6;1964:14;1944:18;1941:38;1938:161;;2021:10;2016:3;2012:20;2009:1;2002:31;2056:4;2053:1;2046:15;2084:4;2081:1;2074:15;1938:161;;1725:380;;;:::o;2236:545::-;2338:2;2333:3;2330:11;2327:448;;;2374:1;2399:5;2395:2;2388:17;2444:4;2440:2;2430:19;2514:2;2502:10;2498:19;2495:1;2491:27;2485:4;2481:38;2550:4;2538:10;2535:20;2532:47;;;-1:-1:-1;2573:4:21;2532:47;2628:2;2623:3;2619:12;2616:1;2612:20;2606:4;2602:31;2592:41;;2683:82;2701:2;2694:5;2691:13;2683:82;;;2746:17;;;2727:1;2716:13;2683:82;;;2687:3;;;2327:448;2236:545;;;:::o;2957:1352::-;3077:10;;-1:-1:-1;;;;;3099:30:21;;3096:56;;;3132:18;;:::i;:::-;3161:97;3251:6;3211:38;3243:4;3237:11;3211:38;:::i;:::-;3205:4;3161:97;:::i;:::-;3313:4;;3377:2;3366:14;;3394:1;3389:663;;;;4096:1;4113:6;4110:89;;;-1:-1:-1;4165:19:21;;;4159:26;4110:89;-1:-1:-1;;2914:1:21;2910:11;;;2906:24;2902:29;2892:40;2938:1;2934:11;;;2889:57;4212:81;;3359:944;;3389:663;2183:1;2176:14;;;2220:4;2207:18;;-1:-1:-1;;3425:20:21;;;3543:236;3557:7;3554:1;3551:14;3543:236;;;3646:19;;;3640:26;3625:42;;3738:27;;;;3706:1;3694:14;;;;3573:19;;3543:236;;;3547:3;3807:6;3798:7;3795:19;3792:201;;;3868:19;;;3862:26;-1:-1:-1;;3951:1:21;3947:14;;;3963:3;3943:24;3939:37;3935:42;3920:58;3905:74;;3792:201;-1:-1:-1;;;;;4039:1:21;4023:14;;;4019:22;4006:36;;-1:-1:-1;2957:1352:21:o;4522:222::-;4587:9;;;4608:10;;;4605:133;;;4660:10;4655:3;4651:20;4648:1;4641:31;4695:4;4692:1;4685:15;4723:4;4720:1;4713:15;4605:133;4522:222;;;;:::o;5099:177::-;222:579:16;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_796":{"entryPoint":982,"id":796,"parameterSlots":3,"returnSlots":0},"@_approve_856":{"entryPoint":1329,"id":856,"parameterSlots":4,"returnSlots":0},"@_burn_778":{"entryPoint":1275,"id":778,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":1221,"id":745,"parameterSlots":2,"returnSlots":0},"@_msgSender_1067":{"entryPoint":null,"id":1067,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_904":{"entryPoint":1000,"id":904,"parameterSlots":3,"returnSlots":0},"@_transfer_635":{"entryPoint":1126,"id":635,"parameterSlots":3,"returnSlots":0},"@_update_712":{"entryPoint":1542,"id":712,"parameterSlots":3,"returnSlots":0},"@allowance_532":{"entryPoint":null,"id":532,"parameterSlots":2,"returnSlots":1},"@approve_556":{"entryPoint":678,"id":556,"parameterSlots":2,"returnSlots":1},"@balanceOf_491":{"entryPoint":null,"id":491,"parameterSlots":1,"returnSlots":1},"@burnFrom_1028":{"entryPoint":847,"id":1028,"parameterSlots":2,"returnSlots":0},"@burn_1007":{"entryPoint":834,"id":1007,"parameterSlots":1,"returnSlots":0},"@burn_3879":{"entryPoint":883,"id":3879,"parameterSlots":2,"returnSlots":0},"@decimals_469":{"entryPoint":null,"id":469,"parameterSlots":0,"returnSlots":1},"@mint_3864":{"entryPoint":740,"id":3864,"parameterSlots":2,"returnSlots":0},"@name_451":{"entryPoint":532,"id":451,"parameterSlots":0,"returnSlots":1},"@symbol_460":{"entryPoint":868,"id":460,"parameterSlots":0,"returnSlots":1},"@totalSupply_478":{"entryPoint":null,"id":478,"parameterSlots":0,"returnSlots":1},"@transferFrom_588":{"entryPoint":704,"id":588,"parameterSlots":3,"returnSlots":1},"@transfer_515":{"entryPoint":968,"id":515,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2107,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1988,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1946,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2216,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2158,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4051:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:21","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:21"},"nodeType":"YulFunctionCall","src":"166:21:21"},"nodeType":"YulExpressionStatement","src":"166:21:21"},{"nodeType":"YulVariableDeclaration","src":"196:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:21"},"nodeType":"YulFunctionCall","src":"210:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:21"},"nodeType":"YulFunctionCall","src":"239:18:21"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:34:21"},"nodeType":"YulExpressionStatement","src":"232:34:21"},{"nodeType":"YulVariableDeclaration","src":"275:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:21"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:21"},"nodeType":"YulFunctionCall","src":"369:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:21"},"nodeType":"YulFunctionCall","src":"365:26:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:21"},"nodeType":"YulFunctionCall","src":"403:14:21"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:21"},"nodeType":"YulFunctionCall","src":"393:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:21"},"nodeType":"YulFunctionCall","src":"358:66:21"},"nodeType":"YulExpressionStatement","src":"358:66:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:21"},"nodeType":"YulFunctionCall","src":"302:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:21","statements":[{"nodeType":"YulAssignment","src":"318:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:21"},"nodeType":"YulFunctionCall","src":"323:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:21","statements":[]},"src":"294:140:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:21"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:21"},"nodeType":"YulFunctionCall","src":"454:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:21"},"nodeType":"YulFunctionCall","src":"450:31:21"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:21"},"nodeType":"YulFunctionCall","src":"443:42:21"},"nodeType":"YulExpressionStatement","src":"443:42:21"},{"nodeType":"YulAssignment","src":"494:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:21"},"nodeType":"YulFunctionCall","src":"525:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:21"},"nodeType":"YulFunctionCall","src":"542:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:21"},"nodeType":"YulFunctionCall","src":"521:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:21"},"nodeType":"YulFunctionCall","src":"506:45:21"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:21"},"nodeType":"YulFunctionCall","src":"502:54:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:21","type":""}],"src":"14:548:21"},{"body":{"nodeType":"YulBlock","src":"616:124:21","statements":[{"nodeType":"YulAssignment","src":"626:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:21"},"nodeType":"YulFunctionCall","src":"635:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:21"}]},{"body":{"nodeType":"YulBlock","src":"718:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:21"},"nodeType":"YulFunctionCall","src":"720:12:21"},"nodeType":"YulExpressionStatement","src":"720:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:21"},"nodeType":"YulFunctionCall","src":"699:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:21"},"nodeType":"YulFunctionCall","src":"695:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:21"},"nodeType":"YulFunctionCall","src":"684:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:21"},"nodeType":"YulFunctionCall","src":"674:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:21"},"nodeType":"YulFunctionCall","src":"667:50:21"},"nodeType":"YulIf","src":"664:70:21"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:21","type":""}],"src":"567:173:21"},{"body":{"nodeType":"YulBlock","src":"832:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:21"},"nodeType":"YulFunctionCall","src":"880:12:21"},"nodeType":"YulExpressionStatement","src":"880:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:21"},"nodeType":"YulFunctionCall","src":"849:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:21"},"nodeType":"YulFunctionCall","src":"845:32:21"},"nodeType":"YulIf","src":"842:52:21"},{"nodeType":"YulAssignment","src":"903:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:21"},"nodeType":"YulFunctionCall","src":"913:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:21"}]},{"nodeType":"YulAssignment","src":"951:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:21"},"nodeType":"YulFunctionCall","src":"974:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:21"},"nodeType":"YulFunctionCall","src":"961:32:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:21","type":""}],"src":"745:254:21"},{"body":{"nodeType":"YulBlock","src":"1099:92:21","statements":[{"nodeType":"YulAssignment","src":"1109:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:21"},"nodeType":"YulFunctionCall","src":"1117:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:21"},"nodeType":"YulFunctionCall","src":"1169:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:21"},"nodeType":"YulFunctionCall","src":"1162:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:21"},"nodeType":"YulFunctionCall","src":"1144:41:21"},"nodeType":"YulExpressionStatement","src":"1144:41:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:21","type":""}],"src":"1004:187:21"},{"body":{"nodeType":"YulBlock","src":"1297:76:21","statements":[{"nodeType":"YulAssignment","src":"1307:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:21"},"nodeType":"YulFunctionCall","src":"1315:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:21"},"nodeType":"YulFunctionCall","src":"1342:25:21"},"nodeType":"YulExpressionStatement","src":"1342:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:21","type":""}],"src":"1196:177:21"},{"body":{"nodeType":"YulBlock","src":"1482:224:21","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:21"},"nodeType":"YulFunctionCall","src":"1530:12:21"},"nodeType":"YulExpressionStatement","src":"1530:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:21"},"nodeType":"YulFunctionCall","src":"1499:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:21"},"nodeType":"YulFunctionCall","src":"1495:32:21"},"nodeType":"YulIf","src":"1492:52:21"},{"nodeType":"YulAssignment","src":"1553:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:21"},"nodeType":"YulFunctionCall","src":"1563:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:21"}]},{"nodeType":"YulAssignment","src":"1601:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:21"},"nodeType":"YulFunctionCall","src":"1630:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:21"},"nodeType":"YulFunctionCall","src":"1611:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:21"}]},{"nodeType":"YulAssignment","src":"1658:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:21"},"nodeType":"YulFunctionCall","src":"1681:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:21"},"nodeType":"YulFunctionCall","src":"1668:32:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:21","type":""}],"src":"1378:328:21"},{"body":{"nodeType":"YulBlock","src":"1808:87:21","statements":[{"nodeType":"YulAssignment","src":"1818:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:21"},"nodeType":"YulFunctionCall","src":"1826:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:21","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:21"},"nodeType":"YulFunctionCall","src":"1871:17:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:21"},"nodeType":"YulFunctionCall","src":"1853:36:21"},"nodeType":"YulExpressionStatement","src":"1853:36:21"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:21","type":""}],"src":"1711:184:21"},{"body":{"nodeType":"YulBlock","src":"1970:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:21"},"nodeType":"YulFunctionCall","src":"2018:12:21"},"nodeType":"YulExpressionStatement","src":"2018:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:21"},"nodeType":"YulFunctionCall","src":"1987:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:21"},"nodeType":"YulFunctionCall","src":"1983:32:21"},"nodeType":"YulIf","src":"1980:52:21"},{"nodeType":"YulAssignment","src":"2041:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2064:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2051:12:21"},"nodeType":"YulFunctionCall","src":"2051:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:21","type":""}],"src":"1900:180:21"},{"body":{"nodeType":"YulBlock","src":"2155:116:21","statements":[{"body":{"nodeType":"YulBlock","src":"2201:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2210:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2213:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2203:6:21"},"nodeType":"YulFunctionCall","src":"2203:12:21"},"nodeType":"YulExpressionStatement","src":"2203:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2176:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2185:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2172:3:21"},"nodeType":"YulFunctionCall","src":"2172:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2197:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2168:3:21"},"nodeType":"YulFunctionCall","src":"2168:32:21"},"nodeType":"YulIf","src":"2165:52:21"},{"nodeType":"YulAssignment","src":"2226:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2236:18:21"},"nodeType":"YulFunctionCall","src":"2236:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2226:6:21"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2121:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2132:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2144:6:21","type":""}],"src":"2085:186:21"},{"body":{"nodeType":"YulBlock","src":"2363:173:21","statements":[{"body":{"nodeType":"YulBlock","src":"2409:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2418:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2421:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2411:6:21"},"nodeType":"YulFunctionCall","src":"2411:12:21"},"nodeType":"YulExpressionStatement","src":"2411:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2384:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2380:3:21"},"nodeType":"YulFunctionCall","src":"2380:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2405:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2376:3:21"},"nodeType":"YulFunctionCall","src":"2376:32:21"},"nodeType":"YulIf","src":"2373:52:21"},{"nodeType":"YulAssignment","src":"2434:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2463:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2444:18:21"},"nodeType":"YulFunctionCall","src":"2444:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2434:6:21"}]},{"nodeType":"YulAssignment","src":"2482:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2515:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2526:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2511:3:21"},"nodeType":"YulFunctionCall","src":"2511:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2492:18:21"},"nodeType":"YulFunctionCall","src":"2492:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2482:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2321:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2332:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2344:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2352:6:21","type":""}],"src":"2276:260:21"},{"body":{"nodeType":"YulBlock","src":"2596:325:21","statements":[{"nodeType":"YulAssignment","src":"2606:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2620:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2623:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2616:3:21"},"nodeType":"YulFunctionCall","src":"2616:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2606:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2637:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2667:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2663:3:21"},"nodeType":"YulFunctionCall","src":"2663:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2641:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2714:31:21","statements":[{"nodeType":"YulAssignment","src":"2716:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2730:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2738:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2726:3:21"},"nodeType":"YulFunctionCall","src":"2726:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2716:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2694:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2687:6:21"},"nodeType":"YulFunctionCall","src":"2687:26:21"},"nodeType":"YulIf","src":"2684:61:21"},{"body":{"nodeType":"YulBlock","src":"2804:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2825:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2832:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2837:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2828:3:21"},"nodeType":"YulFunctionCall","src":"2828:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2818:6:21"},"nodeType":"YulFunctionCall","src":"2818:31:21"},"nodeType":"YulExpressionStatement","src":"2818:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2869:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2872:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2862:6:21"},"nodeType":"YulFunctionCall","src":"2862:15:21"},"nodeType":"YulExpressionStatement","src":"2862:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2897:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2900:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2890:6:21"},"nodeType":"YulFunctionCall","src":"2890:15:21"},"nodeType":"YulExpressionStatement","src":"2890:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2760:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2783:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2791:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2780:2:21"},"nodeType":"YulFunctionCall","src":"2780:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2757:2:21"},"nodeType":"YulFunctionCall","src":"2757:38:21"},"nodeType":"YulIf","src":"2754:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2576:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2585:6:21","type":""}],"src":"2541:380:21"},{"body":{"nodeType":"YulBlock","src":"3100:164:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3110:6:21"},"nodeType":"YulFunctionCall","src":"3110:21:21"},"nodeType":"YulExpressionStatement","src":"3110:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:21"},"nodeType":"YulFunctionCall","src":"3147:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:21","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:21"},"nodeType":"YulFunctionCall","src":"3140:30:21"},"nodeType":"YulExpressionStatement","src":"3140:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3190:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3201:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3186:3:21"},"nodeType":"YulFunctionCall","src":"3186:18:21"},{"hexValue":"4e6f742074686520627269646765","kind":"string","nodeType":"YulLiteral","src":"3206:16:21","type":"","value":"Not the bridge"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3179:6:21"},"nodeType":"YulFunctionCall","src":"3179:44:21"},"nodeType":"YulExpressionStatement","src":"3179:44:21"},{"nodeType":"YulAssignment","src":"3232:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3244:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3255:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3240:3:21"},"nodeType":"YulFunctionCall","src":"3240:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3232:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3077:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3091:4:21","type":""}],"src":"2926:338:21"},{"body":{"nodeType":"YulBlock","src":"3426:188:21","statements":[{"nodeType":"YulAssignment","src":"3436:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3459:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3444:3:21"},"nodeType":"YulFunctionCall","src":"3444:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3436:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3493:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3509:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3514:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3505:3:21"},"nodeType":"YulFunctionCall","src":"3505:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3518:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3501:3:21"},"nodeType":"YulFunctionCall","src":"3501:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3489:3:21"},"nodeType":"YulFunctionCall","src":"3489:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3471:6:21"},"nodeType":"YulFunctionCall","src":"3471:51:21"},"nodeType":"YulExpressionStatement","src":"3471:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3538:3:21"},"nodeType":"YulFunctionCall","src":"3538:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"3558:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3531:6:21"},"nodeType":"YulFunctionCall","src":"3531:34:21"},"nodeType":"YulExpressionStatement","src":"3531:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3585:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3596:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3581:3:21"},"nodeType":"YulFunctionCall","src":"3581:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"3601:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3574:6:21"},"nodeType":"YulFunctionCall","src":"3574:34:21"},"nodeType":"YulExpressionStatement","src":"3574:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3379:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3390:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3398:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3406:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3417:4:21","type":""}],"src":"3269:345:21"},{"body":{"nodeType":"YulBlock","src":"3720:102:21","statements":[{"nodeType":"YulAssignment","src":"3730:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3742:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3753:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:21"},"nodeType":"YulFunctionCall","src":"3738:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3730:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3772:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3787:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3808:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3799:3:21"},"nodeType":"YulFunctionCall","src":"3799:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3812:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3795:3:21"},"nodeType":"YulFunctionCall","src":"3795:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3783:3:21"},"nodeType":"YulFunctionCall","src":"3783:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3765:6:21"},"nodeType":"YulFunctionCall","src":"3765:51:21"},"nodeType":"YulExpressionStatement","src":"3765:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3689:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3700:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3711:4:21","type":""}],"src":"3619:203:21"},{"body":{"nodeType":"YulBlock","src":"3875:174:21","statements":[{"nodeType":"YulAssignment","src":"3885:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3896:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"3899:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3892:3:21"},"nodeType":"YulFunctionCall","src":"3892:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3885:3:21"}]},{"body":{"nodeType":"YulBlock","src":"3932:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3953:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3960:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3965:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3956:3:21"},"nodeType":"YulFunctionCall","src":"3956:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3946:6:21"},"nodeType":"YulFunctionCall","src":"3946:31:21"},"nodeType":"YulExpressionStatement","src":"3946:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3997:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4000:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3990:6:21"},"nodeType":"YulFunctionCall","src":"3990:15:21"},"nodeType":"YulExpressionStatement","src":"3990:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4028:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4018:6:21"},"nodeType":"YulFunctionCall","src":"4018:15:21"},"nodeType":"YulExpressionStatement","src":"4018:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3916:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"3919:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3913:2:21"},"nodeType":"YulFunctionCall","src":"3913:10:21"},"nodeType":"YulIf","src":"3910:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3858:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"3861:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3867:3:21","type":""}],"src":"3827:222:21"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not the bridge\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SUB SMOD 0xB5 LOG3 SWAP8 0xBA DUP8 EXP PUSH32 0xB9851B8B1563C851AF8457C239E4AA8B7011B5CF1F376264736F6C6343000814 STOP CALLER ","sourceMap":"222:579:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:21;;1162:22;1144:41;;1132:2;1117:18;4293:186:2;1004:187:21;3144:97:2;3222:12;;3144:97;;;1342:25:21;;;1330:2;1315:18;3144:97:2;1196:177:21;5039:244:2;;;;;;:::i;:::-;;:::i;3002:82::-;;;3075:2;1853:36:21;;1841:2;1826:18;3002:82:2;1711:184:21;598:94:16;;;;;;:::i;:::-;;:::i;:::-;;618:87:4;;;;;;:::i;:::-;;:::i;3299:116:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3390:18:2;3364:7;3390:18;;;;;;;;;;;;3299:116;1021:158:4;;;;;;:::i;:::-;;:::i;2276:93:2:-;;;:::i;698:101:16:-;;;;;;:::i;:::-;;:::i;3610:178:2:-;;;;;;:::i;:::-;;:::i;3846:140::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3952:18:2;;;3926:7;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3846:140;2074:89;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;735:10:6;4420:31:2;735:10:6;4436:7:2;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;;:::o;5039:244::-;5126:4;735:10:6;5182:37:2;5198:4;735:10:6;5213:5:2;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;-1:-1:-1;5272:4:2;;5039:244;-1:-1:-1;;;;5039:244:2:o;598:94:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;;;;;;;;;668:17:::1;674:2;678:6;668:5;:17::i;:::-;598:94:::0;;:::o;618:87:4:-;672:26;735:10:6;692:5:4;672;:26::i;:::-;618:87;:::o;1021:158::-;1096:45;1112:7;735:10:6;1135:5:4;1096:15;:45::i;:::-;1151:21;1157:7;1166:5;1151;:21::i;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;698:101:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;2926:338:21;526:48:16;770:22:::1;779:4;785:6;770:8;:22::i;3610:178:2:-:0;3679:4;735:10:6;3733:27:2;735:10:6;3750:2:2;3754:5;3733:9;:27::i;8989:128::-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;-1:-1:-1;;;;;3952:18:2;;;10762:24;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10828:37:2;;10824:310;;10904:5;10885:16;:24;10881:130;;;10936:60;;-1:-1:-1;;;10936:60:2;;-1:-1:-1;;;;;3489:32:21;;10936:60:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;10936:60:2;3269:345:21;10881:130:2;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10752:388;10663:477;;;:::o;5656:300::-;-1:-1:-1;;;;;5739:18:2;;5735:86;;5780:30;;-1:-1:-1;;;5780:30:2;;5807:1;5780:30;;;3765:51:21;3738:18;;5780:30:2;3619:203:21;5735:86:2;-1:-1:-1;;;;;5834:16:2;;5830:86;;5873:32;;-1:-1:-1;;;5873:32:2;;5902:1;5873:32;;;3765:51:21;3738:18;;5873:32:2;3619:203:21;5830:86:2;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;7721:208::-;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;3765:51:21;3738:18;;7835:32:2;3619:203:21;7787:91:2;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;8247:206::-;-1:-1:-1;;;;;8317:21:2;;8313:89;;8361:30;;-1:-1:-1;;;8361:30:2;;8388:1;8361:30;;;3765:51:21;3738:18;;8361:30:2;3619:203:21;8313:89:2;8411:35;8419:7;8436:1;8440:5;8411:7;:35::i;9949:432::-;-1:-1:-1;;;;;10061:19:2;;10057:89;;10103:32;;-1:-1:-1;;;10103:32:2;;10132:1;10103:32;;;3765:51:21;3738:18;;10103:32:2;3619:203:21;10057:89:2;-1:-1:-1;;;;;10159:21:2;;10155:90;;10203:31;;-1:-1:-1;;;10203:31:2;;10231:1;10203:31;;;3765:51:21;3738:18;;10203:31:2;3619:203:21;10155:90:2;-1:-1:-1;;;;;10254:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10299:76;;;;10349:7;-1:-1:-1;;;;;10333:31:2;10342:5;-1:-1:-1;;;;;10333:31:2;;10358:5;10333:31;;;;1342:25:21;;1330:2;1315:18;;1196:177;10333:31:2;;;;;;;;9949:432;;;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;3489:32:21;;6649:50:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;6649:50:2;3269:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;1342::21;;1330:2;1315:18;;1196:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:548:21:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:21;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:21:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:21;;1900:180;-1:-1:-1;1900:180:21:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:21:o;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:380::-;2620:1;2616:12;;;;2663;;;2684:61;;2738:4;2730:6;2726:17;2716:27;;2684:61;2791:2;2783:6;2780:14;2760:18;2757:38;2754:161;;2837:10;2832:3;2828:20;2825:1;2818:31;2872:4;2869:1;2862:15;2900:4;2897:1;2890:15;2754:161;;2541:380;;;:::o;3827:222::-;3892:9;;;3913:10;;;3910:133;;;3965:10;3960:3;3956:20;3953:1;3946:31;4000:4;3997:1;3990:15;4028:4;4025:1;4018:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"bridge_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Bridge.sol\":\"BridgedERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/ERC20Bridge.sol\":{\"keccak256\":\"0xba3f8b86233053bf90a6df93e573b7c887839a7983f03a50fc3ac083b712c97a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8927b354595525561dca5682973c44a98a43b0e51eb12a8db265f5b7e848b392\",\"dweb:/ipfs/QmYU24nSAXbnxn4Tj98dxyg9BnfQUv3n1Dh24gf7P4aaQ6\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"ERC20Bridge":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"}],"name":"Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Started","type":"event"},{"anonymous":false,"inputs":[],"name":"Succeeded","type":"event"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"bridge","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"dispatched","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"exit","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"res","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"finish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Relayer","name":"relayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"queried","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610c2b806100206000396000f3fe6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC2B DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x71006C09 EQ PUSH2 0x84 JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x87121759 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6D PUSH2 0x68 CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP3 SWAP2 SWAP1 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0x9F CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x31B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0xED CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0x99C JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0xA27 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x16B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x198 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x267 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH2 0x2C6 SWAP3 POP DUP7 SWAP2 POP PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF9FC8619F47185576C57BCB55A726E87AEDD0C97599424AF8325993DA5408320 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH2 0x373 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x38F SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x424 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x448 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x2C6 SWAP1 DUP6 SWAP1 PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x40C10F19 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST DUP4 ISZERO PUSH2 0x502 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318BA0C588A4BDE325B55EBF926BFA606B77D9971AC5FC7250A615885DAF9D5C SWAP1 PUSH1 0x0 SWAP1 LOG1 PUSH2 0x5B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x511 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x51A SWAP2 PUSH2 0xAE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x52B DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0xABB JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x599 SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A6 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x5FD JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x61A JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x628 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x670 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x6CD JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x5A6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x6E9 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x79E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x752 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x771 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x795 SWAP2 SWAP1 PUSH2 0xBDC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x817 JUMPI PUSH2 0x817 PUSH2 0x7D8 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x839 JUMPI PUSH2 0x839 PUSH2 0x7D8 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x85A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x865 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8A5 PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST PUSH2 0x7EE JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x8DD JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x916 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x945 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x96D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x97D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x9BD DUP2 PUSH2 0x98E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA44 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xA94 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x8DA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xA44 DUP2 PUSH2 0x98E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0xB0D JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xB4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xB5D PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xB72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x795 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA44 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xBBA SWAP1 DUP4 ADD DUP7 PUSH2 0x8FE JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xD9 DUP12 PUSH28 0xB6DC5C7058D0FCEFE332656B18C25F186A937B55E96204ABF67FC85D PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"917:1290:16:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_castToPure_4808":{"entryPoint":null,"id":4808,"parameterSlots":1,"returnSlots":1},"@_getInitializableStorage_389":{"entryPoint":null,"id":389,"parameterSlots":0,"returnSlots":1},"@_sendLogPayloadImplementation_4791":{"entryPoint":null,"id":4791,"parameterSlots":1,"returnSlots":0},"@_sendLogPayload_4820":{"entryPoint":1950,"id":4820,"parameterSlots":1,"returnSlots":0},"@bridge_3950":{"entryPoint":971,"id":3950,"parameterSlots":3,"returnSlots":1},"@dispatched_3700":{"entryPoint":308,"id":3700,"parameterSlots":2,"returnSlots":2},"@exit_3992":{"entryPoint":517,"id":3992,"parameterSlots":3,"returnSlots":1},"@finish_4045":{"entryPoint":1188,"id":4045,"parameterSlots":4,"returnSlots":0},"@initialize_3652":{"entryPoint":1463,"id":3652,"parameterSlots":1,"returnSlots":0},"@log_5391":{"entryPoint":1749,"id":5391,"parameterSlots":1,"returnSlots":0},"@queried_3731":{"entryPoint":795,"id":3731,"parameterSlots":2,"returnSlots":2},"@relay_3755":{"entryPoint":1819,"id":3755,"parameterSlots":4,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":2381,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":2119,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":2718,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256":{"entryPoint":2460,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_Relayer_$4434":{"entryPoint":2599,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":2837,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":3036,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":2302,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2690,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed":{"entryPoint":2966,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2346,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2947,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2635,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":2030,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":2079,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":2747,"id":null,"parameterSlots":4,"returnSlots":2},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4":{"entryPoint":2789,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":2266,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":2008,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x51":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":1987,"id":null,"parameterSlots":1,"returnSlots":0},"validator_revert_bool":{"entryPoint":2446,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:8350:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:21","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:21"},"nodeType":"YulFunctionCall","src":"125:12:21"},"nodeType":"YulExpressionStatement","src":"125:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:21"},"nodeType":"YulFunctionCall","src":"104:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:21"},"nodeType":"YulFunctionCall","src":"100:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:21"},"nodeType":"YulFunctionCall","src":"89:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:21"},"nodeType":"YulFunctionCall","src":"79:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:21"},"nodeType":"YulFunctionCall","src":"72:50:21"},"nodeType":"YulIf","src":"69:70:21"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:21","type":""}],"src":"14:131:21"},{"body":{"nodeType":"YulBlock","src":"182:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"199:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"206:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"211:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"202:3:21"},"nodeType":"YulFunctionCall","src":"202:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"192:6:21"},"nodeType":"YulFunctionCall","src":"192:31:21"},"nodeType":"YulExpressionStatement","src":"192:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"242:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:15:21"},"nodeType":"YulExpressionStatement","src":"232:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:21"},"nodeType":"YulFunctionCall","src":"256:15:21"},"nodeType":"YulExpressionStatement","src":"256:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"150:127:21"},{"body":{"nodeType":"YulBlock","src":"327:230:21","statements":[{"nodeType":"YulAssignment","src":"337:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"353:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"347:5:21"},"nodeType":"YulFunctionCall","src":"347:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"337:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"365:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"387:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"403:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"409:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"414:3:21"},"nodeType":"YulFunctionCall","src":"414:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"395:3:21"},"nodeType":"YulFunctionCall","src":"395:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"383:3:21"},"nodeType":"YulFunctionCall","src":"383:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"369:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"498:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"500:16:21"},"nodeType":"YulFunctionCall","src":"500:18:21"},"nodeType":"YulExpressionStatement","src":"500:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"453:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"438:2:21"},"nodeType":"YulFunctionCall","src":"438:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"477:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"489:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"474:2:21"},"nodeType":"YulFunctionCall","src":"474:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"435:2:21"},"nodeType":"YulFunctionCall","src":"435:62:21"},"nodeType":"YulIf","src":"432:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"540:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:21"},"nodeType":"YulFunctionCall","src":"529:22:21"},"nodeType":"YulExpressionStatement","src":"529:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"307:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"316:6:21","type":""}],"src":"282:275:21"},{"body":{"nodeType":"YulBlock","src":"619:129:21","statements":[{"body":{"nodeType":"YulBlock","src":"663:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"665:16:21"},"nodeType":"YulFunctionCall","src":"665:18:21"},"nodeType":"YulExpressionStatement","src":"665:18:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"635:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"643:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"632:2:21"},"nodeType":"YulFunctionCall","src":"632:30:21"},"nodeType":"YulIf","src":"629:56:21"},{"nodeType":"YulAssignment","src":"694:48:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"714:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"722:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"710:3:21"},"nodeType":"YulFunctionCall","src":"710:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"727:3:21"},"nodeType":"YulFunctionCall","src":"727:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"706:3:21"},"nodeType":"YulFunctionCall","src":"706:29:21"},{"kind":"number","nodeType":"YulLiteral","src":"737:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"702:3:21"},"nodeType":"YulFunctionCall","src":"702:40:21"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"694:4:21"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"599:6:21","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"610:4:21","type":""}],"src":"562:186:21"},{"body":{"nodeType":"YulBlock","src":"849:710:21","statements":[{"body":{"nodeType":"YulBlock","src":"895:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"907:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"897:6:21"},"nodeType":"YulFunctionCall","src":"897:12:21"},"nodeType":"YulExpressionStatement","src":"897:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"870:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"879:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"866:3:21"},"nodeType":"YulFunctionCall","src":"866:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"891:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"862:3:21"},"nodeType":"YulFunctionCall","src":"862:32:21"},"nodeType":"YulIf","src":"859:52:21"},{"nodeType":"YulVariableDeclaration","src":"920:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"933:12:21"},"nodeType":"YulFunctionCall","src":"933:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"924:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"965:24:21"},"nodeType":"YulFunctionCall","src":"965:31:21"},"nodeType":"YulExpressionStatement","src":"965:31:21"},{"nodeType":"YulAssignment","src":"1005:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"1015:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1029:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1060:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1071:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1056:3:21"},"nodeType":"YulFunctionCall","src":"1056:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1043:12:21"},"nodeType":"YulFunctionCall","src":"1043:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1033:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1118:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1130:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1120:6:21"},"nodeType":"YulFunctionCall","src":"1120:12:21"},"nodeType":"YulExpressionStatement","src":"1120:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1090:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1098:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1087:2:21"},"nodeType":"YulFunctionCall","src":"1087:30:21"},"nodeType":"YulIf","src":"1084:50:21"},{"nodeType":"YulVariableDeclaration","src":"1143:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1168:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:21"},"nodeType":"YulFunctionCall","src":"1153:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1147:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1223:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1232:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1235:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1225:6:21"},"nodeType":"YulFunctionCall","src":"1225:12:21"},"nodeType":"YulExpressionStatement","src":"1225:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1202:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1206:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1198:3:21"},"nodeType":"YulFunctionCall","src":"1198:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1213:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1194:3:21"},"nodeType":"YulFunctionCall","src":"1194:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1187:6:21"},"nodeType":"YulFunctionCall","src":"1187:35:21"},"nodeType":"YulIf","src":"1184:55:21"},{"nodeType":"YulVariableDeclaration","src":"1248:26:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1271:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1258:12:21"},"nodeType":"YulFunctionCall","src":"1258:16:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1252:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1283:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1340:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1312:27:21"},"nodeType":"YulFunctionCall","src":"1312:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1296:15:21"},"nodeType":"YulFunctionCall","src":"1296:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"1287:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1360:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1367:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1353:6:21"},"nodeType":"YulFunctionCall","src":"1353:17:21"},"nodeType":"YulExpressionStatement","src":"1353:17:21"},{"body":{"nodeType":"YulBlock","src":"1416:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:21"},"nodeType":"YulFunctionCall","src":"1418:12:21"},"nodeType":"YulExpressionStatement","src":"1418:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1397:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1389:3:21"},"nodeType":"YulFunctionCall","src":"1389:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1402:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1382:2:21"},"nodeType":"YulFunctionCall","src":"1382:33:21"},"nodeType":"YulIf","src":"1379:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1458:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1465:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1454:3:21"},"nodeType":"YulFunctionCall","src":"1454:14:21"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1474:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1478:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1470:3:21"},"nodeType":"YulFunctionCall","src":"1470:11:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1483:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1441:12:21"},"nodeType":"YulFunctionCall","src":"1441:45:21"},"nodeType":"YulExpressionStatement","src":"1441:45:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1510:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1517:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1506:3:21"},"nodeType":"YulFunctionCall","src":"1506:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"1522:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:21"},"nodeType":"YulFunctionCall","src":"1502:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1527:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1495:6:21"},"nodeType":"YulFunctionCall","src":"1495:34:21"},"nodeType":"YulExpressionStatement","src":"1495:34:21"},{"nodeType":"YulAssignment","src":"1538:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"1548:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1538:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"807:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"818:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"830:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"838:6:21","type":""}],"src":"753:806:21"},{"body":{"nodeType":"YulBlock","src":"1630:184:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1640:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1649:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1644:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1709:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1734:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1739:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:21"},"nodeType":"YulFunctionCall","src":"1730:11:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1753:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1758:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1749:3:21"},"nodeType":"YulFunctionCall","src":"1749:11:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1743:5:21"},"nodeType":"YulFunctionCall","src":"1743:18:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1723:6:21"},"nodeType":"YulFunctionCall","src":"1723:39:21"},"nodeType":"YulExpressionStatement","src":"1723:39:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1670:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1673:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1667:2:21"},"nodeType":"YulFunctionCall","src":"1667:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1681:19:21","statements":[{"nodeType":"YulAssignment","src":"1683:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1692:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"1695:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1688:3:21"},"nodeType":"YulFunctionCall","src":"1688:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1683:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1663:3:21","statements":[]},"src":"1659:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1792:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1797:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1788:3:21"},"nodeType":"YulFunctionCall","src":"1788:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1806:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1781:6:21"},"nodeType":"YulFunctionCall","src":"1781:27:21"},"nodeType":"YulExpressionStatement","src":"1781:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1608:3:21","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1613:3:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"1618:6:21","type":""}],"src":"1564:250:21"},{"body":{"nodeType":"YulBlock","src":"1868:221:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1878:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1898:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1892:5:21"},"nodeType":"YulFunctionCall","src":"1892:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1882:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1920:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1925:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1913:6:21"},"nodeType":"YulFunctionCall","src":"1913:19:21"},"nodeType":"YulExpressionStatement","src":"1913:19:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1980:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1987:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:21"},"nodeType":"YulFunctionCall","src":"1976:16:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1998:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2003:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:21"},"nodeType":"YulFunctionCall","src":"1994:14:21"},{"name":"length","nodeType":"YulIdentifier","src":"2010:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1941:34:21"},"nodeType":"YulFunctionCall","src":"1941:76:21"},"nodeType":"YulExpressionStatement","src":"1941:76:21"},{"nodeType":"YulAssignment","src":"2026:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2041:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2054:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2062:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:21"},"nodeType":"YulFunctionCall","src":"2050:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2071:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2067:3:21"},"nodeType":"YulFunctionCall","src":"2067:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2046:3:21"},"nodeType":"YulFunctionCall","src":"2046:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2037:3:21"},"nodeType":"YulFunctionCall","src":"2037:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"2078:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2033:3:21"},"nodeType":"YulFunctionCall","src":"2033:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2026:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1845:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1852:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1860:3:21","type":""}],"src":"1819:270:21"},{"body":{"nodeType":"YulBlock","src":"2235:157:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2277:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2270:6:21"},"nodeType":"YulFunctionCall","src":"2270:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2263:6:21"},"nodeType":"YulFunctionCall","src":"2263:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2245:6:21"},"nodeType":"YulFunctionCall","src":"2245:41:21"},"nodeType":"YulExpressionStatement","src":"2245:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2306:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2317:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2302:3:21"},"nodeType":"YulFunctionCall","src":"2302:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"2322:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2295:6:21"},"nodeType":"YulFunctionCall","src":"2295:30:21"},"nodeType":"YulExpressionStatement","src":"2295:30:21"},{"nodeType":"YulAssignment","src":"2334:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2359:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2371:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2382:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2367:3:21"},"nodeType":"YulFunctionCall","src":"2367:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2342:16:21"},"nodeType":"YulFunctionCall","src":"2342:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2334:4:21"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2196:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2207:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2215:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2226:4:21","type":""}],"src":"2094:298:21"},{"body":{"nodeType":"YulBlock","src":"2501:352:21","statements":[{"body":{"nodeType":"YulBlock","src":"2547:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2556:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2559:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2549:6:21"},"nodeType":"YulFunctionCall","src":"2549:12:21"},"nodeType":"YulExpressionStatement","src":"2549:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2522:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2531:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2518:3:21"},"nodeType":"YulFunctionCall","src":"2518:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2543:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2514:3:21"},"nodeType":"YulFunctionCall","src":"2514:32:21"},"nodeType":"YulIf","src":"2511:52:21"},{"nodeType":"YulVariableDeclaration","src":"2572:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2598:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2585:12:21"},"nodeType":"YulFunctionCall","src":"2585:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2576:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2642:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2617:24:21"},"nodeType":"YulFunctionCall","src":"2617:31:21"},"nodeType":"YulExpressionStatement","src":"2617:31:21"},{"nodeType":"YulAssignment","src":"2657:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2667:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2657:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2681:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2713:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2724:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2709:3:21"},"nodeType":"YulFunctionCall","src":"2709:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2696:12:21"},"nodeType":"YulFunctionCall","src":"2696:32:21"},"variables":[{"name":"value_1","nodeType":"YulTypedName","src":"2685:7:21","type":""}]},{"expression":{"arguments":[{"name":"value_1","nodeType":"YulIdentifier","src":"2762:7:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"2737:24:21"},"nodeType":"YulFunctionCall","src":"2737:33:21"},"nodeType":"YulExpressionStatement","src":"2737:33:21"},{"nodeType":"YulAssignment","src":"2779:17:21","value":{"name":"value_1","nodeType":"YulIdentifier","src":"2789:7:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2779:6:21"}]},{"nodeType":"YulAssignment","src":"2805:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2832:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2843:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2828:3:21"},"nodeType":"YulFunctionCall","src":"2828:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2815:12:21"},"nodeType":"YulFunctionCall","src":"2815:32:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2805:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2451:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2462:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2474:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2482:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2490:6:21","type":""}],"src":"2397:456:21"},{"body":{"nodeType":"YulBlock","src":"2959:76:21","statements":[{"nodeType":"YulAssignment","src":"2969:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2981:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2992:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2977:3:21"},"nodeType":"YulFunctionCall","src":"2977:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2969:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3011:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"3022:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3004:6:21"},"nodeType":"YulFunctionCall","src":"3004:25:21"},"nodeType":"YulExpressionStatement","src":"3004:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2928:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2939:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2950:4:21","type":""}],"src":"2858:177:21"},{"body":{"nodeType":"YulBlock","src":"3082:76:21","statements":[{"body":{"nodeType":"YulBlock","src":"3136:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3145:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3148:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3138:6:21"},"nodeType":"YulFunctionCall","src":"3138:12:21"},"nodeType":"YulExpressionStatement","src":"3138:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3105:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3126:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3119:6:21"},"nodeType":"YulFunctionCall","src":"3119:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3112:6:21"},"nodeType":"YulFunctionCall","src":"3112:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"3102:2:21"},"nodeType":"YulFunctionCall","src":"3102:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3095:6:21"},"nodeType":"YulFunctionCall","src":"3095:40:21"},"nodeType":"YulIf","src":"3092:60:21"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"3071:5:21","type":""}],"src":"3040:118:21"},{"body":{"nodeType":"YulBlock","src":"3283:668:21","statements":[{"body":{"nodeType":"YulBlock","src":"3329:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3338:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3341:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3331:6:21"},"nodeType":"YulFunctionCall","src":"3331:12:21"},"nodeType":"YulExpressionStatement","src":"3331:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3304:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3313:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3300:3:21"},"nodeType":"YulFunctionCall","src":"3300:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3325:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3296:3:21"},"nodeType":"YulFunctionCall","src":"3296:32:21"},"nodeType":"YulIf","src":"3293:52:21"},{"nodeType":"YulVariableDeclaration","src":"3354:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3380:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3367:12:21"},"nodeType":"YulFunctionCall","src":"3367:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3358:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3421:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3399:21:21"},"nodeType":"YulFunctionCall","src":"3399:28:21"},"nodeType":"YulExpressionStatement","src":"3399:28:21"},{"nodeType":"YulAssignment","src":"3436:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3446:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3436:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3460:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3491:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3502:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3487:3:21"},"nodeType":"YulFunctionCall","src":"3487:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3474:12:21"},"nodeType":"YulFunctionCall","src":"3474:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3464:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3515:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3525:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3519:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3570:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3579:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3582:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3572:6:21"},"nodeType":"YulFunctionCall","src":"3572:12:21"},"nodeType":"YulExpressionStatement","src":"3572:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3558:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3566:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3555:2:21"},"nodeType":"YulFunctionCall","src":"3555:14:21"},"nodeType":"YulIf","src":"3552:34:21"},{"nodeType":"YulVariableDeclaration","src":"3595:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3609:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"3620:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3605:3:21"},"nodeType":"YulFunctionCall","src":"3605:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"3599:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3675:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3684:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3687:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3677:6:21"},"nodeType":"YulFunctionCall","src":"3677:12:21"},"nodeType":"YulExpressionStatement","src":"3677:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3654:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"3658:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3650:3:21"},"nodeType":"YulFunctionCall","src":"3650:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3665:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3646:3:21"},"nodeType":"YulFunctionCall","src":"3646:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"3639:6:21"},"nodeType":"YulFunctionCall","src":"3639:35:21"},"nodeType":"YulIf","src":"3636:55:21"},{"nodeType":"YulVariableDeclaration","src":"3700:30:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3727:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3714:12:21"},"nodeType":"YulFunctionCall","src":"3714:16:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3704:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3757:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3766:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3769:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3759:6:21"},"nodeType":"YulFunctionCall","src":"3759:12:21"},"nodeType":"YulExpressionStatement","src":"3759:12:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3745:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3753:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3742:2:21"},"nodeType":"YulFunctionCall","src":"3742:14:21"},"nodeType":"YulIf","src":"3739:34:21"},{"body":{"nodeType":"YulBlock","src":"3823:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3832:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3835:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3825:6:21"},"nodeType":"YulFunctionCall","src":"3825:12:21"},"nodeType":"YulExpressionStatement","src":"3825:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3796:2:21"},{"name":"length","nodeType":"YulIdentifier","src":"3800:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3792:3:21"},"nodeType":"YulFunctionCall","src":"3792:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"3809:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3788:3:21"},"nodeType":"YulFunctionCall","src":"3788:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3814:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3785:2:21"},"nodeType":"YulFunctionCall","src":"3785:37:21"},"nodeType":"YulIf","src":"3782:57:21"},{"nodeType":"YulAssignment","src":"3848:21:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3862:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"3866:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3858:3:21"},"nodeType":"YulFunctionCall","src":"3858:11:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3848:6:21"}]},{"nodeType":"YulAssignment","src":"3878:16:21","value":{"name":"length","nodeType":"YulIdentifier","src":"3888:6:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3878:6:21"}]},{"nodeType":"YulAssignment","src":"3903:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3930:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3941:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3926:3:21"},"nodeType":"YulFunctionCall","src":"3926:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3913:12:21"},"nodeType":"YulFunctionCall","src":"3913:32:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3903:6:21"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3225:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3236:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3248:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3256:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3264:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3272:6:21","type":""}],"src":"3163:788:21"},{"body":{"nodeType":"YulBlock","src":"4042:177:21","statements":[{"body":{"nodeType":"YulBlock","src":"4088:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4097:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4100:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4090:6:21"},"nodeType":"YulFunctionCall","src":"4090:12:21"},"nodeType":"YulExpressionStatement","src":"4090:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4063:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"4072:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4059:3:21"},"nodeType":"YulFunctionCall","src":"4059:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"4084:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4055:3:21"},"nodeType":"YulFunctionCall","src":"4055:32:21"},"nodeType":"YulIf","src":"4052:52:21"},{"nodeType":"YulVariableDeclaration","src":"4113:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4139:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4126:12:21"},"nodeType":"YulFunctionCall","src":"4126:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"4117:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"4183:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"4158:24:21"},"nodeType":"YulFunctionCall","src":"4158:31:21"},"nodeType":"YulExpressionStatement","src":"4158:31:21"},{"nodeType":"YulAssignment","src":"4198:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"4208:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4198:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_Relayer_$4434","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4008:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4019:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4031:6:21","type":""}],"src":"3956:263:21"},{"body":{"nodeType":"YulBlock","src":"4398:175:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4415:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4426:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4408:6:21"},"nodeType":"YulFunctionCall","src":"4408:21:21"},"nodeType":"YulExpressionStatement","src":"4408:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4449:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4460:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4445:3:21"},"nodeType":"YulFunctionCall","src":"4445:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"4465:2:21","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4438:6:21"},"nodeType":"YulFunctionCall","src":"4438:30:21"},"nodeType":"YulExpressionStatement","src":"4438:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4488:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4499:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4484:3:21"},"nodeType":"YulFunctionCall","src":"4484:18:21"},{"hexValue":"4d7573742062652063616c6c65642062792072656c61796572","kind":"string","nodeType":"YulLiteral","src":"4504:27:21","type":"","value":"Must be called by relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4477:6:21"},"nodeType":"YulFunctionCall","src":"4477:55:21"},"nodeType":"YulExpressionStatement","src":"4477:55:21"},{"nodeType":"YulAssignment","src":"4541:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4553:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4564:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4549:3:21"},"nodeType":"YulFunctionCall","src":"4549:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4541:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4375:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4389:4:21","type":""}],"src":"4224:349:21"},{"body":{"nodeType":"YulBlock","src":"4715:150:21","statements":[{"nodeType":"YulVariableDeclaration","src":"4725:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4745:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4739:5:21"},"nodeType":"YulFunctionCall","src":"4739:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4729:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4800:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"4808:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4796:3:21"},"nodeType":"YulFunctionCall","src":"4796:17:21"},{"name":"pos","nodeType":"YulIdentifier","src":"4815:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4820:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4761:34:21"},"nodeType":"YulFunctionCall","src":"4761:66:21"},"nodeType":"YulExpressionStatement","src":"4761:66:21"},{"nodeType":"YulAssignment","src":"4836:23:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4847:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4852:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4843:3:21"},"nodeType":"YulFunctionCall","src":"4843:16:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4836:3:21"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4691:3:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4696:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4707:3:21","type":""}],"src":"4578:287:21"},{"body":{"nodeType":"YulBlock","src":"4999:145:21","statements":[{"nodeType":"YulAssignment","src":"5009:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5021:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5032:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5017:3:21"},"nodeType":"YulFunctionCall","src":"5017:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5009:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5051:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5066:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5082:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5087:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5078:3:21"},"nodeType":"YulFunctionCall","src":"5078:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"5091:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5074:3:21"},"nodeType":"YulFunctionCall","src":"5074:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5062:3:21"},"nodeType":"YulFunctionCall","src":"5062:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5044:6:21"},"nodeType":"YulFunctionCall","src":"5044:51:21"},"nodeType":"YulExpressionStatement","src":"5044:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5115:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5126:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5111:3:21"},"nodeType":"YulFunctionCall","src":"5111:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"5131:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5104:6:21"},"nodeType":"YulFunctionCall","src":"5104:34:21"},"nodeType":"YulExpressionStatement","src":"5104:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4960:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4971:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4979:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4990:4:21","type":""}],"src":"4870:274:21"},{"body":{"nodeType":"YulBlock","src":"5306:218:21","statements":[{"nodeType":"YulAssignment","src":"5316:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5328:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5339:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5324:3:21"},"nodeType":"YulFunctionCall","src":"5324:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5316:4:21"}]},{"nodeType":"YulVariableDeclaration","src":"5351:29:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5369:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5374:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5365:3:21"},"nodeType":"YulFunctionCall","src":"5365:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"5378:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5361:3:21"},"nodeType":"YulFunctionCall","src":"5361:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5355:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5396:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5411:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"5419:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5407:3:21"},"nodeType":"YulFunctionCall","src":"5407:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5389:6:21"},"nodeType":"YulFunctionCall","src":"5389:34:21"},"nodeType":"YulExpressionStatement","src":"5389:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5443:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5454:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5439:3:21"},"nodeType":"YulFunctionCall","src":"5439:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5463:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"5471:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5459:3:21"},"nodeType":"YulFunctionCall","src":"5459:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5432:6:21"},"nodeType":"YulFunctionCall","src":"5432:43:21"},"nodeType":"YulExpressionStatement","src":"5432:43:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5495:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5506:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5491:3:21"},"nodeType":"YulFunctionCall","src":"5491:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"5511:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5484:6:21"},"nodeType":"YulFunctionCall","src":"5484:34:21"},"nodeType":"YulExpressionStatement","src":"5484:34:21"}]},"name":"abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5259:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5270:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5278:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5286:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5297:4:21","type":""}],"src":"5149:375:21"},{"body":{"nodeType":"YulBlock","src":"5607:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"5653:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5662:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5665:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5655:6:21"},"nodeType":"YulFunctionCall","src":"5655:12:21"},"nodeType":"YulExpressionStatement","src":"5655:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5628:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"5637:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5624:3:21"},"nodeType":"YulFunctionCall","src":"5624:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"5649:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5620:3:21"},"nodeType":"YulFunctionCall","src":"5620:32:21"},"nodeType":"YulIf","src":"5617:52:21"},{"nodeType":"YulVariableDeclaration","src":"5678:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5697:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5691:5:21"},"nodeType":"YulFunctionCall","src":"5691:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"5682:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5738:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"5716:21:21"},"nodeType":"YulFunctionCall","src":"5716:28:21"},"nodeType":"YulExpressionStatement","src":"5716:28:21"},{"nodeType":"YulAssignment","src":"5753:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"5763:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5753:6:21"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5573:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5584:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5596:6:21","type":""}],"src":"5529:245:21"},{"body":{"nodeType":"YulBlock","src":"5909:201:21","statements":[{"body":{"nodeType":"YulBlock","src":"5947:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5956:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5959:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5949:6:21"},"nodeType":"YulFunctionCall","src":"5949:12:21"},"nodeType":"YulExpressionStatement","src":"5949:12:21"}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"5925:10:21"},{"name":"endIndex","nodeType":"YulIdentifier","src":"5937:8:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5922:2:21"},"nodeType":"YulFunctionCall","src":"5922:24:21"},"nodeType":"YulIf","src":"5919:44:21"},{"body":{"nodeType":"YulBlock","src":"5996:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6005:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6008:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5998:6:21"},"nodeType":"YulFunctionCall","src":"5998:12:21"},"nodeType":"YulExpressionStatement","src":"5998:12:21"}]},"condition":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"5978:8:21"},{"name":"length","nodeType":"YulIdentifier","src":"5988:6:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5975:2:21"},"nodeType":"YulFunctionCall","src":"5975:20:21"},"nodeType":"YulIf","src":"5972:40:21"},{"nodeType":"YulAssignment","src":"6021:36:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6038:6:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"6046:10:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6034:3:21"},"nodeType":"YulFunctionCall","src":"6034:23:21"},"variableNames":[{"name":"offsetOut","nodeType":"YulIdentifier","src":"6021:9:21"}]},{"nodeType":"YulAssignment","src":"6066:38:21","value":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"6083:8:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"6093:10:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6079:3:21"},"nodeType":"YulFunctionCall","src":"6079:25:21"},"variableNames":[{"name":"lengthOut","nodeType":"YulIdentifier","src":"6066:9:21"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5843:6:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"5851:6:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"5859:10:21","type":""},{"name":"endIndex","nodeType":"YulTypedName","src":"5871:8:21","type":""}],"returnVariables":[{"name":"offsetOut","nodeType":"YulTypedName","src":"5884:9:21","type":""},{"name":"lengthOut","nodeType":"YulTypedName","src":"5895:9:21","type":""}],"src":"5779:331:21"},{"body":{"nodeType":"YulBlock","src":"6215:223:21","statements":[{"nodeType":"YulVariableDeclaration","src":"6225:29:21","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6248:5:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6235:12:21"},"nodeType":"YulFunctionCall","src":"6235:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6229:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6263:30:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6277:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"6282:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6273:3:21"},"nodeType":"YulFunctionCall","src":"6273:20:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6267:2:21","type":""}]},{"nodeType":"YulAssignment","src":"6302:20:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6315:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6319:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6311:3:21"},"nodeType":"YulFunctionCall","src":"6311:11:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6302:5:21"}]},{"body":{"nodeType":"YulBlock","src":"6353:79:21","statements":[{"nodeType":"YulAssignment","src":"6367:55:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6384:2:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6396:1:21","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6403:1:21","type":"","value":"4"},{"name":"len","nodeType":"YulIdentifier","src":"6406:3:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6399:3:21"},"nodeType":"YulFunctionCall","src":"6399:11:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6392:3:21"},"nodeType":"YulFunctionCall","src":"6392:19:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6413:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"6388:3:21"},"nodeType":"YulFunctionCall","src":"6388:28:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6380:3:21"},"nodeType":"YulFunctionCall","src":"6380:37:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6419:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6376:3:21"},"nodeType":"YulFunctionCall","src":"6376:46:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"6367:5:21"}]}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"6337:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"6342:1:21","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"6334:2:21"},"nodeType":"YulFunctionCall","src":"6334:10:21"},"nodeType":"YulIf","src":"6331:101:21"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"6190:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"6197:3:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"6205:5:21","type":""}],"src":"6115:323:21"},{"body":{"nodeType":"YulBlock","src":"6534:557:21","statements":[{"body":{"nodeType":"YulBlock","src":"6580:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6589:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6592:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6582:6:21"},"nodeType":"YulFunctionCall","src":"6582:12:21"},"nodeType":"YulExpressionStatement","src":"6582:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6555:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"6564:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6551:3:21"},"nodeType":"YulFunctionCall","src":"6551:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"6576:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6547:3:21"},"nodeType":"YulFunctionCall","src":"6547:32:21"},"nodeType":"YulIf","src":"6544:52:21"},{"nodeType":"YulVariableDeclaration","src":"6605:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6625:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6619:5:21"},"nodeType":"YulFunctionCall","src":"6619:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6609:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"6678:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6687:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6690:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6680:6:21"},"nodeType":"YulFunctionCall","src":"6680:12:21"},"nodeType":"YulExpressionStatement","src":"6680:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6650:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"6658:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6647:2:21"},"nodeType":"YulFunctionCall","src":"6647:30:21"},"nodeType":"YulIf","src":"6644:50:21"},{"nodeType":"YulVariableDeclaration","src":"6703:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6717:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"6728:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6713:3:21"},"nodeType":"YulFunctionCall","src":"6713:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6707:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"6783:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6792:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6795:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6785:6:21"},"nodeType":"YulFunctionCall","src":"6785:12:21"},"nodeType":"YulExpressionStatement","src":"6785:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6762:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"6766:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6758:3:21"},"nodeType":"YulFunctionCall","src":"6758:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6773:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6754:3:21"},"nodeType":"YulFunctionCall","src":"6754:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6747:6:21"},"nodeType":"YulFunctionCall","src":"6747:35:21"},"nodeType":"YulIf","src":"6744:55:21"},{"nodeType":"YulVariableDeclaration","src":"6808:19:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6824:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6818:5:21"},"nodeType":"YulFunctionCall","src":"6818:9:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"6812:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6836:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6893:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"6865:27:21"},"nodeType":"YulFunctionCall","src":"6865:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6849:15:21"},"nodeType":"YulFunctionCall","src":"6849:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"6840:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6913:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6920:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6906:6:21"},"nodeType":"YulFunctionCall","src":"6906:17:21"},"nodeType":"YulExpressionStatement","src":"6906:17:21"},{"body":{"nodeType":"YulBlock","src":"6969:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6978:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6981:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6971:6:21"},"nodeType":"YulFunctionCall","src":"6971:12:21"},"nodeType":"YulExpressionStatement","src":"6971:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6946:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6950:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6942:3:21"},"nodeType":"YulFunctionCall","src":"6942:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"6955:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6938:3:21"},"nodeType":"YulFunctionCall","src":"6938:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6960:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6935:2:21"},"nodeType":"YulFunctionCall","src":"6935:33:21"},"nodeType":"YulIf","src":"6932:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"7033:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"7037:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7029:3:21"},"nodeType":"YulFunctionCall","src":"7029:11:21"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"7046:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"7053:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7042:3:21"},"nodeType":"YulFunctionCall","src":"7042:14:21"},{"name":"_2","nodeType":"YulIdentifier","src":"7058:2:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6994:34:21"},"nodeType":"YulFunctionCall","src":"6994:67:21"},"nodeType":"YulExpressionStatement","src":"6994:67:21"},{"nodeType":"YulAssignment","src":"7070:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"7080:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7070:6:21"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6500:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6511:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6523:6:21","type":""}],"src":"6443:648:21"},{"body":{"nodeType":"YulBlock","src":"7217:98:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7234:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7245:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7227:6:21"},"nodeType":"YulFunctionCall","src":"7227:21:21"},"nodeType":"YulExpressionStatement","src":"7227:21:21"},{"nodeType":"YulAssignment","src":"7257:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7282:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7294:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7305:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7290:3:21"},"nodeType":"YulFunctionCall","src":"7290:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7265:16:21"},"nodeType":"YulFunctionCall","src":"7265:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7257:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7186:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7197:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7208:4:21","type":""}],"src":"7096:219:21"},{"body":{"nodeType":"YulBlock","src":"7428:101:21","statements":[{"nodeType":"YulAssignment","src":"7438:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7450:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7461:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7446:3:21"},"nodeType":"YulFunctionCall","src":"7446:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7438:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7480:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7495:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"7503:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7491:3:21"},"nodeType":"YulFunctionCall","src":"7491:31:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7473:6:21"},"nodeType":"YulFunctionCall","src":"7473:50:21"},"nodeType":"YulExpressionStatement","src":"7473:50:21"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7397:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7408:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7419:4:21","type":""}],"src":"7320:209:21"},{"body":{"nodeType":"YulBlock","src":"7729:298:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7746:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7761:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7777:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7782:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7773:3:21"},"nodeType":"YulFunctionCall","src":"7773:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"7786:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7769:3:21"},"nodeType":"YulFunctionCall","src":"7769:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7757:3:21"},"nodeType":"YulFunctionCall","src":"7757:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7739:6:21"},"nodeType":"YulFunctionCall","src":"7739:51:21"},"nodeType":"YulExpressionStatement","src":"7739:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7810:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7821:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7806:3:21"},"nodeType":"YulFunctionCall","src":"7806:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"7826:3:21","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7799:6:21"},"nodeType":"YulFunctionCall","src":"7799:31:21"},"nodeType":"YulExpressionStatement","src":"7799:31:21"},{"nodeType":"YulAssignment","src":"7839:53:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7864:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7876:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7887:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7872:3:21"},"nodeType":"YulFunctionCall","src":"7872:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7847:16:21"},"nodeType":"YulFunctionCall","src":"7847:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7839:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7912:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7923:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7908:3:21"},"nodeType":"YulFunctionCall","src":"7908:18:21"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7942:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7935:6:21"},"nodeType":"YulFunctionCall","src":"7935:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7928:6:21"},"nodeType":"YulFunctionCall","src":"7928:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7901:6:21"},"nodeType":"YulFunctionCall","src":"7901:50:21"},"nodeType":"YulExpressionStatement","src":"7901:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7971:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7982:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7967:3:21"},"nodeType":"YulFunctionCall","src":"7967:18:21"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7991:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8003:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8008:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7999:3:21"},"nodeType":"YulFunctionCall","src":"7999:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7987:3:21"},"nodeType":"YulFunctionCall","src":"7987:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7960:6:21"},"nodeType":"YulFunctionCall","src":"7960:61:21"},"nodeType":"YulExpressionStatement","src":"7960:61:21"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7674:9:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7685:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7693:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7701:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7709:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7720:4:21","type":""}],"src":"7534:493:21"},{"body":{"nodeType":"YulBlock","src":"8113:103:21","statements":[{"body":{"nodeType":"YulBlock","src":"8159:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8168:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8171:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8161:6:21"},"nodeType":"YulFunctionCall","src":"8161:12:21"},"nodeType":"YulExpressionStatement","src":"8161:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"8134:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"8143:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"8130:3:21"},"nodeType":"YulFunctionCall","src":"8130:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"8155:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"8126:3:21"},"nodeType":"YulFunctionCall","src":"8126:32:21"},"nodeType":"YulIf","src":"8123:52:21"},{"nodeType":"YulAssignment","src":"8184:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8200:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8194:5:21"},"nodeType":"YulFunctionCall","src":"8194:16:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"8184:6:21"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8079:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"8090:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"8102:6:21","type":""}],"src":"8032:184:21"},{"body":{"nodeType":"YulBlock","src":"8253:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8270:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8277:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"8282:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"8273:3:21"},"nodeType":"YulFunctionCall","src":"8273:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8263:6:21"},"nodeType":"YulFunctionCall","src":"8263:31:21"},"nodeType":"YulExpressionStatement","src":"8263:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8310:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"8313:4:21","type":"","value":"0x51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8303:6:21"},"nodeType":"YulFunctionCall","src":"8303:15:21"},"nodeType":"YulExpressionStatement","src":"8303:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"8334:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"8337:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"8327:6:21"},"nodeType":"YulFunctionCall","src":"8327:15:21"},"nodeType":"YulExpressionStatement","src":"8327:15:21"}]},"name":"panic_error_0x51","nodeType":"YulFunctionDefinition","src":"8221:127:21"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\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 mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_bool(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value1 := add(_2, 32)\n value2 := length\n value3 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_contract$_Relayer_$4434(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Must be called by relayer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256__to_t_address_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4(array, len) -> value\n {\n let _1 := calldataload(array)\n let _2 := shl(224, 0xffffffff)\n value := and(_1, _2)\n if lt(len, 4)\n {\n value := and(and(_1, shl(shl(3, sub(4, len)), _2)), _2)\n }\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), and(value3, shl(224, 0xffffffff)))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function panic_error_0x51()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x55 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x5A JUMPI DUP1 PUSH4 0x71006C09 EQ PUSH2 0x84 JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0xB2 JUMPI DUP1 PUSH4 0x87121759 EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0x114 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6D PUSH2 0x68 CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x134 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x7B SWAP3 SWAP2 SWAP1 PUSH2 0x92A JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x90 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0x9F CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x205 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x7B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xBE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x6D PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x847 JUMP JUMPDEST PUSH2 0x31B JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA4 PUSH2 0xED CALLDATASIZE PUSH1 0x4 PUSH2 0x94D JUMP JUMPDEST PUSH2 0x3CB JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xFE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x10D CALLDATASIZE PUSH1 0x4 PUSH2 0x99C JUMP JUMPDEST PUSH2 0x4A4 JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x120 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x112 PUSH2 0x12F CALLDATASIZE PUSH1 0x4 PUSH2 0xA27 JUMP JUMPDEST PUSH2 0x5B7 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x16B JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x198 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x1B6 SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x2770A7EB PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE PUSH1 0x24 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x9DC29FAC SWAP1 PUSH1 0x44 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x253 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x267 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP6 SWAP1 MSTORE PUSH2 0x2C6 SWAP3 POP DUP7 SWAP2 POP PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0xA9059CBB PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP9 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE SWAP1 DUP2 ADD DUP5 SWAP1 MSTORE SWAP1 SWAP2 POP PUSH32 0xF9FC8619F47185576C57BCB55A726E87AEDD0C97599424AF8325993DA5408320 SWAP1 PUSH1 0x60 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x349 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST PUSH2 0x373 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x6D5 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x38F SWAP2 SWAP1 PUSH2 0xA82 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1F4 JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1F9 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x23B872DD PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x4 DUP4 ADD MSTORE ADDRESS PUSH1 0x24 DUP4 ADD MSTORE PUSH1 0x44 DUP3 ADD DUP4 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP6 AND SWAP1 PUSH4 0x23B872DD SWAP1 PUSH1 0x64 ADD PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x424 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x448 SWAP2 SWAP1 PUSH2 0xA9E JUMP JUMPDEST POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x24 DUP3 ADD MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH2 0x2C6 SWAP1 DUP6 SWAP1 PUSH1 0x64 ADD PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x40C10F19 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH1 0x0 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x71B JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x4CE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x162 SWAP1 PUSH2 0xA4B JUMP JUMPDEST DUP4 ISZERO PUSH2 0x502 JUMPI PUSH1 0x40 MLOAD PUSH32 0x318BA0C588A4BDE325B55EBF926BFA606B77D9971AC5FC7250A615885DAF9D5C SWAP1 PUSH1 0x0 SWAP1 LOG1 PUSH2 0x5B1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x511 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0xABB JUMP JUMPDEST PUSH2 0x51A SWAP2 PUSH2 0xAE5 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x52B DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0xABB JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x599 SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0xB15 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x5A6 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x5FD JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x61A JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x628 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x646 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x670 JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x6CD JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x5A6 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x6E9 SWAP2 SWAP1 PUSH2 0xB83 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x79E JUMP JUMPDEST POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x752 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xB96 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x771 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x795 SWAP2 SWAP1 PUSH2 0xBDC JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x718 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x817 JUMPI PUSH2 0x817 PUSH2 0x7D8 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x839 JUMPI PUSH2 0x839 PUSH2 0x7D8 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x85A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x865 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x881 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x892 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x8A5 PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST PUSH2 0x7EE JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x8F5 JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x8DD JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x916 DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x945 PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x962 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x96D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x97D DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x718 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x9B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 CALLDATALOAD PUSH2 0x9BD DUP2 PUSH2 0x98E JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x9DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x9EE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x9FD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xA0F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA39 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xA44 DUP2 PUSH2 0x7C3 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xA94 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x8DA JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAB0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0xA44 DUP2 PUSH2 0x98E JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0xAD8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0xB0D JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xB27 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xB3E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xB4F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xB5D PUSH2 0x8A0 DUP3 PUSH2 0x81F JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xB72 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x795 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x8DA JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA44 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8FE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xBBA SWAP1 DUP4 ADD DUP7 PUSH2 0x8FE JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xBEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xF7 0xD9 DUP12 PUSH28 0xB6DC5C7058D0FCEFE332656B18C25F186A937B55E96204ABF67FC85D PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"917:1290:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:274:14;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;1418:392:16;;;;;;;;;;-1:-1:-1;1418:392:16;;;;;:::i;:::-;;:::i;:::-;;;3004:25:21;;;2992:2;2977:18;1418:392:16;2858:177:21;775:253:14;;;;;;;;;;-1:-1:-1;775:253:14;;;;;:::i;:::-;;:::i;999:413:16:-;;;;;;;;;;-1:-1:-1;999:413:16;;;;;:::i;:::-;;:::i;1866:339::-;;;;;;;;;;-1:-1:-1;1866:339:16;;;;;:::i;:::-;;:::i;:::-;;272:91:14;;;;;;;;;;-1:-1:-1;272:91:14;;;;;:::i;:::-;;:::i;495:274::-;608:12;432:8;;622:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;;;;;;;;;655:27:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;655:27:14::1;;::::0;:11:::1;:27::i;:::-;714:6;-1:-1:-1::0;;;;;714:11:14::1;733:9;749:6;714:48;757:4;714:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;692:70:14;;;;-1:-1:-1;495:274:14;-1:-1:-1;;;495:274:14:o;1418:392:16:-;1542:33;;-1:-1:-1;;;1542:33:16;;-1:-1:-1;;;;;5062:32:21;;;1542:33:16;;;5044:51:21;5111:18;;;5104:34;;;1520:10:16;;1542:19;;;;;;5017:18:21;;1542:33:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1631:66:16;;-1:-1:-1;;;;;5062:32:21;;1631:66:16;;;5044:51:21;5111:18;;;5104:34;;;1593:167:16;;-1:-1:-1;1612:5:16;;-1:-1:-1;5017:18:21;;1631:66:16;;;-1:-1:-1;;1631:66:16;;;;;;;;;;;;;;-1:-1:-1;;;;;1631:66:16;-1:-1:-1;;;1631:66:16;;;-1:-1:-1;;;;1593:5:16;:167::i;:::-;1775:28;;;-1:-1:-1;;;;;5407:15:21;;;5389:34;;5459:15;;5454:2;5439:18;;5432:43;5491:18;;;5484:34;;;1585:175:16;;-1:-1:-1;1775:28:16;;5339:2:21;5324:18;1775:28:16;;;;;;;1418:392;;;;;:::o;775:253:14:-;882:12;432:8;;896:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;929:24:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;929:24:14::1;;::::0;:11:::1;:24::i;:::-;985:6;-1:-1:-1::0;;;;;985:17:14::1;1008:6;1016:4;985:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;999:413:16::0;1125:56;;-1:-1:-1;;;1125:56:16;;-1:-1:-1;;;;;5407:15:21;;;1125:56:16;;;5389:34:21;1168:4:16;5439:18:21;;;5432:43;5491:18;;;5484:34;;;1103:10:16;;1125:27;;;;;;5324:18:21;;1125:56:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1237:62:16;;-1:-1:-1;;;;;5062:32:21;;1237:62:16;;;5044:51:21;5111:18;;;5104:34;;;1199:163:16;;1218:5;;5017:18:21;;1237:62:16;;;-1:-1:-1;;1237:62:16;;;;;;;;;;;;;;-1:-1:-1;;;;;1237:62:16;-1:-1:-1;;;1237:62:16;;;-1:-1:-1;;;;1199:5:16;:163::i;1866:339::-;432:8:14;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;1991:7:16::1;1987:212;;;2019:11;::::0;::::1;::::0;;;::::1;1987:212;;;2061:10;2081:7;2086:1;2061:10:::0;2081:3;;:7:::1;:::i;:::-;2074:15;::::0;::::1;:::i;:::-;2061:28:::0;-1:-1:-1;2103:16:16::1;2128:7;:3:::0;2132:1:::1;2128:3:::0;;:7:::1;:::i;:::-;2103:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;2162:25:16;;2103:33;;-1:-1:-1;2155:33:16::1;::::0;2162:25:::1;::::0;-1:-1:-1;2162:25:16;;::::1;::::0;;;;-1:-1:-1;2162:25:16;::::1;;:::i;:::-;2155:33;;;;;;:::i;:::-;;;;;;;;2047:152;;1987:212;1866:339:::0;;;;:::o;272:91:14:-;8870:21:1;4302:15;;-1:-1:-1;;;4302:15:1;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:1;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:1;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:1;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:1;-1:-1:-1;;;5013:22:1;;;4979:67;338:8:14::1;:18:::0;;-1:-1:-1;;;;;;338:18:14::1;-1:-1:-1::0;;;;;338:18:14;::::1;;::::0;;5066:101:1;;;;5100:23;;-1:-1:-1;;;;5100:23:1;;;5142:14;;-1:-1:-1;7473:50:21;;5142:14:1;;7461:2:21;7446:18;5142:14:1;7320:209:21;5066:101:1;4092:1081;;;;;272:91:14;:::o;6070:121:20:-;6125:59;6180:2;6141:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6141:42:20;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:42:20;-1:-1:-1;;;6141:42:20;;;6125:15;:59::i;:::-;6070:121;:::o;1034:223:14:-;1172:10;1202:8;;:48;;-1:-1:-1;;;1202:48:14;;-1:-1:-1;;;;;1202:8:14;;;;:14;;:48;;1217:6;;1225:4;;1231:8;;1241;;1202:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1194:56;1034:223;-1:-1:-1;;;;;1034:223:14:o;851:129:20:-;922:51;965:7;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;14:131:21:-;-1:-1:-1;;;;;89:31:21;;79:42;;69:70;;135:1;132;125:12;150:127;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:275;353:2;347:9;418:2;399:13;;-1:-1:-1;;395:27:21;383:40;;453:18;438:34;;474:22;;;435:62;432:88;;;500:18;;:::i;:::-;536:2;529:22;282:275;;-1:-1:-1;282:275:21:o;562:186::-;610:4;643:18;635:6;632:30;629:56;;;665:18;;:::i;:::-;-1:-1:-1;731:2:21;710:15;-1:-1:-1;;706:29:21;737:4;702:40;;562:186::o;753:806::-;830:6;838;891:2;879:9;870:7;866:23;862:32;859:52;;;907:1;904;897:12;859:52;946:9;933:23;965:31;990:5;965:31;:::i;:::-;1015:5;-1:-1:-1;1071:2:21;1056:18;;1043:32;1098:18;1087:30;;1084:50;;;1130:1;1127;1120:12;1084:50;1153:22;;1206:4;1198:13;;1194:27;-1:-1:-1;1184:55:21;;1235:1;1232;1225:12;1184:55;1271:2;1258:16;1296:48;1312:31;1340:2;1312:31;:::i;:::-;1296:48;:::i;:::-;1367:2;1360:5;1353:17;1407:7;1402:2;1397;1393;1389:11;1385:20;1382:33;1379:53;;;1428:1;1425;1418:12;1379:53;1483:2;1478;1474;1470:11;1465:2;1458:5;1454:14;1441:45;1527:1;1522:2;1517;1510:5;1506:14;1502:23;1495:34;1548:5;1538:15;;;;;753:806;;;;;:::o;1564:250::-;1649:1;1659:113;1673:6;1670:1;1667:13;1659:113;;;1749:11;;;1743:18;1730:11;;;1723:39;1695:2;1688:10;1659:113;;;-1:-1:-1;;1806:1:21;1788:16;;1781:27;1564:250::o;1819:270::-;1860:3;1898:5;1892:12;1925:6;1920:3;1913:19;1941:76;2010:6;2003:4;1998:3;1994:14;1987:4;1980:5;1976:16;1941:76;:::i;:::-;2071:2;2050:15;-1:-1:-1;;2046:29:21;2037:39;;;;2078:4;2033:50;;1819:270;-1:-1:-1;;1819:270:21:o;2094:298::-;2277:6;2270:14;2263:22;2252:9;2245:41;2322:2;2317;2306:9;2302:18;2295:30;2226:4;2342:44;2382:2;2371:9;2367:18;2359:6;2342:44;:::i;:::-;2334:52;2094:298;-1:-1:-1;;;;2094:298:21:o;2397:456::-;2474:6;2482;2490;2543:2;2531:9;2522:7;2518:23;2514:32;2511:52;;;2559:1;2556;2549:12;2511:52;2598:9;2585:23;2617:31;2642:5;2617:31;:::i;:::-;2667:5;-1:-1:-1;2724:2:21;2709:18;;2696:32;2737:33;2696:32;2737:33;:::i;:::-;2397:456;;2789:7;;-1:-1:-1;;;2843:2:21;2828:18;;;;2815:32;;2397:456::o;3040:118::-;3126:5;3119:13;3112:21;3105:5;3102:32;3092:60;;3148:1;3145;3138:12;3163:788;3248:6;3256;3264;3272;3325:2;3313:9;3304:7;3300:23;3296:32;3293:52;;;3341:1;3338;3331:12;3293:52;3380:9;3367:23;3399:28;3421:5;3399:28;:::i;:::-;3446:5;-1:-1:-1;3502:2:21;3487:18;;3474:32;3525:18;3555:14;;;3552:34;;;3582:1;3579;3572:12;3552:34;3620:6;3609:9;3605:22;3595:32;;3665:7;3658:4;3654:2;3650:13;3646:27;3636:55;;3687:1;3684;3677:12;3636:55;3727:2;3714:16;3753:2;3745:6;3742:14;3739:34;;;3769:1;3766;3759:12;3739:34;3814:7;3809:2;3800:6;3796:2;3792:15;3788:24;3785:37;3782:57;;;3835:1;3832;3825:12;3782:57;3163:788;;3866:2;3858:11;;;;;-1:-1:-1;3888:6:21;;3941:2;3926:18;3913:32;;-1:-1:-1;3163:788:21;-1:-1:-1;;;3163:788:21:o;3956:263::-;4031:6;4084:2;4072:9;4063:7;4059:23;4055:32;4052:52;;;4100:1;4097;4090:12;4052:52;4139:9;4126:23;4158:31;4183:5;4158:31;:::i;:::-;4208:5;3956:263;-1:-1:-1;;;3956:263:21:o;4224:349::-;4426:2;4408:21;;;4465:2;4445:18;;;4438:30;4504:27;4499:2;4484:18;;4477:55;4564:2;4549:18;;4224:349::o;4578:287::-;4707:3;4745:6;4739:13;4761:66;4820:6;4815:3;4808:4;4800:6;4796:17;4761:66;:::i;:::-;4843:16;;;;;4578:287;-1:-1:-1;;4578:287:21:o;5529:245::-;5596:6;5649:2;5637:9;5628:7;5624:23;5620:32;5617:52;;;5665:1;5662;5655:12;5617:52;5697:9;5691:16;5716:28;5738:5;5716:28;:::i;5779:331::-;5884:9;5895;5937:8;5925:10;5922:24;5919:44;;;5959:1;5956;5949:12;5919:44;5988:6;5978:8;5975:20;5972:40;;;6008:1;6005;5998:12;5972:40;-1:-1:-1;;6034:23:21;;;6079:25;;;;;-1:-1:-1;5779:331:21:o;6115:323::-;-1:-1:-1;;;;;;6235:19:21;;6311:11;;;;6342:1;6334:10;;6331:101;;;6419:2;6413;6406:3;6403:1;6399:11;6396:1;6392:19;6388:28;6384:2;6380:37;6376:46;6367:55;;6331:101;;;6115:323;;;;:::o;6443:648::-;6523:6;6576:2;6564:9;6555:7;6551:23;6547:32;6544:52;;;6592:1;6589;6582:12;6544:52;6625:9;6619:16;6658:18;6650:6;6647:30;6644:50;;;6690:1;6687;6680:12;6644:50;6713:22;;6766:4;6758:13;;6754:27;-1:-1:-1;6744:55:21;;6795:1;6792;6785:12;6744:55;6824:2;6818:9;6849:48;6865:31;6893:2;6865:31;:::i;6849:48::-;6920:2;6913:5;6906:17;6960:7;6955:2;6950;6946;6942:11;6938:20;6935:33;6932:53;;;6981:1;6978;6971:12;6932:53;6994:67;7058:2;7053;7046:5;7042:14;7037:2;7033;7029:11;6994:67;:::i;7096:219::-;7245:2;7234:9;7227:21;7208:4;7265:44;7305:2;7294:9;7290:18;7282:6;7265:44;:::i;7534:493::-;-1:-1:-1;;;;;7757:32:21;;7739:51;;7826:3;7821:2;7806:18;;7799:31;;;-1:-1:-1;;7847:45:21;;7872:19;;7864:6;7847:45;:::i;:::-;7935:14;;7928:22;7923:2;7908:18;;7901:50;-1:-1:-1;;;;;;;7987:33:21;;;;7982:2;7967:18;;;7960:61;7839:53;7534:493;-1:-1:-1;;7534:493:21:o;8032:184::-;8102:6;8155:2;8143:9;8134:7;8130:23;8126:32;8123:52;;;8171:1;8168;8161:12;8123:52;-1:-1:-1;8194:16:21;;8032:184;-1:-1:-1;8032:184:21:o"},"methodIdentifiers":{"bridge(address,address,uint256)":"87121759","dispatched(address,bytes)":"5d903f03","exit(address,address,uint256)":"71006c09","finish(bool,bytes,uint256)":"b2c642d1","initialize(address)":"c4d66de8","queried(address,bytes)":"82dcc731"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Started\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Succeeded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"dispatched\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"exit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"res\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"finish\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Relayer\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"queried\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Bridge.sol\":\"ERC20Bridge\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/ERC20Bridge.sol\":{\"keccak256\":\"0xba3f8b86233053bf90a6df93e573b7c887839a7983f03a50fc3ac083b712c97a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8927b354595525561dca5682973c44a98a43b0e51eb12a8db265f5b7e848b392\",\"dweb:/ipfs/QmYU24nSAXbnxn4Tj98dxyg9BnfQUv3n1Dh24gf7P4aaQ6\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"MyToken":{"abi":[{"inputs":[{"internalType":"address","name":"bridge_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_3837":{"entryPoint":null,"id":3837,"parameterSlots":3,"returnSlots":0},"@_3893":{"entryPoint":null,"id":3893,"parameterSlots":1,"returnSlots":0},"@_442":{"entryPoint":null,"id":442,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":201,"id":745,"parameterSlots":2,"returnSlots":0},"@_update_712":{"entryPoint":267,"id":712,"parameterSlots":3,"returnSlots":0},"abi_decode_tuple_t_address_fromMemory":{"entryPoint":574,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"array_dataslot_string_storage":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":993,"id":null,"parameterSlots":2,"returnSlots":1},"clean_up_bytearray_end_slots_string_storage":{"entryPoint":706,"id":null,"parameterSlots":3,"returnSlots":0},"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage":{"entryPoint":789,"id":null,"parameterSlots":2,"returnSlots":0},"extract_byte_array_length":{"entryPoint":646,"id":null,"parameterSlots":1,"returnSlots":1},"extract_used_part_and_set_length_of_short_byte_array":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x41":{"entryPoint":624,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:3994:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"95:209:21","statements":[{"body":{"nodeType":"YulBlock","src":"141:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"153:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"143:6:21"},"nodeType":"YulFunctionCall","src":"143:12:21"},"nodeType":"YulExpressionStatement","src":"143:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"116:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"125:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"112:3:21"},"nodeType":"YulFunctionCall","src":"112:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"137:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"108:3:21"},"nodeType":"YulFunctionCall","src":"108:32:21"},"nodeType":"YulIf","src":"105:52:21"},{"nodeType":"YulVariableDeclaration","src":"166:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"185:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"179:5:21"},"nodeType":"YulFunctionCall","src":"179:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"170:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"258:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"267:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"270:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"260:6:21"},"nodeType":"YulFunctionCall","src":"260:12:21"},"nodeType":"YulExpressionStatement","src":"260:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"217:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"228:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"243:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"248:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"239:3:21"},"nodeType":"YulFunctionCall","src":"239:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"252:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"235:3:21"},"nodeType":"YulFunctionCall","src":"235:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"224:3:21"},"nodeType":"YulFunctionCall","src":"224:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"214:2:21"},"nodeType":"YulFunctionCall","src":"214:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"207:6:21"},"nodeType":"YulFunctionCall","src":"207:50:21"},"nodeType":"YulIf","src":"204:70:21"},{"nodeType":"YulAssignment","src":"283:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"293:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"283:6:21"}]}]},"name":"abi_decode_tuple_t_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"61:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"72:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"84:6:21","type":""}],"src":"14:290:21"},{"body":{"nodeType":"YulBlock","src":"341:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"358:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"365:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"370:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"361:3:21"},"nodeType":"YulFunctionCall","src":"361:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"351:6:21"},"nodeType":"YulFunctionCall","src":"351:31:21"},"nodeType":"YulExpressionStatement","src":"351:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"398:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"401:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"391:6:21"},"nodeType":"YulFunctionCall","src":"391:15:21"},"nodeType":"YulExpressionStatement","src":"391:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"422:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"425:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"415:6:21"},"nodeType":"YulFunctionCall","src":"415:15:21"},"nodeType":"YulExpressionStatement","src":"415:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"309:127:21"},{"body":{"nodeType":"YulBlock","src":"496:325:21","statements":[{"nodeType":"YulAssignment","src":"506:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"520:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"523:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"516:3:21"},"nodeType":"YulFunctionCall","src":"516:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"506:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"537:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"567:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"573:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"563:3:21"},"nodeType":"YulFunctionCall","src":"563:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"541:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"614:31:21","statements":[{"nodeType":"YulAssignment","src":"616:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"630:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"638:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"626:3:21"},"nodeType":"YulFunctionCall","src":"626:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"616:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"594:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"587:6:21"},"nodeType":"YulFunctionCall","src":"587:26:21"},"nodeType":"YulIf","src":"584:61:21"},{"body":{"nodeType":"YulBlock","src":"704:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"725:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"732:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"737:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"728:3:21"},"nodeType":"YulFunctionCall","src":"728:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"718:6:21"},"nodeType":"YulFunctionCall","src":"718:31:21"},"nodeType":"YulExpressionStatement","src":"718:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"769:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"772:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"762:6:21"},"nodeType":"YulFunctionCall","src":"762:15:21"},"nodeType":"YulExpressionStatement","src":"762:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"797:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"800:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"790:6:21"},"nodeType":"YulFunctionCall","src":"790:15:21"},"nodeType":"YulExpressionStatement","src":"790:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"660:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"683:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"691:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"680:2:21"},"nodeType":"YulFunctionCall","src":"680:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"657:2:21"},"nodeType":"YulFunctionCall","src":"657:38:21"},"nodeType":"YulIf","src":"654:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"476:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"485:6:21","type":""}],"src":"441:380:21"},{"body":{"nodeType":"YulBlock","src":"882:65:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"899:1:21","type":"","value":"0"},{"name":"ptr","nodeType":"YulIdentifier","src":"902:3:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"892:6:21"},"nodeType":"YulFunctionCall","src":"892:14:21"},"nodeType":"YulExpressionStatement","src":"892:14:21"},{"nodeType":"YulAssignment","src":"915:26:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"933:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"936:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"923:9:21"},"nodeType":"YulFunctionCall","src":"923:18:21"},"variableNames":[{"name":"data","nodeType":"YulIdentifier","src":"915:4:21"}]}]},"name":"array_dataslot_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"ptr","nodeType":"YulTypedName","src":"865:3:21","type":""}],"returnVariables":[{"name":"data","nodeType":"YulTypedName","src":"873:4:21","type":""}],"src":"826:121:21"},{"body":{"nodeType":"YulBlock","src":"1033:464:21","statements":[{"body":{"nodeType":"YulBlock","src":"1066:425:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1080:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1090:1:21","type":"","value":"0"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1084:2:21","type":""}]},{"expression":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1111:2:21"},{"name":"array","nodeType":"YulIdentifier","src":"1115:5:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1104:6:21"},"nodeType":"YulFunctionCall","src":"1104:17:21"},"nodeType":"YulExpressionStatement","src":"1104:17:21"},{"nodeType":"YulVariableDeclaration","src":"1134:31:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1156:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1160:4:21","type":"","value":"0x20"}],"functionName":{"name":"keccak256","nodeType":"YulIdentifier","src":"1146:9:21"},"nodeType":"YulFunctionCall","src":"1146:19:21"},"variables":[{"name":"data","nodeType":"YulTypedName","src":"1138:4:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1178:57:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1201:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1211:1:21","type":"","value":"5"},{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1218:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1230:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1214:3:21"},"nodeType":"YulFunctionCall","src":"1214:19:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1207:3:21"},"nodeType":"YulFunctionCall","src":"1207:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1197:3:21"},"nodeType":"YulFunctionCall","src":"1197:38:21"},"variables":[{"name":"deleteStart","nodeType":"YulTypedName","src":"1182:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1272:23:21","statements":[{"nodeType":"YulAssignment","src":"1274:19:21","value":{"name":"data","nodeType":"YulIdentifier","src":"1289:4:21"},"variableNames":[{"name":"deleteStart","nodeType":"YulIdentifier","src":"1274:11:21"}]}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"1254:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1266:4:21","type":"","value":"0x20"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1251:2:21"},"nodeType":"YulFunctionCall","src":"1251:20:21"},"nodeType":"YulIf","src":"1248:47:21"},{"nodeType":"YulVariableDeclaration","src":"1308:41:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1322:4:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1332:1:21","type":"","value":"5"},{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1339:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"1344:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1335:3:21"},"nodeType":"YulFunctionCall","src":"1335:12:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1328:3:21"},"nodeType":"YulFunctionCall","src":"1328:20:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1318:3:21"},"nodeType":"YulFunctionCall","src":"1318:31:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1312:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1362:24:21","value":{"name":"deleteStart","nodeType":"YulIdentifier","src":"1375:11:21"},"variables":[{"name":"start","nodeType":"YulTypedName","src":"1366:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1460:21:21","statements":[{"expression":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1469:5:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1476:2:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"1462:6:21"},"nodeType":"YulFunctionCall","src":"1462:17:21"},"nodeType":"YulExpressionStatement","src":"1462:17:21"}]},"condition":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1410:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1417:2:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1407:2:21"},"nodeType":"YulFunctionCall","src":"1407:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1421:26:21","statements":[{"nodeType":"YulAssignment","src":"1423:22:21","value":{"arguments":[{"name":"start","nodeType":"YulIdentifier","src":"1436:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1443:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1432:3:21"},"nodeType":"YulFunctionCall","src":"1432:13:21"},"variableNames":[{"name":"start","nodeType":"YulIdentifier","src":"1423:5:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1403:3:21","statements":[]},"src":"1399:82:21"}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"1049:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"1054:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1046:2:21"},"nodeType":"YulFunctionCall","src":"1046:11:21"},"nodeType":"YulIf","src":"1043:448:21"}]},"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"1005:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"1012:3:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"1017:10:21","type":""}],"src":"952:545:21"},{"body":{"nodeType":"YulBlock","src":"1587:81:21","statements":[{"nodeType":"YulAssignment","src":"1597:65:21","value":{"arguments":[{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"1612:4:21"},{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1630:1:21","type":"","value":"3"},{"name":"len","nodeType":"YulIdentifier","src":"1633:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1626:3:21"},"nodeType":"YulFunctionCall","src":"1626:11:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1643:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1639:3:21"},"nodeType":"YulFunctionCall","src":"1639:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"1622:3:21"},"nodeType":"YulFunctionCall","src":"1622:24:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1618:3:21"},"nodeType":"YulFunctionCall","src":"1618:29:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1608:3:21"},"nodeType":"YulFunctionCall","src":"1608:40:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1654:1:21","type":"","value":"1"},{"name":"len","nodeType":"YulIdentifier","src":"1657:3:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1650:3:21"},"nodeType":"YulFunctionCall","src":"1650:11:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"1605:2:21"},"nodeType":"YulFunctionCall","src":"1605:57:21"},"variableNames":[{"name":"used","nodeType":"YulIdentifier","src":"1597:4:21"}]}]},"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"1564:4:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"1570:3:21","type":""}],"returnVariables":[{"name":"used","nodeType":"YulTypedName","src":"1578:4:21","type":""}],"src":"1502:166:21"},{"body":{"nodeType":"YulBlock","src":"1769:1256:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1779:24:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1799:3:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1793:5:21"},"nodeType":"YulFunctionCall","src":"1793:10:21"},"variables":[{"name":"newLen","nodeType":"YulTypedName","src":"1783:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1846:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1848:16:21"},"nodeType":"YulFunctionCall","src":"1848:18:21"},"nodeType":"YulExpressionStatement","src":"1848:18:21"}]},"condition":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"1818:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1834:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"1838:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1830:3:21"},"nodeType":"YulFunctionCall","src":"1830:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"1842:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1826:3:21"},"nodeType":"YulFunctionCall","src":"1826:18:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1815:2:21"},"nodeType":"YulFunctionCall","src":"1815:30:21"},"nodeType":"YulIf","src":"1812:56:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1921:4:21"},{"arguments":[{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"1959:4:21"}],"functionName":{"name":"sload","nodeType":"YulIdentifier","src":"1953:5:21"},"nodeType":"YulFunctionCall","src":"1953:11:21"}],"functionName":{"name":"extract_byte_array_length","nodeType":"YulIdentifier","src":"1927:25:21"},"nodeType":"YulFunctionCall","src":"1927:38:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"1967:6:21"}],"functionName":{"name":"clean_up_bytearray_end_slots_string_storage","nodeType":"YulIdentifier","src":"1877:43:21"},"nodeType":"YulFunctionCall","src":"1877:97:21"},"nodeType":"YulExpressionStatement","src":"1877:97:21"},{"nodeType":"YulVariableDeclaration","src":"1983:18:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2000:1:21","type":"","value":"0"},"variables":[{"name":"srcOffset","nodeType":"YulTypedName","src":"1987:9:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2010:23:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2029:4:21","type":"","value":"0x20"},"variables":[{"name":"srcOffset_1","nodeType":"YulTypedName","src":"2014:11:21","type":""}]},{"nodeType":"YulAssignment","src":"2042:24:21","value":{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2055:11:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2042:9:21"}]},{"cases":[{"body":{"nodeType":"YulBlock","src":"2112:656:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2126:35:21","value":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2145:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2157:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2153:3:21"},"nodeType":"YulFunctionCall","src":"2153:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2141:3:21"},"nodeType":"YulFunctionCall","src":"2141:20:21"},"variables":[{"name":"loopEnd","nodeType":"YulTypedName","src":"2130:7:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2174:49:21","value":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2218:4:21"}],"functionName":{"name":"array_dataslot_string_storage","nodeType":"YulIdentifier","src":"2188:29:21"},"nodeType":"YulFunctionCall","src":"2188:35:21"},"variables":[{"name":"dstPtr","nodeType":"YulTypedName","src":"2178:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2236:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2245:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"2240:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2323:172:21","statements":[{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2348:6:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2366:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2371:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2362:3:21"},"nodeType":"YulFunctionCall","src":"2362:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2356:5:21"},"nodeType":"YulFunctionCall","src":"2356:26:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2341:6:21"},"nodeType":"YulFunctionCall","src":"2341:42:21"},"nodeType":"YulExpressionStatement","src":"2341:42:21"},{"nodeType":"YulAssignment","src":"2400:24:21","value":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2414:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2422:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2410:3:21"},"nodeType":"YulFunctionCall","src":"2410:14:21"},"variableNames":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2400:6:21"}]},{"nodeType":"YulAssignment","src":"2441:40:21","value":{"arguments":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2458:9:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2469:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2454:3:21"},"nodeType":"YulFunctionCall","src":"2454:27:21"},"variableNames":[{"name":"srcOffset","nodeType":"YulIdentifier","src":"2441:9:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2270:1:21"},{"name":"loopEnd","nodeType":"YulIdentifier","src":"2273:7:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2267:2:21"},"nodeType":"YulFunctionCall","src":"2267:14:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2282:28:21","statements":[{"nodeType":"YulAssignment","src":"2284:24:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"2293:1:21"},{"name":"srcOffset_1","nodeType":"YulIdentifier","src":"2296:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2289:3:21"},"nodeType":"YulFunctionCall","src":"2289:19:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"2284:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2263:3:21","statements":[]},"src":"2259:236:21"},{"body":{"nodeType":"YulBlock","src":"2543:166:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2561:43:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2588:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2593:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2584:3:21"},"nodeType":"YulFunctionCall","src":"2584:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2578:5:21"},"nodeType":"YulFunctionCall","src":"2578:26:21"},"variables":[{"name":"lastValue","nodeType":"YulTypedName","src":"2565:9:21","type":""}]},{"expression":{"arguments":[{"name":"dstPtr","nodeType":"YulIdentifier","src":"2628:6:21"},{"arguments":[{"name":"lastValue","nodeType":"YulIdentifier","src":"2640:9:21"},{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2667:1:21","type":"","value":"3"},{"name":"newLen","nodeType":"YulIdentifier","src":"2670:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2663:3:21"},"nodeType":"YulFunctionCall","src":"2663:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"2679:3:21","type":"","value":"248"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2659:3:21"},"nodeType":"YulFunctionCall","src":"2659:24:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2689:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2685:3:21"},"nodeType":"YulFunctionCall","src":"2685:6:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2655:3:21"},"nodeType":"YulFunctionCall","src":"2655:37:21"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2651:3:21"},"nodeType":"YulFunctionCall","src":"2651:42:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2636:3:21"},"nodeType":"YulFunctionCall","src":"2636:58:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2621:6:21"},"nodeType":"YulFunctionCall","src":"2621:74:21"},"nodeType":"YulExpressionStatement","src":"2621:74:21"}]},"condition":{"arguments":[{"name":"loopEnd","nodeType":"YulIdentifier","src":"2514:7:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"2523:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2511:2:21"},"nodeType":"YulFunctionCall","src":"2511:19:21"},"nodeType":"YulIf","src":"2508:201:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2729:4:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2743:1:21","type":"","value":"1"},{"name":"newLen","nodeType":"YulIdentifier","src":"2746:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2739:3:21"},"nodeType":"YulFunctionCall","src":"2739:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"2755:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2735:3:21"},"nodeType":"YulFunctionCall","src":"2735:22:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2722:6:21"},"nodeType":"YulFunctionCall","src":"2722:36:21"},"nodeType":"YulExpressionStatement","src":"2722:36:21"}]},"nodeType":"YulCase","src":"2105:663:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2110:1:21","type":"","value":"1"}},{"body":{"nodeType":"YulBlock","src":"2785:234:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2799:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2812:1:21","type":"","value":"0"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2803:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2848:67:21","statements":[{"nodeType":"YulAssignment","src":"2866:35:21","value":{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2885:3:21"},{"name":"srcOffset","nodeType":"YulIdentifier","src":"2890:9:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2881:3:21"},"nodeType":"YulFunctionCall","src":"2881:19:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"2875:5:21"},"nodeType":"YulFunctionCall","src":"2875:26:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2866:5:21"}]}]},"condition":{"name":"newLen","nodeType":"YulIdentifier","src":"2829:6:21"},"nodeType":"YulIf","src":"2826:89:21"},{"expression":{"arguments":[{"name":"slot","nodeType":"YulIdentifier","src":"2935:4:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2994:5:21"},{"name":"newLen","nodeType":"YulIdentifier","src":"3001:6:21"}],"functionName":{"name":"extract_used_part_and_set_length_of_short_byte_array","nodeType":"YulIdentifier","src":"2941:52:21"},"nodeType":"YulFunctionCall","src":"2941:67:21"}],"functionName":{"name":"sstore","nodeType":"YulIdentifier","src":"2928:6:21"},"nodeType":"YulFunctionCall","src":"2928:81:21"},"nodeType":"YulExpressionStatement","src":"2928:81:21"}]},"nodeType":"YulCase","src":"2777:242:21","value":"default"}],"expression":{"arguments":[{"name":"newLen","nodeType":"YulIdentifier","src":"2085:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2093:2:21","type":"","value":"31"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2082:2:21"},"nodeType":"YulFunctionCall","src":"2082:14:21"},"nodeType":"YulSwitch","src":"2075:944:21"}]},"name":"copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage","nodeType":"YulFunctionDefinition","parameters":[{"name":"slot","nodeType":"YulTypedName","src":"1754:4:21","type":""},{"name":"src","nodeType":"YulTypedName","src":"1760:3:21","type":""}],"src":"1673:1352:21"},{"body":{"nodeType":"YulBlock","src":"3131:102:21","statements":[{"nodeType":"YulAssignment","src":"3141:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3153:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3164:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3149:3:21"},"nodeType":"YulFunctionCall","src":"3149:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3141:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3183:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3198:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3214:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3219:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3210:3:21"},"nodeType":"YulFunctionCall","src":"3210:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3223:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3206:3:21"},"nodeType":"YulFunctionCall","src":"3206:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3194:3:21"},"nodeType":"YulFunctionCall","src":"3194:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3176:6:21"},"nodeType":"YulFunctionCall","src":"3176:51:21"},"nodeType":"YulExpressionStatement","src":"3176:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3100:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3111:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3122:4:21","type":""}],"src":"3030:203:21"},{"body":{"nodeType":"YulBlock","src":"3286:174:21","statements":[{"nodeType":"YulAssignment","src":"3296:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3307:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"3310:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3303:3:21"},"nodeType":"YulFunctionCall","src":"3303:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3296:3:21"}]},{"body":{"nodeType":"YulBlock","src":"3343:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3364:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3371:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3376:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3367:3:21"},"nodeType":"YulFunctionCall","src":"3367:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3357:6:21"},"nodeType":"YulFunctionCall","src":"3357:31:21"},"nodeType":"YulExpressionStatement","src":"3357:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3408:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"3411:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3401:6:21"},"nodeType":"YulFunctionCall","src":"3401:15:21"},"nodeType":"YulExpressionStatement","src":"3401:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3436:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3439:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3429:6:21"},"nodeType":"YulFunctionCall","src":"3429:15:21"},"nodeType":"YulExpressionStatement","src":"3429:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3327:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"3330:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3324:2:21"},"nodeType":"YulFunctionCall","src":"3324:10:21"},"nodeType":"YulIf","src":"3321:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3269:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"3272:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3278:3:21","type":""}],"src":"3238:222:21"},{"body":{"nodeType":"YulBlock","src":"3622:188:21","statements":[{"nodeType":"YulAssignment","src":"3632:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3644:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3655:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3640:3:21"},"nodeType":"YulFunctionCall","src":"3640:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3632:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3674:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3689:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3705:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3710:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3701:3:21"},"nodeType":"YulFunctionCall","src":"3701:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3714:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3697:3:21"},"nodeType":"YulFunctionCall","src":"3697:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3685:3:21"},"nodeType":"YulFunctionCall","src":"3685:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3667:6:21"},"nodeType":"YulFunctionCall","src":"3667:51:21"},"nodeType":"YulExpressionStatement","src":"3667:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3738:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3749:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3734:3:21"},"nodeType":"YulFunctionCall","src":"3734:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"3754:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3727:6:21"},"nodeType":"YulFunctionCall","src":"3727:34:21"},"nodeType":"YulExpressionStatement","src":"3727:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3781:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3792:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3777:3:21"},"nodeType":"YulFunctionCall","src":"3777:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"3797:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3770:6:21"},"nodeType":"YulFunctionCall","src":"3770:34:21"},"nodeType":"YulExpressionStatement","src":"3770:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3575:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3586:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3594:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3602:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3613:4:21","type":""}],"src":"3465:345:21"},{"body":{"nodeType":"YulBlock","src":"3916:76:21","statements":[{"nodeType":"YulAssignment","src":"3926:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3938:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3949:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3934:3:21"},"nodeType":"YulFunctionCall","src":"3934:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3926:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3968:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"3979:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3961:6:21"},"nodeType":"YulFunctionCall","src":"3961:25:21"},"nodeType":"YulExpressionStatement","src":"3961:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3885:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3896:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3907:4:21","type":""}],"src":"3815:177:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function array_dataslot_string_storage(ptr) -> data\n {\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n }\n function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n {\n if gt(len, 31)\n {\n let _1 := 0\n mstore(_1, array)\n let data := keccak256(_1, 0x20)\n let deleteStart := add(data, shr(5, add(startIndex, 31)))\n if lt(startIndex, 0x20) { deleteStart := data }\n let _2 := add(data, shr(5, add(len, 31)))\n let start := deleteStart\n for { } lt(start, _2) { start := add(start, 1) }\n { sstore(start, _1) }\n }\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n {\n used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src)\n {\n let newLen := mload(src)\n if gt(newLen, sub(shl(64, 1), 1)) { panic_error_0x41() }\n clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), newLen)\n let srcOffset := 0\n let srcOffset_1 := 0x20\n srcOffset := srcOffset_1\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(31))\n let dstPtr := array_dataslot_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, srcOffset_1) }\n {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, srcOffset_1)\n }\n if lt(loopEnd, newLen)\n {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, and(lastValue, not(shr(and(shl(3, newLen), 248), not(0)))))\n }\n sstore(slot, add(shl(1, newLen), 1))\n }\n default {\n let value := 0\n if newLen\n {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000d1838038062000d1883398101604081905262000034916200023e565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b815250828282816003908162000084919062000315565b50600462000093828262000315565b5050600580546001600160a01b0319166001600160a01b03841617905550620000bf336103e8620000c9565b5050505062000409565b6001600160a01b038216620000f95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b62000107600083836200010b565b5050565b6001600160a01b0383166200013a5780600260008282546200012e9190620003e1565b90915550620001ae9050565b6001600160a01b038316600090815260208190526040902054818110156200018f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001cc57600280548290039055620001eb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023191815260200190565b60405180910390a3505050565b6000602082840312156200025157600080fd5b81516001600160a01b03811681146200026957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029b57607f821691505b602082108103620002bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031057600081815260208120601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b0381111562000331576200033162000270565b620003498162000342845462000286565b84620002c2565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200040357634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xD18 CODESIZE SUB DUP1 PUSH3 0xD18 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x23E JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x26BCAA37B5B2B7 PUSH1 0xC9 SHL DUP2 MSTORE POP PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x3 DUP2 MSTORE PUSH1 0x20 ADD PUSH3 0x4D544B PUSH1 0xE8 SHL DUP2 MSTORE POP DUP3 DUP3 DUP3 DUP2 PUSH1 0x3 SWAP1 DUP2 PUSH3 0x84 SWAP2 SWAP1 PUSH3 0x315 JUMP JUMPDEST POP PUSH1 0x4 PUSH3 0x93 DUP3 DUP3 PUSH3 0x315 JUMP JUMPDEST POP POP PUSH1 0x5 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND OR SWAP1 SSTORE POP PUSH3 0xBF CALLER PUSH2 0x3E8 PUSH3 0xC9 JUMP JUMPDEST POP POP POP POP PUSH3 0x409 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0xF9 JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH3 0x107 PUSH1 0x0 DUP4 DUP4 PUSH3 0x10B JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH3 0x13A JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH3 0x12E SWAP2 SWAP1 PUSH3 0x3E1 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH3 0x1AE SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH3 0x18F JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH3 0xF0 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH3 0x1CC JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH3 0x1EB JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH3 0x231 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH3 0x251 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x269 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH3 0x29B JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH3 0x2BC JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x1F DUP3 GT ISZERO PUSH3 0x310 JUMPI PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP2 ADD PUSH1 0x20 DUP7 LT ISZERO PUSH3 0x2EB JUMPI POP DUP1 JUMPDEST PUSH1 0x1F DUP6 ADD PUSH1 0x5 SHR DUP3 ADD SWAP2 POP JUMPDEST DUP2 DUP2 LT ISZERO PUSH3 0x30C JUMPI DUP3 DUP2 SSTORE PUSH1 0x1 ADD PUSH3 0x2F7 JUMP JUMPDEST POP POP POP JUMPDEST POP POP POP JUMP JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP2 GT ISZERO PUSH3 0x331 JUMPI PUSH3 0x331 PUSH3 0x270 JUMP JUMPDEST PUSH3 0x349 DUP2 PUSH3 0x342 DUP5 SLOAD PUSH3 0x286 JUMP JUMPDEST DUP5 PUSH3 0x2C2 JUMP JUMPDEST PUSH1 0x20 DUP1 PUSH1 0x1F DUP4 GT PUSH1 0x1 DUP2 EQ PUSH3 0x381 JUMPI PUSH1 0x0 DUP5 ISZERO PUSH3 0x368 JUMPI POP DUP6 DUP4 ADD MLOAD JUMPDEST PUSH1 0x0 NOT PUSH1 0x3 DUP7 SWAP1 SHL SHR NOT AND PUSH1 0x1 DUP6 SWAP1 SHL OR DUP6 SSTORE PUSH3 0x30C JUMP JUMPDEST PUSH1 0x0 DUP6 DUP2 MSTORE PUSH1 0x20 DUP2 KECCAK256 PUSH1 0x1F NOT DUP7 AND SWAP2 JUMPDEST DUP3 DUP2 LT ISZERO PUSH3 0x3B2 JUMPI DUP9 DUP7 ADD MLOAD DUP3 SSTORE SWAP5 DUP5 ADD SWAP5 PUSH1 0x1 SWAP1 SWAP2 ADD SWAP1 DUP5 ADD PUSH3 0x391 JUMP JUMPDEST POP DUP6 DUP3 LT ISZERO PUSH3 0x3D1 JUMPI DUP8 DUP6 ADD MLOAD PUSH1 0x0 NOT PUSH1 0x3 DUP9 SWAP1 SHL PUSH1 0xF8 AND SHR NOT AND DUP2 SSTORE JUMPDEST POP POP POP POP POP PUSH1 0x1 SWAP1 DUP2 SHL ADD SWAP1 SSTORE POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH3 0x403 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x8FF DUP1 PUSH3 0x419 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xB7 ADD 0xAE 0xB3 DUP6 0xEE 0xA7 0xEB RETURN STATICCALL COINBASE DUP2 0xCF JUMPI RETURNDATASIZE 0xB5 SWAP11 EXTCODEHASH SWAP11 0x27 PUSH31 0x37AEB67C2FCB148545B64736F6C6343000814003300000000000000000000 ","sourceMap":"803:112:16:-:0;;;842:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;296:192;;;;;;;;;;;;;-1:-1:-1;;;296:192:16;;;;;;;;;;;;;;;;-1:-1:-1;;;296:192:16;;;902:7;405:5;412:7;1970:5:2;1962;:13;;;;;;:::i;:::-;-1:-1:-1;1985:7:2;:17;1995:7;1985;:17;:::i;:::-;-1:-1:-1;;431:7:16::1;:17:::0;;-1:-1:-1;;;;;;431:17:16::1;-1:-1:-1::0;;;;;431:17:16;::::1;;::::0;;-1:-1:-1;458:23:16::1;464:10;476:4;458:5;:23::i;:::-;296:192:::0;;;842:71;803:112;;7721:208:2;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;3176:51:21;3149:18;;7835:32:2;;;;;;;;7787:91;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;:::-;7721:208;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;3685:32:21;;6649:50:2;;;3667:51:21;3734:18;;;3727:34;;;3777:18;;;3770:34;;;3640:18;;6649:50:2;3465:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;3961::21;;3949:2;3934:18;;3815:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:290:21:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:21;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:21:o;309:127::-;370:10;365:3;361:20;358:1;351:31;401:4;398:1;391:15;425:4;422:1;415:15;441:380;520:1;516:12;;;;563;;;584:61;;638:4;630:6;626:17;616:27;;584:61;691:2;683:6;680:14;660:18;657:38;654:161;;737:10;732:3;728:20;725:1;718:31;772:4;769:1;762:15;800:4;797:1;790:15;654:161;;441:380;;;:::o;952:545::-;1054:2;1049:3;1046:11;1043:448;;;1090:1;1115:5;1111:2;1104:17;1160:4;1156:2;1146:19;1230:2;1218:10;1214:19;1211:1;1207:27;1201:4;1197:38;1266:4;1254:10;1251:20;1248:47;;;-1:-1:-1;1289:4:21;1248:47;1344:2;1339:3;1335:12;1332:1;1328:20;1322:4;1318:31;1308:41;;1399:82;1417:2;1410:5;1407:13;1399:82;;;1462:17;;;1443:1;1432:13;1399:82;;;1403:3;;;1043:448;952:545;;;:::o;1673:1352::-;1793:10;;-1:-1:-1;;;;;1815:30:21;;1812:56;;;1848:18;;:::i;:::-;1877:97;1967:6;1927:38;1959:4;1953:11;1927:38;:::i;:::-;1921:4;1877:97;:::i;:::-;2029:4;;2093:2;2082:14;;2110:1;2105:663;;;;2812:1;2829:6;2826:89;;;-1:-1:-1;2881:19:21;;;2875:26;2826:89;-1:-1:-1;;1630:1:21;1626:11;;;1622:24;1618:29;1608:40;1654:1;1650:11;;;1605:57;2928:81;;2075:944;;2105:663;899:1;892:14;;;936:4;923:18;;-1:-1:-1;;2141:20:21;;;2259:236;2273:7;2270:1;2267:14;2259:236;;;2362:19;;;2356:26;2341:42;;2454:27;;;;2422:1;2410:14;;;;2289:19;;2259:236;;;2263:3;2523:6;2514:7;2511:19;2508:201;;;2584:19;;;2578:26;-1:-1:-1;;2667:1:21;2663:14;;;2679:3;2659:24;2655:37;2651:42;2636:58;2621:74;;2508:201;-1:-1:-1;;;;;2755:1:21;2739:14;;;2735:22;2722:36;;-1:-1:-1;1673:1352:21:o;3238:222::-;3303:9;;;3324:10;;;3321:133;;;3376:10;3371:3;3367:20;3364:1;3357:31;3411:4;3408:1;3401:15;3439:4;3436:1;3429:15;3321:133;3238:222;;;;:::o;3815:177::-;803:112:16;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_approve_796":{"entryPoint":982,"id":796,"parameterSlots":3,"returnSlots":0},"@_approve_856":{"entryPoint":1329,"id":856,"parameterSlots":4,"returnSlots":0},"@_burn_778":{"entryPoint":1275,"id":778,"parameterSlots":2,"returnSlots":0},"@_mint_745":{"entryPoint":1221,"id":745,"parameterSlots":2,"returnSlots":0},"@_msgSender_1067":{"entryPoint":null,"id":1067,"parameterSlots":0,"returnSlots":1},"@_spendAllowance_904":{"entryPoint":1000,"id":904,"parameterSlots":3,"returnSlots":0},"@_transfer_635":{"entryPoint":1126,"id":635,"parameterSlots":3,"returnSlots":0},"@_update_712":{"entryPoint":1542,"id":712,"parameterSlots":3,"returnSlots":0},"@allowance_532":{"entryPoint":null,"id":532,"parameterSlots":2,"returnSlots":1},"@approve_556":{"entryPoint":678,"id":556,"parameterSlots":2,"returnSlots":1},"@balanceOf_491":{"entryPoint":null,"id":491,"parameterSlots":1,"returnSlots":1},"@burnFrom_1028":{"entryPoint":847,"id":1028,"parameterSlots":2,"returnSlots":0},"@burn_1007":{"entryPoint":834,"id":1007,"parameterSlots":1,"returnSlots":0},"@burn_3879":{"entryPoint":883,"id":3879,"parameterSlots":2,"returnSlots":0},"@decimals_469":{"entryPoint":null,"id":469,"parameterSlots":0,"returnSlots":1},"@mint_3864":{"entryPoint":740,"id":3864,"parameterSlots":2,"returnSlots":0},"@name_451":{"entryPoint":532,"id":451,"parameterSlots":0,"returnSlots":1},"@symbol_460":{"entryPoint":868,"id":460,"parameterSlots":0,"returnSlots":1},"@totalSupply_478":{"entryPoint":null,"id":478,"parameterSlots":0,"returnSlots":1},"@transferFrom_588":{"entryPoint":704,"id":588,"parameterSlots":3,"returnSlots":1},"@transfer_515":{"entryPoint":968,"id":515,"parameterSlots":2,"returnSlots":1},"abi_decode_address":{"entryPoint":1918,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2073,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_addresst_address":{"entryPoint":2107,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_addresst_uint256":{"entryPoint":1988,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_uint256":{"entryPoint":1946,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":2048,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":1840,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":2216,"id":null,"parameterSlots":2,"returnSlots":1},"extract_byte_array_length":{"entryPoint":2158,"id":null,"parameterSlots":1,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:4051:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"135:427:21","statements":[{"nodeType":"YulVariableDeclaration","src":"145:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"155:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"149:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"173:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"184:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"166:6:21"},"nodeType":"YulFunctionCall","src":"166:21:21"},"nodeType":"YulExpressionStatement","src":"166:21:21"},{"nodeType":"YulVariableDeclaration","src":"196:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"216:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"210:5:21"},"nodeType":"YulFunctionCall","src":"210:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"200:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"243:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"254:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"239:3:21"},"nodeType":"YulFunctionCall","src":"239:18:21"},{"name":"length","nodeType":"YulIdentifier","src":"259:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:34:21"},"nodeType":"YulExpressionStatement","src":"232:34:21"},{"nodeType":"YulVariableDeclaration","src":"275:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"284:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"279:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"344:90:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"373:9:21"},{"name":"i","nodeType":"YulIdentifier","src":"384:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"369:3:21"},"nodeType":"YulFunctionCall","src":"369:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"388:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"365:3:21"},"nodeType":"YulFunctionCall","src":"365:26:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"407:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"415:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"403:3:21"},"nodeType":"YulFunctionCall","src":"403:14:21"},{"name":"_1","nodeType":"YulIdentifier","src":"419:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"393:5:21"},"nodeType":"YulFunctionCall","src":"393:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"358:6:21"},"nodeType":"YulFunctionCall","src":"358:66:21"},"nodeType":"YulExpressionStatement","src":"358:66:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"305:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"308:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"302:2:21"},"nodeType":"YulFunctionCall","src":"302:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"316:19:21","statements":[{"nodeType":"YulAssignment","src":"318:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"327:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"330:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"323:3:21"},"nodeType":"YulFunctionCall","src":"323:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"318:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"298:3:21","statements":[]},"src":"294:140:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"458:9:21"},{"name":"length","nodeType":"YulIdentifier","src":"469:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"454:3:21"},"nodeType":"YulFunctionCall","src":"454:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"478:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"450:3:21"},"nodeType":"YulFunctionCall","src":"450:31:21"},{"kind":"number","nodeType":"YulLiteral","src":"483:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"443:6:21"},"nodeType":"YulFunctionCall","src":"443:42:21"},"nodeType":"YulExpressionStatement","src":"443:42:21"},{"nodeType":"YulAssignment","src":"494:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"510:9:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"529:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"537:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"525:3:21"},"nodeType":"YulFunctionCall","src":"525:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"546:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"542:3:21"},"nodeType":"YulFunctionCall","src":"542:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"521:3:21"},"nodeType":"YulFunctionCall","src":"521:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"506:3:21"},"nodeType":"YulFunctionCall","src":"506:45:21"},{"kind":"number","nodeType":"YulLiteral","src":"553:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:21"},"nodeType":"YulFunctionCall","src":"502:54:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"494:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"104:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"115:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"126:4:21","type":""}],"src":"14:548:21"},{"body":{"nodeType":"YulBlock","src":"616:124:21","statements":[{"nodeType":"YulAssignment","src":"626:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"648:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"635:12:21"},"nodeType":"YulFunctionCall","src":"635:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"626:5:21"}]},{"body":{"nodeType":"YulBlock","src":"718:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"727:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"730:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"720:6:21"},"nodeType":"YulFunctionCall","src":"720:12:21"},"nodeType":"YulExpressionStatement","src":"720:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"677:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"688:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"703:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"708:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"699:3:21"},"nodeType":"YulFunctionCall","src":"699:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"712:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"695:3:21"},"nodeType":"YulFunctionCall","src":"695:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"684:3:21"},"nodeType":"YulFunctionCall","src":"684:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"674:2:21"},"nodeType":"YulFunctionCall","src":"674:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"667:6:21"},"nodeType":"YulFunctionCall","src":"667:50:21"},"nodeType":"YulIf","src":"664:70:21"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"595:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"606:5:21","type":""}],"src":"567:173:21"},{"body":{"nodeType":"YulBlock","src":"832:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"878:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"887:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"890:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"880:6:21"},"nodeType":"YulFunctionCall","src":"880:12:21"},"nodeType":"YulExpressionStatement","src":"880:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"853:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"862:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"849:3:21"},"nodeType":"YulFunctionCall","src":"849:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"874:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"845:3:21"},"nodeType":"YulFunctionCall","src":"845:32:21"},"nodeType":"YulIf","src":"842:52:21"},{"nodeType":"YulAssignment","src":"903:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"932:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"913:18:21"},"nodeType":"YulFunctionCall","src":"913:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"903:6:21"}]},{"nodeType":"YulAssignment","src":"951:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"978:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"989:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"974:3:21"},"nodeType":"YulFunctionCall","src":"974:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"961:12:21"},"nodeType":"YulFunctionCall","src":"961:32:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"951:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"790:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"801:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"813:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"821:6:21","type":""}],"src":"745:254:21"},{"body":{"nodeType":"YulBlock","src":"1099:92:21","statements":[{"nodeType":"YulAssignment","src":"1109:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1121:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1132:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1117:3:21"},"nodeType":"YulFunctionCall","src":"1117:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1109:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1176:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1169:6:21"},"nodeType":"YulFunctionCall","src":"1169:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1162:6:21"},"nodeType":"YulFunctionCall","src":"1162:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1144:6:21"},"nodeType":"YulFunctionCall","src":"1144:41:21"},"nodeType":"YulExpressionStatement","src":"1144:41:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1068:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1079:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1090:4:21","type":""}],"src":"1004:187:21"},{"body":{"nodeType":"YulBlock","src":"1297:76:21","statements":[{"nodeType":"YulAssignment","src":"1307:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1319:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1330:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1315:3:21"},"nodeType":"YulFunctionCall","src":"1315:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1307:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1349:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"1360:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1342:6:21"},"nodeType":"YulFunctionCall","src":"1342:25:21"},"nodeType":"YulExpressionStatement","src":"1342:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1266:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1277:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1288:4:21","type":""}],"src":"1196:177:21"},{"body":{"nodeType":"YulBlock","src":"1482:224:21","statements":[{"body":{"nodeType":"YulBlock","src":"1528:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1537:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1540:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1530:6:21"},"nodeType":"YulFunctionCall","src":"1530:12:21"},"nodeType":"YulExpressionStatement","src":"1530:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1503:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1512:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1499:3:21"},"nodeType":"YulFunctionCall","src":"1499:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1524:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1495:3:21"},"nodeType":"YulFunctionCall","src":"1495:32:21"},"nodeType":"YulIf","src":"1492:52:21"},{"nodeType":"YulAssignment","src":"1553:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1582:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1563:18:21"},"nodeType":"YulFunctionCall","src":"1563:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1553:6:21"}]},{"nodeType":"YulAssignment","src":"1601:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1634:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1645:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1630:3:21"},"nodeType":"YulFunctionCall","src":"1630:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"1611:18:21"},"nodeType":"YulFunctionCall","src":"1611:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1601:6:21"}]},{"nodeType":"YulAssignment","src":"1658:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1685:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1696:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1681:3:21"},"nodeType":"YulFunctionCall","src":"1681:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1668:12:21"},"nodeType":"YulFunctionCall","src":"1668:32:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"1658:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1432:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1443:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1455:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1463:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"1471:6:21","type":""}],"src":"1378:328:21"},{"body":{"nodeType":"YulBlock","src":"1808:87:21","statements":[{"nodeType":"YulAssignment","src":"1818:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1830:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1841:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1826:3:21"},"nodeType":"YulFunctionCall","src":"1826:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1818:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1860:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1875:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1883:4:21","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1871:3:21"},"nodeType":"YulFunctionCall","src":"1871:17:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1853:6:21"},"nodeType":"YulFunctionCall","src":"1853:36:21"},"nodeType":"YulExpressionStatement","src":"1853:36:21"}]},"name":"abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1777:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1788:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1799:4:21","type":""}],"src":"1711:184:21"},{"body":{"nodeType":"YulBlock","src":"1970:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"2016:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2028:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2018:6:21"},"nodeType":"YulFunctionCall","src":"2018:12:21"},"nodeType":"YulExpressionStatement","src":"2018:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1991:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2000:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1987:3:21"},"nodeType":"YulFunctionCall","src":"1987:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2012:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1983:3:21"},"nodeType":"YulFunctionCall","src":"1983:32:21"},"nodeType":"YulIf","src":"1980:52:21"},{"nodeType":"YulAssignment","src":"2041:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2064:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2051:12:21"},"nodeType":"YulFunctionCall","src":"2051:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2041:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1936:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1947:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1959:6:21","type":""}],"src":"1900:180:21"},{"body":{"nodeType":"YulBlock","src":"2155:116:21","statements":[{"body":{"nodeType":"YulBlock","src":"2201:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2210:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2213:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2203:6:21"},"nodeType":"YulFunctionCall","src":"2203:12:21"},"nodeType":"YulExpressionStatement","src":"2203:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2176:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2185:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2172:3:21"},"nodeType":"YulFunctionCall","src":"2172:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2197:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2168:3:21"},"nodeType":"YulFunctionCall","src":"2168:32:21"},"nodeType":"YulIf","src":"2165:52:21"},{"nodeType":"YulAssignment","src":"2226:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2255:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2236:18:21"},"nodeType":"YulFunctionCall","src":"2236:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2226:6:21"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2121:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2132:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2144:6:21","type":""}],"src":"2085:186:21"},{"body":{"nodeType":"YulBlock","src":"2363:173:21","statements":[{"body":{"nodeType":"YulBlock","src":"2409:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2418:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2421:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2411:6:21"},"nodeType":"YulFunctionCall","src":"2411:12:21"},"nodeType":"YulExpressionStatement","src":"2411:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2384:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2393:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2380:3:21"},"nodeType":"YulFunctionCall","src":"2380:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2405:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2376:3:21"},"nodeType":"YulFunctionCall","src":"2376:32:21"},"nodeType":"YulIf","src":"2373:52:21"},{"nodeType":"YulAssignment","src":"2434:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2463:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2444:18:21"},"nodeType":"YulFunctionCall","src":"2444:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2434:6:21"}]},{"nodeType":"YulAssignment","src":"2482:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2515:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2526:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2511:3:21"},"nodeType":"YulFunctionCall","src":"2511:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2492:18:21"},"nodeType":"YulFunctionCall","src":"2492:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2482:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2321:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2332:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2344:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2352:6:21","type":""}],"src":"2276:260:21"},{"body":{"nodeType":"YulBlock","src":"2596:325:21","statements":[{"nodeType":"YulAssignment","src":"2606:22:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2620:1:21","type":"","value":"1"},{"name":"data","nodeType":"YulIdentifier","src":"2623:4:21"}],"functionName":{"name":"shr","nodeType":"YulIdentifier","src":"2616:3:21"},"nodeType":"YulFunctionCall","src":"2616:12:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2606:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2637:38:21","value":{"arguments":[{"name":"data","nodeType":"YulIdentifier","src":"2667:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"2673:1:21","type":"","value":"1"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2663:3:21"},"nodeType":"YulFunctionCall","src":"2663:12:21"},"variables":[{"name":"outOfPlaceEncoding","nodeType":"YulTypedName","src":"2641:18:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2714:31:21","statements":[{"nodeType":"YulAssignment","src":"2716:27:21","value":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2730:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2738:4:21","type":"","value":"0x7f"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2726:3:21"},"nodeType":"YulFunctionCall","src":"2726:17:21"},"variableNames":[{"name":"length","nodeType":"YulIdentifier","src":"2716:6:21"}]}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2694:18:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2687:6:21"},"nodeType":"YulFunctionCall","src":"2687:26:21"},"nodeType":"YulIf","src":"2684:61:21"},{"body":{"nodeType":"YulBlock","src":"2804:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2825:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2832:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"2837:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2828:3:21"},"nodeType":"YulFunctionCall","src":"2828:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2818:6:21"},"nodeType":"YulFunctionCall","src":"2818:31:21"},"nodeType":"YulExpressionStatement","src":"2818:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2869:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"2872:4:21","type":"","value":"0x22"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2862:6:21"},"nodeType":"YulFunctionCall","src":"2862:15:21"},"nodeType":"YulExpressionStatement","src":"2862:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2897:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2900:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2890:6:21"},"nodeType":"YulFunctionCall","src":"2890:15:21"},"nodeType":"YulExpressionStatement","src":"2890:15:21"}]},"condition":{"arguments":[{"name":"outOfPlaceEncoding","nodeType":"YulIdentifier","src":"2760:18:21"},{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2783:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2791:2:21","type":"","value":"32"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2780:2:21"},"nodeType":"YulFunctionCall","src":"2780:14:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2757:2:21"},"nodeType":"YulFunctionCall","src":"2757:38:21"},"nodeType":"YulIf","src":"2754:161:21"}]},"name":"extract_byte_array_length","nodeType":"YulFunctionDefinition","parameters":[{"name":"data","nodeType":"YulTypedName","src":"2576:4:21","type":""}],"returnVariables":[{"name":"length","nodeType":"YulTypedName","src":"2585:6:21","type":""}],"src":"2541:380:21"},{"body":{"nodeType":"YulBlock","src":"3100:164:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3117:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3128:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3110:6:21"},"nodeType":"YulFunctionCall","src":"3110:21:21"},"nodeType":"YulExpressionStatement","src":"3110:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3151:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3162:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:21"},"nodeType":"YulFunctionCall","src":"3147:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"3167:2:21","type":"","value":"14"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3140:6:21"},"nodeType":"YulFunctionCall","src":"3140:30:21"},"nodeType":"YulExpressionStatement","src":"3140:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3190:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3201:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3186:3:21"},"nodeType":"YulFunctionCall","src":"3186:18:21"},{"hexValue":"4e6f742074686520627269646765","kind":"string","nodeType":"YulLiteral","src":"3206:16:21","type":"","value":"Not the bridge"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3179:6:21"},"nodeType":"YulFunctionCall","src":"3179:44:21"},"nodeType":"YulExpressionStatement","src":"3179:44:21"},{"nodeType":"YulAssignment","src":"3232:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3244:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3255:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3240:3:21"},"nodeType":"YulFunctionCall","src":"3240:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3232:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3077:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3091:4:21","type":""}],"src":"2926:338:21"},{"body":{"nodeType":"YulBlock","src":"3426:188:21","statements":[{"nodeType":"YulAssignment","src":"3436:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3448:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3459:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3444:3:21"},"nodeType":"YulFunctionCall","src":"3444:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3436:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3478:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3493:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3509:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3514:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3505:3:21"},"nodeType":"YulFunctionCall","src":"3505:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3518:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3501:3:21"},"nodeType":"YulFunctionCall","src":"3501:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3489:3:21"},"nodeType":"YulFunctionCall","src":"3489:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3471:6:21"},"nodeType":"YulFunctionCall","src":"3471:51:21"},"nodeType":"YulExpressionStatement","src":"3471:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3542:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3553:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3538:3:21"},"nodeType":"YulFunctionCall","src":"3538:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"3558:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3531:6:21"},"nodeType":"YulFunctionCall","src":"3531:34:21"},"nodeType":"YulExpressionStatement","src":"3531:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3585:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3596:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3581:3:21"},"nodeType":"YulFunctionCall","src":"3581:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"3601:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3574:6:21"},"nodeType":"YulFunctionCall","src":"3574:34:21"},"nodeType":"YulExpressionStatement","src":"3574:34:21"}]},"name":"abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3379:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3390:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3398:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3406:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3417:4:21","type":""}],"src":"3269:345:21"},{"body":{"nodeType":"YulBlock","src":"3720:102:21","statements":[{"nodeType":"YulAssignment","src":"3730:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3742:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3753:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3738:3:21"},"nodeType":"YulFunctionCall","src":"3738:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3730:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3772:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3787:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3803:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3808:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3799:3:21"},"nodeType":"YulFunctionCall","src":"3799:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3812:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3795:3:21"},"nodeType":"YulFunctionCall","src":"3795:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3783:3:21"},"nodeType":"YulFunctionCall","src":"3783:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3765:6:21"},"nodeType":"YulFunctionCall","src":"3765:51:21"},"nodeType":"YulExpressionStatement","src":"3765:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3689:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3700:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3711:4:21","type":""}],"src":"3619:203:21"},{"body":{"nodeType":"YulBlock","src":"3875:174:21","statements":[{"nodeType":"YulAssignment","src":"3885:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3896:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"3899:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3892:3:21"},"nodeType":"YulFunctionCall","src":"3892:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"3885:3:21"}]},{"body":{"nodeType":"YulBlock","src":"3932:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3953:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3960:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"3965:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3956:3:21"},"nodeType":"YulFunctionCall","src":"3956:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3946:6:21"},"nodeType":"YulFunctionCall","src":"3946:31:21"},"nodeType":"YulExpressionStatement","src":"3946:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3997:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4000:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3990:6:21"},"nodeType":"YulFunctionCall","src":"3990:15:21"},"nodeType":"YulExpressionStatement","src":"3990:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4025:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4028:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4018:6:21"},"nodeType":"YulFunctionCall","src":"4018:15:21"},"nodeType":"YulExpressionStatement","src":"4018:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"3916:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"3919:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3913:2:21"},"nodeType":"YulFunctionCall","src":"3913:10:21"},"nodeType":"YulIf","src":"3910:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"3858:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"3861:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"3867:3:21","type":""}],"src":"3827:222:21"}]},"contents":"{\n { }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := calldataload(add(headStart, 32))\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n }\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n }\n function extract_byte_array_length(data) -> length\n {\n length := shr(1, data)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) { length := and(length, 0x7f) }\n if eq(outOfPlaceEncoding, lt(length, 32))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_stringliteral_d0bae747fbb79c75f7cfaac9393a569f9966c83447a646704e27f9cb70e33fe3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 14)\n mstore(add(headStart, 64), \"Not the bridge\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0xCF JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x42966C68 GT PUSH2 0x8C JUMPI DUP1 PUSH4 0x95D89B41 GT PUSH2 0x66 JUMPI DUP1 PUSH4 0x95D89B41 EQ PUSH2 0x1AD JUMPI DUP1 PUSH4 0x9DC29FAC EQ PUSH2 0x1B5 JUMPI DUP1 PUSH4 0xA9059CBB EQ PUSH2 0x1C8 JUMPI DUP1 PUSH4 0xDD62ED3E EQ PUSH2 0x1DB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x42966C68 EQ PUSH2 0x15E JUMPI DUP1 PUSH4 0x70A08231 EQ PUSH2 0x171 JUMPI DUP1 PUSH4 0x79CC6790 EQ PUSH2 0x19A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x6FDDE03 EQ PUSH2 0xD4 JUMPI DUP1 PUSH4 0x95EA7B3 EQ PUSH2 0xF2 JUMPI DUP1 PUSH4 0x18160DDD EQ PUSH2 0x115 JUMPI DUP1 PUSH4 0x23B872DD EQ PUSH2 0x127 JUMPI DUP1 PUSH4 0x313CE567 EQ PUSH2 0x13A JUMPI DUP1 PUSH4 0x40C10F19 EQ PUSH2 0x149 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xDC PUSH2 0x214 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xE9 SWAP2 SWAP1 PUSH2 0x730 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x105 PUSH2 0x100 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH1 0x2 SLOAD JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x135 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C4 JUMP JUMPDEST PUSH2 0x2C0 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x12 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xE9 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x157 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x2E4 JUMP JUMPDEST STOP JUMPDEST PUSH2 0x15C PUSH2 0x16C CALLDATASIZE PUSH1 0x4 PUSH2 0x800 JUMP JUMPDEST PUSH2 0x342 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x17F CALLDATASIZE PUSH1 0x4 PUSH2 0x819 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1A8 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x34F JUMP JUMPDEST PUSH2 0xDC PUSH2 0x364 JUMP JUMPDEST PUSH2 0x15C PUSH2 0x1C3 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x373 JUMP JUMPDEST PUSH2 0x105 PUSH2 0x1D6 CALLDATASIZE PUSH1 0x4 PUSH2 0x79A JUMP JUMPDEST PUSH2 0x3C8 JUMP JUMPDEST PUSH2 0x119 PUSH2 0x1E9 CALLDATASIZE PUSH1 0x4 PUSH2 0x83B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 SWAP1 SWAP5 AND DUP3 MSTORE SWAP2 SWAP1 SWAP2 MSTORE KECCAK256 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E 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 0x24F SWAP1 PUSH2 0x86E JUMP JUMPDEST DUP1 ISZERO PUSH2 0x29C JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x271 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x29C 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 0x27F JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x3D6 JUMP JUMPDEST PUSH1 0x1 SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2CE DUP6 DUP3 DUP6 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x2D9 DUP6 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x334 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4C5 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH2 0x34C CALLER DUP3 PUSH2 0x4FB JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x35A DUP3 CALLER DUP4 PUSH2 0x3E8 JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x4FB JUMP JUMPDEST PUSH1 0x60 PUSH1 0x4 DUP1 SLOAD PUSH2 0x223 SWAP1 PUSH2 0x86E JUMP JUMPDEST PUSH1 0x5 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x3BE JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xE PUSH1 0x24 DUP3 ADD MSTORE PUSH14 0x4E6F742074686520627269646765 PUSH1 0x90 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 DUP3 PUSH2 0x34F JUMP JUMPDEST PUSH1 0x0 CALLER PUSH2 0x2B4 DUP2 DUP6 DUP6 PUSH2 0x466 JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH1 0x1 PUSH2 0x531 JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP7 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 SLOAD PUSH1 0x0 NOT DUP2 EQ PUSH2 0x460 JUMPI DUP2 DUP2 LT ISZERO PUSH2 0x451 JUMPI PUSH1 0x40 MLOAD PUSH4 0x7DC7A0D9 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x460 DUP5 DUP5 DUP5 DUP5 SUB PUSH1 0x0 PUSH2 0x531 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x490 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4BA JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x3E3 DUP4 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x4EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xEC442F05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E PUSH1 0x0 DUP4 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x525 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4B637E8F PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH2 0x33E DUP3 PUSH1 0x0 DUP4 PUSH2 0x606 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x55B JUMPI PUSH1 0x40 MLOAD PUSH4 0xE602DF05 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x585 JUMPI PUSH1 0x40 MLOAD PUSH4 0x4A1406B1 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x0 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP1 DUP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP8 AND DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP3 SWAP1 SSTORE DUP1 ISZERO PUSH2 0x460 JUMPI DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP5 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x8C5BE1E5EBEC7D5BD14F71427D1E84F3DD0314C0F7B2291E5B200AC8C7C3B925 DUP5 PUSH1 0x40 MLOAD PUSH2 0x5F8 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH2 0x631 JUMPI DUP1 PUSH1 0x2 PUSH1 0x0 DUP3 DUP3 SLOAD PUSH2 0x626 SWAP2 SWAP1 PUSH2 0x8A8 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP PUSH2 0x6A3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 DUP2 LT ISZERO PUSH2 0x684 JUMPI PUSH1 0x40 MLOAD PUSH4 0x391434E3 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x44 DUP2 ADD DUP4 SWAP1 MSTORE PUSH1 0x64 ADD PUSH2 0x32B JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP1 DUP3 SWAP1 SUB SWAP1 SSTORE JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH2 0x6BF JUMPI PUSH1 0x2 DUP1 SLOAD DUP3 SWAP1 SUB SWAP1 SSTORE PUSH2 0x6DE JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP1 SLOAD DUP3 ADD SWAP1 SSTORE JUMPDEST DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xDDF252AD1BE2C89B69C2B068FC378DAA952BA7F163C4A11628F55A4DF523B3EF DUP4 PUSH1 0x40 MLOAD PUSH2 0x723 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x75D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x741 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x795 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x7AD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7B6 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x7D9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7E2 DUP5 PUSH2 0x77E JUMP JUMPDEST SWAP3 POP PUSH2 0x7F0 PUSH1 0x20 DUP6 ADD PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x812 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x82B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x834 DUP3 PUSH2 0x77E JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x84E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x857 DUP4 PUSH2 0x77E JUMP JUMPDEST SWAP2 POP PUSH2 0x865 PUSH1 0x20 DUP5 ADD PUSH2 0x77E JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x1 DUP2 DUP2 SHR SWAP1 DUP3 AND DUP1 PUSH2 0x882 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 SUB PUSH2 0x8A2 JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0x2BA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLER 0xB7 ADD 0xAE 0xB3 DUP6 0xEE 0xA7 0xEB RETURN STATICCALL COINBASE DUP2 0xCF JUMPI RETURNDATASIZE 0xB5 SWAP11 EXTCODEHASH SWAP11 0x27 PUSH31 0x37AEB67C2FCB148545B64736F6C6343000814003300000000000000000000 ","sourceMap":"803:112:16:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:186;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:21;;1162:22;1144:41;;1132:2;1117:18;4293:186:2;1004:187:21;3144:97:2;3222:12;;3144:97;;;1342:25:21;;;1330:2;1315:18;3144:97:2;1196:177:21;5039:244:2;;;;;;:::i;:::-;;:::i;3002:82::-;;;3075:2;1853:36:21;;1841:2;1826:18;3002:82:2;1711:184:21;598:94:16;;;;;;:::i;:::-;;:::i;:::-;;618:87:4;;;;;;:::i;:::-;;:::i;3299:116:2:-;;;;;;:::i;:::-;-1:-1:-1;;;;;3390:18:2;3364:7;3390:18;;;;;;;;;;;;3299:116;1021:158:4;;;;;;:::i;:::-;;:::i;2276:93:2:-;;;:::i;698:101:16:-;;;;;;:::i;:::-;;:::i;3610:178:2:-;;;;;;:::i;:::-;;:::i;3846:140::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3952:18:2;;;3926:7;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3846:140;2074:89;2119:13;2151:5;2144:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2074:89;:::o;4293:186::-;4366:4;735:10:6;4420:31:2;735:10:6;4436:7:2;4445:5;4420:8;:31::i;:::-;4468:4;4461:11;;;4293:186;;;;;:::o;5039:244::-;5126:4;735:10:6;5182:37:2;5198:4;735:10:6;5213:5:2;5182:15;:37::i;:::-;5229:26;5239:4;5245:2;5249:5;5229:9;:26::i;:::-;-1:-1:-1;5272:4:2;;5039:244;-1:-1:-1;;;;5039:244:2:o;598:94:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;;;;;;;;;668:17:::1;674:2;678:6;668:5;:17::i;:::-;598:94:::0;;:::o;618:87:4:-;672:26;735:10:6;692:5:4;672;:26::i;:::-;618:87;:::o;1021:158::-;1096:45;1112:7;735:10:6;1135:5:4;1096:15;:45::i;:::-;1151:21;1157:7;1166:5;1151;:21::i;2276:93:2:-;2323:13;2355:7;2348:14;;;;;:::i;698:101:16:-;548:7;;-1:-1:-1;;;;;548:7:16;534:10;:21;526:48;;;;-1:-1:-1;;;526:48:16;;3128:2:21;526:48:16;;;3110:21:21;3167:2;3147:18;;;3140:30;-1:-1:-1;;;3186:18:21;;;3179:44;3240:18;;526:48:16;2926:338:21;526:48:16;770:22:::1;779:4;785:6;770:8;:22::i;3610:178:2:-:0;3679:4;735:10:6;3733:27:2;735:10:6;3750:2:2;3754:5;3733:9;:27::i;8989:128::-;9073:37;9082:5;9089:7;9098:5;9105:4;9073:8;:37::i;:::-;8989:128;;;:::o;10663:477::-;-1:-1:-1;;;;;3952:18:2;;;10762:24;3952:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;10828:37:2;;10824:310;;10904:5;10885:16;:24;10881:130;;;10936:60;;-1:-1:-1;;;10936:60:2;;-1:-1:-1;;;;;3489:32:21;;10936:60:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;10936:60:2;3269:345:21;10881:130:2;11052:57;11061:5;11068:7;11096:5;11077:16;:24;11103:5;11052:8;:57::i;:::-;10752:388;10663:477;;;:::o;5656:300::-;-1:-1:-1;;;;;5739:18:2;;5735:86;;5780:30;;-1:-1:-1;;;5780:30:2;;5807:1;5780:30;;;3765:51:21;3738:18;;5780:30:2;3619:203:21;5735:86:2;-1:-1:-1;;;;;5834:16:2;;5830:86;;5873:32;;-1:-1:-1;;;5873:32:2;;5902:1;5873:32;;;3765:51:21;3738:18;;5873:32:2;3619:203:21;5830:86:2;5925:24;5933:4;5939:2;5943:5;5925:7;:24::i;7721:208::-;-1:-1:-1;;;;;7791:21:2;;7787:91;;7835:32;;-1:-1:-1;;;7835:32:2;;7864:1;7835:32;;;3765:51:21;3738:18;;7835:32:2;3619:203:21;7787:91:2;7887:35;7903:1;7907:7;7916:5;7887:7;:35::i;8247:206::-;-1:-1:-1;;;;;8317:21:2;;8313:89;;8361:30;;-1:-1:-1;;;8361:30:2;;8388:1;8361:30;;;3765:51:21;3738:18;;8361:30:2;3619:203:21;8313:89:2;8411:35;8419:7;8436:1;8440:5;8411:7;:35::i;9949:432::-;-1:-1:-1;;;;;10061:19:2;;10057:89;;10103:32;;-1:-1:-1;;;10103:32:2;;10132:1;10103:32;;;3765:51:21;3738:18;;10103:32:2;3619:203:21;10057:89:2;-1:-1:-1;;;;;10159:21:2;;10155:90;;10203:31;;-1:-1:-1;;;10203:31:2;;10231:1;10203:31;;;3765:51:21;3738:18;;10203:31:2;3619:203:21;10155:90:2;-1:-1:-1;;;;;10254:18:2;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:35;;;10299:76;;;;10349:7;-1:-1:-1;;;;;10333:31:2;10342:5;-1:-1:-1;;;;;10333:31:2;;10358:5;10333:31;;;;1342:25:21;;1330:2;1315:18;;1196:177;10333:31:2;;;;;;;;9949:432;;;;:::o;6271:1107::-;-1:-1:-1;;;;;6360:18:2;;6356:540;;6512:5;6496:12;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;6356:540:2;;-1:-1:-1;6356:540:2;;-1:-1:-1;;;;;6570:15:2;;6548:19;6570:15;;;;;;;;;;;6603:19;;;6599:115;;;6649:50;;-1:-1:-1;;;6649:50:2;;-1:-1:-1;;;;;3489:32:21;;6649:50:2;;;3471:51:21;3538:18;;;3531:34;;;3581:18;;;3574:34;;;3444:18;;6649:50:2;3269:345:21;6599:115:2;-1:-1:-1;;;;;6834:15:2;;:9;:15;;;;;;;;;;6852:19;;;;6834:37;;6356:540;-1:-1:-1;;;;;6910:16:2;;6906:425;;7073:12;:21;;;;;;;6906:425;;;-1:-1:-1;;;;;7284:13:2;;:9;:13;;;;;;;;;;:22;;;;;;6906:425;7361:2;-1:-1:-1;;;;;7346:25:2;7355:4;-1:-1:-1;;;;;7346:25:2;;7365:5;7346:25;;;;1342::21;;1330:2;1315:18;;1196:177;7346:25:2;;;;;;;;6271:1107;;;:::o;14:548:21:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:21;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:21:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:21;;1900:180;-1:-1:-1;1900:180:21:o;2085:186::-;2144:6;2197:2;2185:9;2176:7;2172:23;2168:32;2165:52;;;2213:1;2210;2203:12;2165:52;2236:29;2255:9;2236:29;:::i;:::-;2226:39;2085:186;-1:-1:-1;;;2085:186:21:o;2276:260::-;2344:6;2352;2405:2;2393:9;2384:7;2380:23;2376:32;2373:52;;;2421:1;2418;2411:12;2373:52;2444:29;2463:9;2444:29;:::i;:::-;2434:39;;2492:38;2526:2;2515:9;2511:18;2492:38;:::i;:::-;2482:48;;2276:260;;;;;:::o;2541:380::-;2620:1;2616:12;;;;2663;;;2684:61;;2738:4;2730:6;2726:17;2716:27;;2684:61;2791:2;2783:6;2780:14;2760:18;2757:38;2754:161;;2837:10;2832:3;2828:20;2825:1;2818:31;2872:4;2869:1;2862:15;2900:4;2897:1;2890:15;2754:161;;2541:380;;;:::o;3827:222::-;3892:9;;;3913:10;;;3910:133;;;3965:10;3960:3;3956:20;3953:1;3946:31;4000:4;3997:1;3990:15;4028:4;4025:1;4018:15"},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","burn(uint256)":"42966c68","burnFrom(address,uint256)":"79cc6790","decimals()":"313ce567","mint(address,uint256)":"40c10f19","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"bridge_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"allowance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"ERC20InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC20InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"ERC20InvalidSpender\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ERC20InsufficientAllowance(address,uint256,uint256)\":[{\"details\":\"Indicates a failure with the `spender`\\u2019s `allowance`. Used in transfers.\",\"params\":{\"allowance\":\"Amount of tokens a `spender` is allowed to operate with.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC20InsufficientBalance(address,uint256,uint256)\":[{\"details\":\"Indicates an error related to the current `balance` of a `sender`. Used in transfers.\",\"params\":{\"balance\":\"Current balance for the interacting account.\",\"needed\":\"Minimum amount required to perform a transfer.\",\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC20InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC20InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC20InvalidSpender(address)\":[{\"details\":\"Indicates a failure with the `spender` to be approved. Used in approvals.\",\"params\":{\"spender\":\"Address that may be allowed to operate on tokens without being their owner.\"}}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `value` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys a `value` amount of tokens from the caller. See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"Destroys a `value` amount of tokens from `account`, deducting from the caller's allowance. See {ERC20-_burn} and {ERC20-allowance}. Requirements: - the caller must have allowance for ``accounts``'s tokens of at least `value`.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `value`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `value`. - the caller must have allowance for ``from``'s tokens of at least `value`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ERC20Bridge.sol\":\"MyToken\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xc3e1fa9d1987f8d349dfb4d6fe93bf2ca014b52ba335cfac30bfe71e357e6f80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5703ccdeb7b1d685e375ed719117e9edf2ab4bc544f24f23b0d50ec82257229\",\"dweb:/ipfs/QmTdwkbQq7owpCiyuzE7eh5LrD2ddrBCZ5WHVsWPi1RrTS\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xc6a8ff0ea489379b61faa647490411b80102578440ab9d84e9a957cc12164e70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ea104e577e63faea3b69c415637e99e755dcbf64c5833d7140c35a714d6d90c\",\"dweb:/ipfs/Qmau6x4Ns9XdyynRCNNp3RhLqijJjFm7z5fyZazfYFGYdq\"]},\"@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol\":{\"keccak256\":\"0x2659248df25e34000ed214b3dc8da2160bc39874c992b477d9e2b1b3283dc073\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c345af1b0e7ea28d1216d6a04ab28f5534a5229b9edf9ca3cd0e84950ae58d26\",\"dweb:/ipfs/QmY63jtSrYpLRe8Gj1ep2vMDCKxGNNG3hnNVKBVnrs2nmA\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0xaa761817f6cd7892fcf158b3c776b34551cde36f48ff9703d53898bc45a94ea2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0ad7c8d4d08938c8dfc43d75a148863fb324b80cf53e0a36f7e5a4ac29008850\",\"dweb:/ipfs/QmcrhfPgVNf5mkdhQvy1pMv51TFokD3Y4Wa5WZhFqVh8UV\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x75a4ee64c68dbd5f38bddd06e664a64c8271b4caa554fb6f0607dfd672bb4bf3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c4e6cb30d3601e2f7af5af09e265508147cb275a8dcd99d6f7363645cc56867\",\"dweb:/ipfs/QmNgFkoXNWoUbAyw71rr1sKQ95Rj2GfvYiWg79xEYDn2NY\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/ERC20Bridge.sol\":{\"keccak256\":\"0xba3f8b86233053bf90a6df93e573b7c887839a7983f03a50fc3ac083b712c97a\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://8927b354595525561dca5682973c44a98a43b0e51eb12a8db265f5b7e848b392\",\"dweb:/ipfs/QmYU24nSAXbnxn4Tj98dxyg9BnfQUv3n1Dh24gf7P4aaQ6\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/Relayer.sol":{"Relayer":{"abi":[{"inputs":[{"internalType":"contract ValidatorManager","name":"_validatorManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"Create2EmptyBytecode","type":"error"},{"inputs":[],"name":"Create2FailedDeployment","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"Create2InsufficientBalance","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bytes4","name":"callback","type":"bytes4"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"response","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Dispatched","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"bytes","name":"call","type":"bytes"},{"indexed":false,"internalType":"bool","name":"readonly","type":"bool"},{"indexed":false,"internalType":"bytes4","name":"callback","type":"bytes4"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Relayed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"bytes","name":"call","type":"bytes"},{"indexed":false,"internalType":"bool","name":"success","type":"bool"},{"indexed":false,"internalType":"bytes","name":"response","type":"bytes"},{"indexed":true,"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"Resumed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"twin","type":"address"}],"name":"TwinDeployment","type":"event"},{"inputs":[{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"bytes","name":"bytecode","type":"bytes"}],"name":"deployTwin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"},{"internalType":"bytes4","name":"callback","type":"bytes4"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"dispatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"query","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"},{"internalType":"bool","name":"readonly","type":"bool"},{"internalType":"bytes4","name":"callback","type":"bytes4"}],"name":"relay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"bytes4","name":"callback","type":"bytes4"},{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"resume","outputs":[],"stateMutability":"payable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4110":{"entryPoint":null,"id":4110,"parameterSlots":1,"returnSlots":0},"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory":{"entryPoint":84,"id":null,"parameterSlots":2,"returnSlots":1}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:331:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"120:209:21","statements":[{"body":{"nodeType":"YulBlock","src":"166:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"175:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"178:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"168:6:21"},"nodeType":"YulFunctionCall","src":"168:12:21"},"nodeType":"YulExpressionStatement","src":"168:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"141:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"150:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"137:3:21"},"nodeType":"YulFunctionCall","src":"137:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"162:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"133:3:21"},"nodeType":"YulFunctionCall","src":"133:32:21"},"nodeType":"YulIf","src":"130:52:21"},{"nodeType":"YulVariableDeclaration","src":"191:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"210:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"204:5:21"},"nodeType":"YulFunctionCall","src":"204:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"195:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"283:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"292:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"285:6:21"},"nodeType":"YulFunctionCall","src":"285:12:21"},"nodeType":"YulExpressionStatement","src":"285:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"242:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"253:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"268:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"273:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"264:3:21"},"nodeType":"YulFunctionCall","src":"264:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"277:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"260:3:21"},"nodeType":"YulFunctionCall","src":"260:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"249:3:21"},"nodeType":"YulFunctionCall","src":"249:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"239:2:21"},"nodeType":"YulFunctionCall","src":"239:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:50:21"},"nodeType":"YulIf","src":"229:70:21"},{"nodeType":"YulAssignment","src":"308:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"318:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"308:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"86:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"97:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"109:6:21","type":""}],"src":"14:315:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_contract$_ValidatorManager_$4775_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"608060405234801561001057600080fd5b506040516112f03803806112f083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61125d806100936000396000f3fe60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x12F0 CODESIZE SUB DUP1 PUSH2 0x12F0 DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x54 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 SWAP1 SWAP3 AND SWAP2 SWAP1 SWAP2 OR SWAP1 SSTORE PUSH2 0x84 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x66 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x7D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH2 0x125D DUP1 PUSH2 0x93 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB0A6BD1 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x139B4A87 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x5390E474 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0xADDE344C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xC1B2F734 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0xC55 JUMP JUMPDEST PUSH2 0x11D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0x7F CALLDATASIZE PUSH1 0x4 PUSH2 0xCF5 JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x37F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH2 0xEA CALLDATASIZE PUSH1 0x4 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8E SWAP3 SWAP2 SWAP1 PUSH2 0xE90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x118 CALLDATASIZE PUSH1 0x4 PUSH2 0xEB3 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x105B1C9958591E481C995CDD5B5959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1BE DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP6 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63B4581C24AA1258B32A3ED8AA708A03DDA9F962411C5C23B78087B68CF13856 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 SWAP3 PUSH32 0x7AB318DA6C14CBF3D1875045814B566FDF036863BCC775BB3A6959EAD4CA8E15 SWAP3 PUSH2 0x33E SWAP3 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x361 DUP4 PUSH2 0x103A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C4 PUSH1 0x0 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x885 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x189ACDBD PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC4D66DE8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH32 0xA5A933C2D9902E11B856EB9AD37FFC16A70221D90F75F5D5219D9DD600F9FC9 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x4AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x82DCC731 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x82DCC731 SWAP1 PUSH2 0x4D8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x51D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x592 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x105B1C9958591E48191A5CDC185D18DA1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5B0 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x5CB DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5D903F03 DUP10 DUP10 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x644 SWAP3 SWAP2 SWAP1 PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x68B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF3DFF5C6A7D612C95DE0AEF2822489AEB43D5DA7C5140DE276F31417F9475D72 DUP9 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x717 DUP4 PUSH2 0x905 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CA3E1FD PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7947C3FA SWAP1 PUSH2 0x74A SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x767 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x78B SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x7CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E76616C6964207369676E617475726573 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 SLOAD DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x3E99D941 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x3E99D941 SWAP2 PUSH2 0x800 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x841 SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x880 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x4E6F2073757065726D616A6F72697479 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x8B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x392EFB2B PUSH1 0xE2 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x17F JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x8D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x457 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3A0BA961 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP3 MLOAD PUSH2 0x940 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x923 SWAP3 SWAP2 SWAP1 PUSH2 0x11CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x94D DUP4 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x96D JUMPI PUSH2 0x96D PUSH2 0xAF1 JUMP 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 0x997 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x9A1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xA12 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xA3E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xA5C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xA74 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xA88 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xA9A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAA6 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xAEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB30 JUMPI PUSH2 0xB30 PUSH2 0xAF1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB52 JUMPI PUSH2 0xB52 PUSH2 0xAF1 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB84 PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0xB07 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xB99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0xBE4 JUMPI PUSH2 0xBE4 PUSH2 0xAF1 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH2 0xBF3 DUP4 DUP3 ADD PUSH2 0xB07 JUMP JUMPDEST SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP1 DUP9 DUP7 GT ISZERO PUSH2 0xC0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 DUP9 ADD SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0xC49 JUMPI DUP3 CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0xC2B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC39 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0xB60 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP5 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0xC13 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC77 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xC85 PUSH1 0x20 DUP9 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0xC95 DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCBE DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP4 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xCDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE8 DUP10 DUP3 DUP11 ADD PUSH2 0xBB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD14 DUP6 PUSH2 0xAAC JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3C DUP8 DUP3 DUP9 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0xD4D DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP2 POP PUSH2 0xD5B PUSH1 0x60 DUP7 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xDAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xDCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE00 DUP5 PUSH2 0xAAC JUMP JUMPDEST SWAP3 POP PUSH2 0xE0E PUSH1 0x20 DUP6 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE36 DUP7 DUP3 DUP8 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE5B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE43 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE7C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xEAB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xECC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xED5 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xEE3 PUSH1 0x20 DUP9 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF0C DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP6 POP PUSH2 0xCBE PUSH1 0x60 DUP11 ADD PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF56 SWAP1 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF83 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xFA5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xE40 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xFC2 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xE64 JUMP JUMPDEST DUP5 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xFDC DUP2 DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1012 SWAP1 DUP4 ADD DUP8 PUSH2 0xE64 JUMP JUMPDEST SWAP5 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x105A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xEAB SWAP1 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1098 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x10A3 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x10D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x10DF PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x10F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1105 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP5 AND DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x113C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD DUP5 DUP4 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0x60 DUP7 ADD SWAP2 POP PUSH1 0x60 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP3 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11A1 JUMPI PUSH1 0x5F NOT DUP9 DUP8 SUB ADD DUP5 MSTORE PUSH2 0x118F DUP7 DUP4 MLOAD PUSH2 0xE64 JUMP JUMPDEST SWAP6 POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1173 JUMP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x457 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1204 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x121B DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xCC GASPRICE PUSH19 0xA930C389A44E03E7195DB7E4B2A21F2EC377B 0xAF 0xEF SSTORE 0xEE 0x27 LOG0 0xB3 MOD 0xA6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"410:4002:17:-:0;;;847:101;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;905:16;:36;;-1:-1:-1;;;;;;905:36:17;-1:-1:-1;;;;;905:36:17;;;;;;;;;;410:4002;;14:315:21;109:6;162:2;150:9;141:7;137:23;133:32;130:52;;;178:1;175;168:12;130:52;204:16;;-1:-1:-1;;;;;249:31:21;;239:42;;229:70;;295:1;292;285:12;229:70;318:5;14:315;-1:-1:-1;;;14:315:21:o;:::-;410:4002:17;;;;;;"},"deployedBytecode":{"functionDebugData":{"@deployTwin_4099":{"entryPoint":895,"id":4099,"parameterSlots":3,"returnSlots":1},"@deploy_1145":{"entryPoint":2181,"id":1145,"parameterSlots":3,"returnSlots":1},"@dispatch_4304":{"entryPoint":1321,"id":4304,"parameterSlots":6,"returnSlots":0},"@log10_2731":{"entryPoint":2515,"id":2731,"parameterSlots":1,"returnSlots":1},"@query_4339":{"entryPoint":1118,"id":4339,"parameterSlots":3,"returnSlots":2},"@relay_4178":{"entryPoint":757,"id":4178,"parameterSlots":4,"returnSlots":1},"@resume_4433":{"entryPoint":285,"id":4433,"parameterSlots":6,"returnSlots":0},"@toEthSignedMessageHash_1824":{"entryPoint":2309,"id":1824,"parameterSlots":1,"returnSlots":1},"@toString_1248":{"entryPoint":2368,"id":1248,"parameterSlots":1,"returnSlots":1},"@validateRequest_4223":{"entryPoint":1804,"id":4223,"parameterSlots":2,"returnSlots":0},"abi_decode_address":{"entryPoint":2732,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_array_bytes_dyn":{"entryPoint":2998,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes":{"entryPoint":2912,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_bytes4":{"entryPoint":2760,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr":{"entryPoint":3554,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptrt_bytes4t_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":3763,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_bytes4t_boolt_bytes_memory_ptrt_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":3157,"id":null,"parameterSlots":2,"returnSlots":6},"abi_decode_tuple_t_addresst_bytes_memory_ptrt_boolt_bytes4":{"entryPoint":3317,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_bool_fromMemory":{"entryPoint":4527,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory":{"entryPoint":4229,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes_calldata_ptr":{"entryPoint":3430,"id":null,"parameterSlots":2,"returnSlots":3},"abi_encode_bytes":{"entryPoint":3684,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":3987,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes26_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":4556,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_address__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__to_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__fromStack_reversed":{"entryPoint":4070,"id":null,"parameterSlots":7,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":3866,"id":null,"parameterSlots":6,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4193,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":3728,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr_t_uint256__to_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":3944,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":4421,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_bytes4_t_bool_t_bytes_memory_ptr__to_t_bytes4_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4370,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":4015,"id":null,"parameterSlots":4,"returnSlots":1},"abi_encode_tuple_t_contract$_Relayer_$4434__to_t_address__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":3,"returnSlots":1},"allocate_memory":{"entryPoint":2823,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":2872,"id":null,"parameterSlots":1,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":3648,"id":null,"parameterSlots":3,"returnSlots":0},"increment_t_uint256":{"entryPoint":4154,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x12":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":2801,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_bool":{"entryPoint":2784,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:15514:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"63:124:21","statements":[{"nodeType":"YulAssignment","src":"73:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"95:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"82:12:21"},"nodeType":"YulFunctionCall","src":"82:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"73:5:21"}]},{"body":{"nodeType":"YulBlock","src":"165:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"174:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"177:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"167:6:21"},"nodeType":"YulFunctionCall","src":"167:12:21"},"nodeType":"YulExpressionStatement","src":"167:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"124:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"135:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"150:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"155:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"146:3:21"},"nodeType":"YulFunctionCall","src":"146:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"159:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"142:3:21"},"nodeType":"YulFunctionCall","src":"142:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"131:3:21"},"nodeType":"YulFunctionCall","src":"131:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"121:2:21"},"nodeType":"YulFunctionCall","src":"121:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"114:6:21"},"nodeType":"YulFunctionCall","src":"114:50:21"},"nodeType":"YulIf","src":"111:70:21"}]},"name":"abi_decode_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"42:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"53:5:21","type":""}],"src":"14:173:21"},{"body":{"nodeType":"YulBlock","src":"240:125:21","statements":[{"nodeType":"YulAssignment","src":"250:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"272:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"259:12:21"},"nodeType":"YulFunctionCall","src":"259:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"250:5:21"}]},{"body":{"nodeType":"YulBlock","src":"343:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"352:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"355:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"345:6:21"},"nodeType":"YulFunctionCall","src":"345:12:21"},"nodeType":"YulExpressionStatement","src":"345:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"301:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"312:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"323:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"328:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"319:3:21"},"nodeType":"YulFunctionCall","src":"319:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"308:3:21"},"nodeType":"YulFunctionCall","src":"308:32:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"298:2:21"},"nodeType":"YulFunctionCall","src":"298:43:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"291:6:21"},"nodeType":"YulFunctionCall","src":"291:51:21"},"nodeType":"YulIf","src":"288:71:21"}]},"name":"abi_decode_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"219:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"230:5:21","type":""}],"src":"192:173:21"},{"body":{"nodeType":"YulBlock","src":"412:76:21","statements":[{"body":{"nodeType":"YulBlock","src":"466:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"475:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"478:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"468:6:21"},"nodeType":"YulFunctionCall","src":"468:12:21"},"nodeType":"YulExpressionStatement","src":"468:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"435:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"456:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"449:6:21"},"nodeType":"YulFunctionCall","src":"449:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"442:6:21"},"nodeType":"YulFunctionCall","src":"442:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"432:2:21"},"nodeType":"YulFunctionCall","src":"432:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"425:6:21"},"nodeType":"YulFunctionCall","src":"425:40:21"},"nodeType":"YulIf","src":"422:60:21"}]},"name":"validator_revert_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"401:5:21","type":""}],"src":"370:118:21"},{"body":{"nodeType":"YulBlock","src":"525:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"542:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"549:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"554:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"545:3:21"},"nodeType":"YulFunctionCall","src":"545:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"535:6:21"},"nodeType":"YulFunctionCall","src":"535:31:21"},"nodeType":"YulExpressionStatement","src":"535:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"582:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"585:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"575:6:21"},"nodeType":"YulFunctionCall","src":"575:15:21"},"nodeType":"YulExpressionStatement","src":"575:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"606:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"609:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"599:6:21"},"nodeType":"YulFunctionCall","src":"599:15:21"},"nodeType":"YulExpressionStatement","src":"599:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"493:127:21"},{"body":{"nodeType":"YulBlock","src":"670:230:21","statements":[{"nodeType":"YulAssignment","src":"680:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"696:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"690:5:21"},"nodeType":"YulFunctionCall","src":"690:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"680:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"708:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"730:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"746:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"752:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"742:3:21"},"nodeType":"YulFunctionCall","src":"742:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"761:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"757:3:21"},"nodeType":"YulFunctionCall","src":"757:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"738:3:21"},"nodeType":"YulFunctionCall","src":"738:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"726:3:21"},"nodeType":"YulFunctionCall","src":"726:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"712:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"841:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"843:16:21"},"nodeType":"YulFunctionCall","src":"843:18:21"},"nodeType":"YulExpressionStatement","src":"843:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"784:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"796:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:21"},"nodeType":"YulFunctionCall","src":"781:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"820:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"832:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"817:2:21"},"nodeType":"YulFunctionCall","src":"817:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"778:2:21"},"nodeType":"YulFunctionCall","src":"778:62:21"},"nodeType":"YulIf","src":"775:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"879:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"883:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"872:6:21"},"nodeType":"YulFunctionCall","src":"872:22:21"},"nodeType":"YulExpressionStatement","src":"872:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"650:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"659:6:21","type":""}],"src":"625:275:21"},{"body":{"nodeType":"YulBlock","src":"962:129:21","statements":[{"body":{"nodeType":"YulBlock","src":"1006:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1008:16:21"},"nodeType":"YulFunctionCall","src":"1008:18:21"},"nodeType":"YulExpressionStatement","src":"1008:18:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"978:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"986:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"975:2:21"},"nodeType":"YulFunctionCall","src":"975:30:21"},"nodeType":"YulIf","src":"972:56:21"},{"nodeType":"YulAssignment","src":"1037:48:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1057:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1065:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1053:3:21"},"nodeType":"YulFunctionCall","src":"1053:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1074:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1070:3:21"},"nodeType":"YulFunctionCall","src":"1070:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1049:3:21"},"nodeType":"YulFunctionCall","src":"1049:29:21"},{"kind":"number","nodeType":"YulLiteral","src":"1080:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1045:3:21"},"nodeType":"YulFunctionCall","src":"1045:40:21"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"1037:4:21"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"942:6:21","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"953:4:21","type":""}],"src":"905:186:21"},{"body":{"nodeType":"YulBlock","src":"1148:410:21","statements":[{"body":{"nodeType":"YulBlock","src":"1197:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1206:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1209:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1199:6:21"},"nodeType":"YulFunctionCall","src":"1199:12:21"},"nodeType":"YulExpressionStatement","src":"1199:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1176:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1184:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1172:3:21"},"nodeType":"YulFunctionCall","src":"1172:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"1191:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1168:3:21"},"nodeType":"YulFunctionCall","src":"1168:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1161:6:21"},"nodeType":"YulFunctionCall","src":"1161:35:21"},"nodeType":"YulIf","src":"1158:55:21"},{"nodeType":"YulVariableDeclaration","src":"1222:30:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1245:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1232:12:21"},"nodeType":"YulFunctionCall","src":"1232:20:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1226:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1261:63:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1320:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1292:27:21"},"nodeType":"YulFunctionCall","src":"1292:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1276:15:21"},"nodeType":"YulFunctionCall","src":"1276:48:21"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"1265:7:21","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1340:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1349:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1333:6:21"},"nodeType":"YulFunctionCall","src":"1333:19:21"},"nodeType":"YulExpressionStatement","src":"1333:19:21"},{"body":{"nodeType":"YulBlock","src":"1400:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1409:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1412:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1402:6:21"},"nodeType":"YulFunctionCall","src":"1402:12:21"},"nodeType":"YulExpressionStatement","src":"1402:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1375:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1383:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1371:3:21"},"nodeType":"YulFunctionCall","src":"1371:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"1388:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1367:3:21"},"nodeType":"YulFunctionCall","src":"1367:26:21"},{"name":"end","nodeType":"YulIdentifier","src":"1395:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1364:2:21"},"nodeType":"YulFunctionCall","src":"1364:35:21"},"nodeType":"YulIf","src":"1361:55:21"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1442:7:21"},{"kind":"number","nodeType":"YulLiteral","src":"1451:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1438:3:21"},"nodeType":"YulFunctionCall","src":"1438:18:21"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1462:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1470:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1458:3:21"},"nodeType":"YulFunctionCall","src":"1458:17:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1477:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1425:12:21"},"nodeType":"YulFunctionCall","src":"1425:55:21"},"nodeType":"YulExpressionStatement","src":"1425:55:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"1504:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1513:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1500:3:21"},"nodeType":"YulFunctionCall","src":"1500:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1518:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1496:3:21"},"nodeType":"YulFunctionCall","src":"1496:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"1525:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1489:6:21"},"nodeType":"YulFunctionCall","src":"1489:38:21"},"nodeType":"YulExpressionStatement","src":"1489:38:21"},{"nodeType":"YulAssignment","src":"1536:16:21","value":{"name":"array_1","nodeType":"YulIdentifier","src":"1545:7:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"1536:5:21"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1122:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"1130:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1138:5:21","type":""}],"src":"1096:462:21"},{"body":{"nodeType":"YulBlock","src":"1625:879:21","statements":[{"body":{"nodeType":"YulBlock","src":"1674:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1683:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1686:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1676:6:21"},"nodeType":"YulFunctionCall","src":"1676:12:21"},"nodeType":"YulExpressionStatement","src":"1676:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1653:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1661:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1649:3:21"},"nodeType":"YulFunctionCall","src":"1649:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"1668:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1645:3:21"},"nodeType":"YulFunctionCall","src":"1645:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1638:6:21"},"nodeType":"YulFunctionCall","src":"1638:35:21"},"nodeType":"YulIf","src":"1635:55:21"},{"nodeType":"YulVariableDeclaration","src":"1699:30:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1722:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1709:12:21"},"nodeType":"YulFunctionCall","src":"1709:20:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1703:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1738:14:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1748:4:21","type":"","value":"0x20"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1742:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1761:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1771:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"1765:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1812:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1814:16:21"},"nodeType":"YulFunctionCall","src":"1814:18:21"},"nodeType":"YulExpressionStatement","src":"1814:18:21"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1804:2:21"},{"name":"_3","nodeType":"YulIdentifier","src":"1808:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1801:2:21"},"nodeType":"YulFunctionCall","src":"1801:10:21"},"nodeType":"YulIf","src":"1798:36:21"},{"nodeType":"YulVariableDeclaration","src":"1843:20:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1857:1:21","type":"","value":"5"},{"name":"_1","nodeType":"YulIdentifier","src":"1860:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1853:3:21"},"nodeType":"YulFunctionCall","src":"1853:10:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"1847:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1872:39:21","value":{"arguments":[{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"1903:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1907:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1899:3:21"},"nodeType":"YulFunctionCall","src":"1899:11:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1883:15:21"},"nodeType":"YulFunctionCall","src":"1883:28:21"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1876:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1920:16:21","value":{"name":"dst","nodeType":"YulIdentifier","src":"1933:3:21"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"1924:5:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1952:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1957:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1945:6:21"},"nodeType":"YulFunctionCall","src":"1945:15:21"},"nodeType":"YulExpressionStatement","src":"1945:15:21"},{"nodeType":"YulAssignment","src":"1969:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1980:3:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1985:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:21"},"nodeType":"YulFunctionCall","src":"1976:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1969:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"1997:38:21","value":{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2019:6:21"},{"name":"_4","nodeType":"YulIdentifier","src":"2027:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2015:3:21"},"nodeType":"YulFunctionCall","src":"2015:15:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2032:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2011:3:21"},"nodeType":"YulFunctionCall","src":"2011:24:21"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2001:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2063:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2072:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2075:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2065:6:21"},"nodeType":"YulFunctionCall","src":"2065:12:21"},"nodeType":"YulExpressionStatement","src":"2065:12:21"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2050:6:21"},{"name":"end","nodeType":"YulIdentifier","src":"2058:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2047:2:21"},"nodeType":"YulFunctionCall","src":"2047:15:21"},"nodeType":"YulIf","src":"2044:35:21"},{"nodeType":"YulVariableDeclaration","src":"2088:26:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2103:6:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2111:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2099:3:21"},"nodeType":"YulFunctionCall","src":"2099:15:21"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2092:3:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2179:296:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2193:36:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2225:3:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2212:12:21"},"nodeType":"YulFunctionCall","src":"2212:17:21"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"2197:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2277:74:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2295:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2305:1:21","type":"","value":"0"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2299:2:21","type":""}]},{"expression":{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"2330:2:21"},{"name":"_5","nodeType":"YulIdentifier","src":"2334:2:21"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2323:6:21"},"nodeType":"YulFunctionCall","src":"2323:14:21"},"nodeType":"YulExpressionStatement","src":"2323:14:21"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"2248:11:21"},{"name":"_3","nodeType":"YulIdentifier","src":"2261:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2245:2:21"},"nodeType":"YulFunctionCall","src":"2245:19:21"},"nodeType":"YulIf","src":"2242:109:21"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2371:3:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2401:6:21"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"2409:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2397:3:21"},"nodeType":"YulFunctionCall","src":"2397:24:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2423:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2393:3:21"},"nodeType":"YulFunctionCall","src":"2393:33:21"},{"name":"end","nodeType":"YulIdentifier","src":"2428:3:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"2376:16:21"},"nodeType":"YulFunctionCall","src":"2376:56:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2364:6:21"},"nodeType":"YulFunctionCall","src":"2364:69:21"},"nodeType":"YulExpressionStatement","src":"2364:69:21"},{"nodeType":"YulAssignment","src":"2446:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2457:3:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2462:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2453:3:21"},"nodeType":"YulFunctionCall","src":"2453:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2446:3:21"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2134:3:21"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2139:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2131:2:21"},"nodeType":"YulFunctionCall","src":"2131:15:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2147:23:21","statements":[{"nodeType":"YulAssignment","src":"2149:19:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2160:3:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2165:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2156:3:21"},"nodeType":"YulFunctionCall","src":"2156:12:21"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2149:3:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2127:3:21","statements":[]},"src":"2123:352:21"},{"nodeType":"YulAssignment","src":"2484:14:21","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"2493:5:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"2484:5:21"}]}]},"name":"abi_decode_array_bytes_dyn","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"1599:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"1607:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"1615:5:21","type":""}],"src":"1563:941:21"},{"body":{"nodeType":"YulBlock","src":"2703:726:21","statements":[{"body":{"nodeType":"YulBlock","src":"2750:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2759:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2762:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2752:6:21"},"nodeType":"YulFunctionCall","src":"2752:12:21"},"nodeType":"YulExpressionStatement","src":"2752:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2724:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2733:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2720:3:21"},"nodeType":"YulFunctionCall","src":"2720:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2745:3:21","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2716:3:21"},"nodeType":"YulFunctionCall","src":"2716:33:21"},"nodeType":"YulIf","src":"2713:53:21"},{"nodeType":"YulAssignment","src":"2775:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2804:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"2785:18:21"},"nodeType":"YulFunctionCall","src":"2785:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2775:6:21"}]},{"nodeType":"YulAssignment","src":"2823:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2855:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2866:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2851:3:21"},"nodeType":"YulFunctionCall","src":"2851:18:21"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"2833:17:21"},"nodeType":"YulFunctionCall","src":"2833:37:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"2823:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2879:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2909:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2920:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2905:3:21"},"nodeType":"YulFunctionCall","src":"2905:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2892:12:21"},"nodeType":"YulFunctionCall","src":"2892:32:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"2883:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2955:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"2933:21:21"},"nodeType":"YulFunctionCall","src":"2933:28:21"},"nodeType":"YulExpressionStatement","src":"2933:28:21"},{"nodeType":"YulAssignment","src":"2970:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2980:5:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"2970:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2994:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3025:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3036:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3021:3:21"},"nodeType":"YulFunctionCall","src":"3021:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3008:12:21"},"nodeType":"YulFunctionCall","src":"3008:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2998:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3049:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3059:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3053:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3104:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3113:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3116:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3106:6:21"},"nodeType":"YulFunctionCall","src":"3106:12:21"},"nodeType":"YulExpressionStatement","src":"3106:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3092:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3100:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3089:2:21"},"nodeType":"YulFunctionCall","src":"3089:14:21"},"nodeType":"YulIf","src":"3086:34:21"},{"nodeType":"YulAssignment","src":"3129:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3160:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"3171:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3156:3:21"},"nodeType":"YulFunctionCall","src":"3156:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3180:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3139:16:21"},"nodeType":"YulFunctionCall","src":"3139:49:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3129:6:21"}]},{"nodeType":"YulAssignment","src":"3197:43:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3224:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3235:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3220:3:21"},"nodeType":"YulFunctionCall","src":"3220:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3207:12:21"},"nodeType":"YulFunctionCall","src":"3207:33:21"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"3197:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3249:49:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3282:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3293:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3278:3:21"},"nodeType":"YulFunctionCall","src":"3278:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3265:12:21"},"nodeType":"YulFunctionCall","src":"3265:33:21"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"3253:8:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3327:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3336:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3339:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3329:6:21"},"nodeType":"YulFunctionCall","src":"3329:12:21"},"nodeType":"YulExpressionStatement","src":"3329:12:21"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"3313:8:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3323:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3310:2:21"},"nodeType":"YulFunctionCall","src":"3310:16:21"},"nodeType":"YulIf","src":"3307:36:21"},{"nodeType":"YulAssignment","src":"3352:71:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3393:9:21"},{"name":"offset_1","nodeType":"YulIdentifier","src":"3404:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3389:3:21"},"nodeType":"YulFunctionCall","src":"3389:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3415:7:21"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"3362:26:21"},"nodeType":"YulFunctionCall","src":"3362:61:21"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"3352:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes4t_boolt_bytes_memory_ptrt_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2629:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2640:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2652:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2660:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2668:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2676:6:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"2684:6:21","type":""},{"name":"value5","nodeType":"YulTypedName","src":"2692:6:21","type":""}],"src":"2509:920:21"},{"body":{"nodeType":"YulBlock","src":"3560:470:21","statements":[{"body":{"nodeType":"YulBlock","src":"3607:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3616:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3619:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3609:6:21"},"nodeType":"YulFunctionCall","src":"3609:12:21"},"nodeType":"YulExpressionStatement","src":"3609:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3581:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3590:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3577:3:21"},"nodeType":"YulFunctionCall","src":"3577:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3602:3:21","type":"","value":"128"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3573:3:21"},"nodeType":"YulFunctionCall","src":"3573:33:21"},"nodeType":"YulIf","src":"3570:53:21"},{"nodeType":"YulAssignment","src":"3632:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3661:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"3642:18:21"},"nodeType":"YulFunctionCall","src":"3642:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3632:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3680:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3711:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3722:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3707:3:21"},"nodeType":"YulFunctionCall","src":"3707:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3694:12:21"},"nodeType":"YulFunctionCall","src":"3694:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"3684:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3769:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3778:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3781:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3771:6:21"},"nodeType":"YulFunctionCall","src":"3771:12:21"},"nodeType":"YulExpressionStatement","src":"3771:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"3741:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"3749:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3738:2:21"},"nodeType":"YulFunctionCall","src":"3738:30:21"},"nodeType":"YulIf","src":"3735:50:21"},{"nodeType":"YulAssignment","src":"3794:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3825:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"3836:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3821:3:21"},"nodeType":"YulFunctionCall","src":"3821:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3845:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3804:16:21"},"nodeType":"YulFunctionCall","src":"3804:49:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3794:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"3862:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3892:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3903:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3888:3:21"},"nodeType":"YulFunctionCall","src":"3888:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3875:12:21"},"nodeType":"YulFunctionCall","src":"3875:32:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3866:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3938:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"3916:21:21"},"nodeType":"YulFunctionCall","src":"3916:28:21"},"nodeType":"YulExpressionStatement","src":"3916:28:21"},{"nodeType":"YulAssignment","src":"3953:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3963:5:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3953:6:21"}]},{"nodeType":"YulAssignment","src":"3977:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4009:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4020:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4005:3:21"},"nodeType":"YulFunctionCall","src":"4005:18:21"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"3987:17:21"},"nodeType":"YulFunctionCall","src":"3987:37:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3977:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptrt_boolt_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3502:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3513:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3525:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3533:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3541:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"3549:6:21","type":""}],"src":"3434:596:21"},{"body":{"nodeType":"YulBlock","src":"4136:76:21","statements":[{"nodeType":"YulAssignment","src":"4146:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4158:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4169:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4154:3:21"},"nodeType":"YulFunctionCall","src":"4154:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4146:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4188:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"4199:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4181:6:21"},"nodeType":"YulFunctionCall","src":"4181:25:21"},"nodeType":"YulExpressionStatement","src":"4181:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4105:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4116:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4127:4:21","type":""}],"src":"4035:177:21"},{"body":{"nodeType":"YulBlock","src":"4323:553:21","statements":[{"body":{"nodeType":"YulBlock","src":"4369:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4378:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4381:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4371:6:21"},"nodeType":"YulFunctionCall","src":"4371:12:21"},"nodeType":"YulExpressionStatement","src":"4371:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4344:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"4353:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4340:3:21"},"nodeType":"YulFunctionCall","src":"4340:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"4365:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4336:3:21"},"nodeType":"YulFunctionCall","src":"4336:32:21"},"nodeType":"YulIf","src":"4333:52:21"},{"nodeType":"YulAssignment","src":"4394:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4417:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4404:12:21"},"nodeType":"YulFunctionCall","src":"4404:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4394:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"4436:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4467:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4478:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4463:3:21"},"nodeType":"YulFunctionCall","src":"4463:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4450:12:21"},"nodeType":"YulFunctionCall","src":"4450:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"4440:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"4491:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"4501:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"4495:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4546:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4555:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4558:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4548:6:21"},"nodeType":"YulFunctionCall","src":"4548:12:21"},"nodeType":"YulExpressionStatement","src":"4548:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"4534:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"4542:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4531:2:21"},"nodeType":"YulFunctionCall","src":"4531:14:21"},"nodeType":"YulIf","src":"4528:34:21"},{"nodeType":"YulVariableDeclaration","src":"4571:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4585:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"4596:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4581:3:21"},"nodeType":"YulFunctionCall","src":"4581:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"4575:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4651:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4660:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4663:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4653:6:21"},"nodeType":"YulFunctionCall","src":"4653:12:21"},"nodeType":"YulExpressionStatement","src":"4653:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4630:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"4634:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4626:3:21"},"nodeType":"YulFunctionCall","src":"4626:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4641:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4622:3:21"},"nodeType":"YulFunctionCall","src":"4622:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4615:6:21"},"nodeType":"YulFunctionCall","src":"4615:35:21"},"nodeType":"YulIf","src":"4612:55:21"},{"nodeType":"YulVariableDeclaration","src":"4676:30:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4703:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4690:12:21"},"nodeType":"YulFunctionCall","src":"4690:16:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4680:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"4733:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4742:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4745:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4735:6:21"},"nodeType":"YulFunctionCall","src":"4735:12:21"},"nodeType":"YulExpressionStatement","src":"4735:12:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"4721:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"4729:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4718:2:21"},"nodeType":"YulFunctionCall","src":"4718:14:21"},"nodeType":"YulIf","src":"4715:34:21"},{"body":{"nodeType":"YulBlock","src":"4799:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4808:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4811:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4801:6:21"},"nodeType":"YulFunctionCall","src":"4801:12:21"},"nodeType":"YulExpressionStatement","src":"4801:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4772:2:21"},{"name":"length","nodeType":"YulIdentifier","src":"4776:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4768:3:21"},"nodeType":"YulFunctionCall","src":"4768:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"4785:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4764:3:21"},"nodeType":"YulFunctionCall","src":"4764:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"4790:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"4761:2:21"},"nodeType":"YulFunctionCall","src":"4761:37:21"},"nodeType":"YulIf","src":"4758:57:21"},{"nodeType":"YulAssignment","src":"4824:21:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"4838:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"4842:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4834:3:21"},"nodeType":"YulFunctionCall","src":"4834:11:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"4824:6:21"}]},{"nodeType":"YulAssignment","src":"4854:16:21","value":{"name":"length","nodeType":"YulIdentifier","src":"4864:6:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"4854:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4273:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4284:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4296:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"4304:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"4312:6:21","type":""}],"src":"4217:659:21"},{"body":{"nodeType":"YulBlock","src":"4982:102:21","statements":[{"nodeType":"YulAssignment","src":"4992:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5004:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5015:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5000:3:21"},"nodeType":"YulFunctionCall","src":"5000:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4992:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5034:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"5049:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5065:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"5070:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5061:3:21"},"nodeType":"YulFunctionCall","src":"5061:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"5074:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5057:3:21"},"nodeType":"YulFunctionCall","src":"5057:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5045:3:21"},"nodeType":"YulFunctionCall","src":"5045:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5027:6:21"},"nodeType":"YulFunctionCall","src":"5027:51:21"},"nodeType":"YulExpressionStatement","src":"5027:51:21"}]},"name":"abi_encode_tuple_t_address__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4951:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4962:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4973:4:21","type":""}],"src":"4881:203:21"},{"body":{"nodeType":"YulBlock","src":"5202:355:21","statements":[{"body":{"nodeType":"YulBlock","src":"5248:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5257:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5260:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5250:6:21"},"nodeType":"YulFunctionCall","src":"5250:12:21"},"nodeType":"YulExpressionStatement","src":"5250:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5223:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"5232:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5219:3:21"},"nodeType":"YulFunctionCall","src":"5219:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"5244:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5215:3:21"},"nodeType":"YulFunctionCall","src":"5215:32:21"},"nodeType":"YulIf","src":"5212:52:21"},{"nodeType":"YulAssignment","src":"5273:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5302:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5283:18:21"},"nodeType":"YulFunctionCall","src":"5283:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"5273:6:21"}]},{"nodeType":"YulAssignment","src":"5321:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5354:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5365:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5350:3:21"},"nodeType":"YulFunctionCall","src":"5350:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"5331:18:21"},"nodeType":"YulFunctionCall","src":"5331:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"5321:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"5378:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5409:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5420:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5405:3:21"},"nodeType":"YulFunctionCall","src":"5405:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5392:12:21"},"nodeType":"YulFunctionCall","src":"5392:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5382:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5467:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5476:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5479:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5469:6:21"},"nodeType":"YulFunctionCall","src":"5469:12:21"},"nodeType":"YulExpressionStatement","src":"5469:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5439:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"5447:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5436:2:21"},"nodeType":"YulFunctionCall","src":"5436:30:21"},"nodeType":"YulIf","src":"5433:50:21"},{"nodeType":"YulAssignment","src":"5492:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5523:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"5534:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5519:3:21"},"nodeType":"YulFunctionCall","src":"5519:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5543:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"5502:16:21"},"nodeType":"YulFunctionCall","src":"5502:49:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"5492:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5152:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5163:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5175:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5183:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5191:6:21","type":""}],"src":"5089:468:21"},{"body":{"nodeType":"YulBlock","src":"5628:184:21","statements":[{"nodeType":"YulVariableDeclaration","src":"5638:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"5647:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"5642:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5707:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5732:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"5737:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5728:3:21"},"nodeType":"YulFunctionCall","src":"5728:11:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"5751:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"5756:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5747:3:21"},"nodeType":"YulFunctionCall","src":"5747:11:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5741:5:21"},"nodeType":"YulFunctionCall","src":"5741:18:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5721:6:21"},"nodeType":"YulFunctionCall","src":"5721:39:21"},"nodeType":"YulExpressionStatement","src":"5721:39:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5668:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"5671:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5665:2:21"},"nodeType":"YulFunctionCall","src":"5665:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"5679:19:21","statements":[{"nodeType":"YulAssignment","src":"5681:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"5690:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"5693:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5686:3:21"},"nodeType":"YulFunctionCall","src":"5686:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"5681:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"5661:3:21","statements":[]},"src":"5657:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"5790:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"5795:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5786:3:21"},"nodeType":"YulFunctionCall","src":"5786:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"5804:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5779:6:21"},"nodeType":"YulFunctionCall","src":"5779:27:21"},"nodeType":"YulExpressionStatement","src":"5779:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"5606:3:21","type":""},{"name":"dst","nodeType":"YulTypedName","src":"5611:3:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"5616:6:21","type":""}],"src":"5562:250:21"},{"body":{"nodeType":"YulBlock","src":"5866:221:21","statements":[{"nodeType":"YulVariableDeclaration","src":"5876:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5896:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5890:5:21"},"nodeType":"YulFunctionCall","src":"5890:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"5880:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5918:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"5923:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5911:6:21"},"nodeType":"YulFunctionCall","src":"5911:19:21"},"nodeType":"YulExpressionStatement","src":"5911:19:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5978:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"5985:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5974:3:21"},"nodeType":"YulFunctionCall","src":"5974:16:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"5996:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"6001:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5992:3:21"},"nodeType":"YulFunctionCall","src":"5992:14:21"},{"name":"length","nodeType":"YulIdentifier","src":"6008:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"5939:34:21"},"nodeType":"YulFunctionCall","src":"5939:76:21"},"nodeType":"YulExpressionStatement","src":"5939:76:21"},{"nodeType":"YulAssignment","src":"6024:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"6039:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"6052:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"6060:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6048:3:21"},"nodeType":"YulFunctionCall","src":"6048:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6069:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"6065:3:21"},"nodeType":"YulFunctionCall","src":"6065:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6044:3:21"},"nodeType":"YulFunctionCall","src":"6044:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6035:3:21"},"nodeType":"YulFunctionCall","src":"6035:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"6076:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6031:3:21"},"nodeType":"YulFunctionCall","src":"6031:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"6024:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"5843:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"5850:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"5858:3:21","type":""}],"src":"5817:270:21"},{"body":{"nodeType":"YulBlock","src":"6233:157:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6250:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6275:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6268:6:21"},"nodeType":"YulFunctionCall","src":"6268:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"6261:6:21"},"nodeType":"YulFunctionCall","src":"6261:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6243:6:21"},"nodeType":"YulFunctionCall","src":"6243:41:21"},"nodeType":"YulExpressionStatement","src":"6243:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6304:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6315:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6300:3:21"},"nodeType":"YulFunctionCall","src":"6300:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"6320:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6293:6:21"},"nodeType":"YulFunctionCall","src":"6293:30:21"},"nodeType":"YulExpressionStatement","src":"6293:30:21"},{"nodeType":"YulAssignment","src":"6332:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"6357:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6369:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6380:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6365:3:21"},"nodeType":"YulFunctionCall","src":"6365:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6340:16:21"},"nodeType":"YulFunctionCall","src":"6340:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6332:4:21"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6194:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6205:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6213:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6224:4:21","type":""}],"src":"6092:298:21"},{"body":{"nodeType":"YulBlock","src":"6592:668:21","statements":[{"body":{"nodeType":"YulBlock","src":"6639:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6648:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6651:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6641:6:21"},"nodeType":"YulFunctionCall","src":"6641:12:21"},"nodeType":"YulExpressionStatement","src":"6641:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"6613:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"6622:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"6609:3:21"},"nodeType":"YulFunctionCall","src":"6609:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"6634:3:21","type":"","value":"192"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"6605:3:21"},"nodeType":"YulFunctionCall","src":"6605:33:21"},"nodeType":"YulIf","src":"6602:53:21"},{"nodeType":"YulAssignment","src":"6664:39:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6693:9:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6674:18:21"},"nodeType":"YulFunctionCall","src":"6674:29:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6664:6:21"}]},{"nodeType":"YulAssignment","src":"6712:48:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6745:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6756:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6741:3:21"},"nodeType":"YulFunctionCall","src":"6741:18:21"}],"functionName":{"name":"abi_decode_address","nodeType":"YulIdentifier","src":"6722:18:21"},"nodeType":"YulFunctionCall","src":"6722:38:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"6712:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"6769:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6800:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6811:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6796:3:21"},"nodeType":"YulFunctionCall","src":"6796:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"6783:12:21"},"nodeType":"YulFunctionCall","src":"6783:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"6773:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6824:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"6834:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"6828:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"6879:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6888:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6891:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6881:6:21"},"nodeType":"YulFunctionCall","src":"6881:12:21"},"nodeType":"YulExpressionStatement","src":"6881:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"6867:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"6875:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6864:2:21"},"nodeType":"YulFunctionCall","src":"6864:14:21"},"nodeType":"YulIf","src":"6861:34:21"},{"nodeType":"YulAssignment","src":"6904:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6935:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"6946:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6931:3:21"},"nodeType":"YulFunctionCall","src":"6931:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6955:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"6914:16:21"},"nodeType":"YulFunctionCall","src":"6914:49:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"6904:6:21"}]},{"nodeType":"YulAssignment","src":"6972:47:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7004:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7015:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7000:3:21"},"nodeType":"YulFunctionCall","src":"7000:18:21"}],"functionName":{"name":"abi_decode_bytes4","nodeType":"YulIdentifier","src":"6982:17:21"},"nodeType":"YulFunctionCall","src":"6982:37:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"6972:6:21"}]},{"nodeType":"YulAssignment","src":"7028:43:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7055:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7066:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7051:3:21"},"nodeType":"YulFunctionCall","src":"7051:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7038:12:21"},"nodeType":"YulFunctionCall","src":"7038:33:21"},"variableNames":[{"name":"value4","nodeType":"YulIdentifier","src":"7028:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"7080:49:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7113:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7124:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7109:3:21"},"nodeType":"YulFunctionCall","src":"7109:19:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"7096:12:21"},"nodeType":"YulFunctionCall","src":"7096:33:21"},"variables":[{"name":"offset_1","nodeType":"YulTypedName","src":"7084:8:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"7158:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7167:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7170:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7160:6:21"},"nodeType":"YulFunctionCall","src":"7160:12:21"},"nodeType":"YulExpressionStatement","src":"7160:12:21"}]},"condition":{"arguments":[{"name":"offset_1","nodeType":"YulIdentifier","src":"7144:8:21"},{"name":"_1","nodeType":"YulIdentifier","src":"7154:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"7141:2:21"},"nodeType":"YulFunctionCall","src":"7141:16:21"},"nodeType":"YulIf","src":"7138:36:21"},{"nodeType":"YulAssignment","src":"7183:71:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7224:9:21"},{"name":"offset_1","nodeType":"YulIdentifier","src":"7235:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7220:3:21"},"nodeType":"YulFunctionCall","src":"7220:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"7246:7:21"}],"functionName":{"name":"abi_decode_array_bytes_dyn","nodeType":"YulIdentifier","src":"7193:26:21"},"nodeType":"YulFunctionCall","src":"7193:61:21"},"variableNames":[{"name":"value5","nodeType":"YulIdentifier","src":"7183:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_addresst_bytes_memory_ptrt_bytes4t_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6518:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"6529:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"6541:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6549:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"6557:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"6565:6:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"6573:6:21","type":""},{"name":"value5","nodeType":"YulTypedName","src":"6581:6:21","type":""}],"src":"6395:865:21"},{"body":{"nodeType":"YulBlock","src":"7439:165:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7456:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7467:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7449:6:21"},"nodeType":"YulFunctionCall","src":"7449:21:21"},"nodeType":"YulExpressionStatement","src":"7449:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7490:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7501:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7486:3:21"},"nodeType":"YulFunctionCall","src":"7486:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"7506:2:21","type":"","value":"15"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7479:6:21"},"nodeType":"YulFunctionCall","src":"7479:30:21"},"nodeType":"YulExpressionStatement","src":"7479:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7529:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7540:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7525:3:21"},"nodeType":"YulFunctionCall","src":"7525:18:21"},{"hexValue":"416c726561647920726573756d6564","kind":"string","nodeType":"YulLiteral","src":"7545:17:21","type":"","value":"Already resumed"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7518:6:21"},"nodeType":"YulFunctionCall","src":"7518:45:21"},"nodeType":"YulExpressionStatement","src":"7518:45:21"},{"nodeType":"YulAssignment","src":"7572:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7584:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7595:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7580:3:21"},"nodeType":"YulFunctionCall","src":"7580:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7572:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7416:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7430:4:21","type":""}],"src":"7265:339:21"},{"body":{"nodeType":"YulBlock","src":"7832:342:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7849:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7864:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7880:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7885:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7876:3:21"},"nodeType":"YulFunctionCall","src":"7876:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"7889:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7872:3:21"},"nodeType":"YulFunctionCall","src":"7872:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7860:3:21"},"nodeType":"YulFunctionCall","src":"7860:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7842:6:21"},"nodeType":"YulFunctionCall","src":"7842:51:21"},"nodeType":"YulExpressionStatement","src":"7842:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7913:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7924:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7909:3:21"},"nodeType":"YulFunctionCall","src":"7909:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7933:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7945:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7950:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7941:3:21"},"nodeType":"YulFunctionCall","src":"7941:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7929:3:21"},"nodeType":"YulFunctionCall","src":"7929:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7902:6:21"},"nodeType":"YulFunctionCall","src":"7902:61:21"},"nodeType":"YulExpressionStatement","src":"7902:61:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7983:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7994:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7979:3:21"},"nodeType":"YulFunctionCall","src":"7979:18:21"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"8013:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8006:6:21"},"nodeType":"YulFunctionCall","src":"8006:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7999:6:21"},"nodeType":"YulFunctionCall","src":"7999:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7972:6:21"},"nodeType":"YulFunctionCall","src":"7972:50:21"},"nodeType":"YulExpressionStatement","src":"7972:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8042:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8053:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8038:3:21"},"nodeType":"YulFunctionCall","src":"8038:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"8058:3:21","type":"","value":"160"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8031:6:21"},"nodeType":"YulFunctionCall","src":"8031:31:21"},"nodeType":"YulExpressionStatement","src":"8031:31:21"},{"nodeType":"YulAssignment","src":"8071:53:21","value":{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"8096:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8108:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8119:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8104:3:21"},"nodeType":"YulFunctionCall","src":"8104:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8079:16:21"},"nodeType":"YulFunctionCall","src":"8079:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8071:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8144:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8155:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8140:3:21"},"nodeType":"YulFunctionCall","src":"8140:19:21"},{"name":"value4","nodeType":"YulIdentifier","src":"8161:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8133:6:21"},"nodeType":"YulFunctionCall","src":"8133:35:21"},"nodeType":"YulExpressionStatement","src":"8133:35:21"}]},"name":"abi_encode_tuple_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7769:9:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"7780:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7788:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7796:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7804:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7812:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7823:4:21","type":""}],"src":"7609:565:21"},{"body":{"nodeType":"YulBlock","src":"8348:200:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8365:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8390:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8383:6:21"},"nodeType":"YulFunctionCall","src":"8383:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"8376:6:21"},"nodeType":"YulFunctionCall","src":"8376:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8358:6:21"},"nodeType":"YulFunctionCall","src":"8358:41:21"},"nodeType":"YulExpressionStatement","src":"8358:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8419:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8430:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8415:3:21"},"nodeType":"YulFunctionCall","src":"8415:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"8435:2:21","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8408:6:21"},"nodeType":"YulFunctionCall","src":"8408:30:21"},"nodeType":"YulExpressionStatement","src":"8408:30:21"},{"nodeType":"YulAssignment","src":"8447:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"8472:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8484:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8495:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8480:3:21"},"nodeType":"YulFunctionCall","src":"8480:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"8455:16:21"},"nodeType":"YulFunctionCall","src":"8455:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"8447:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"8519:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"8530:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8515:3:21"},"nodeType":"YulFunctionCall","src":"8515:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"8535:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"8508:6:21"},"nodeType":"YulFunctionCall","src":"8508:34:21"},"nodeType":"YulExpressionStatement","src":"8508:34:21"}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr_t_uint256__to_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8301:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8312:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"8320:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8328:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"8339:4:21","type":""}],"src":"8179:369:21"},{"body":{"nodeType":"YulBlock","src":"8690:150:21","statements":[{"nodeType":"YulVariableDeclaration","src":"8700:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8720:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"8714:5:21"},"nodeType":"YulFunctionCall","src":"8714:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"8704:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"8775:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"8783:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8771:3:21"},"nodeType":"YulFunctionCall","src":"8771:17:21"},{"name":"pos","nodeType":"YulIdentifier","src":"8790:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"8795:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"8736:34:21"},"nodeType":"YulFunctionCall","src":"8736:66:21"},"nodeType":"YulExpressionStatement","src":"8736:66:21"},{"nodeType":"YulAssignment","src":"8811:23:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"8822:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"8827:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"8818:3:21"},"nodeType":"YulFunctionCall","src":"8818:16:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"8811:3:21"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"8666:3:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"8671:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"8682:3:21","type":""}],"src":"8553:287:21"},{"body":{"nodeType":"YulBlock","src":"9032:271:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9049:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9060:2:21","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9042:6:21"},"nodeType":"YulFunctionCall","src":"9042:21:21"},"nodeType":"YulExpressionStatement","src":"9042:21:21"},{"nodeType":"YulVariableDeclaration","src":"9072:58:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9103:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9115:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9126:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9111:3:21"},"nodeType":"YulFunctionCall","src":"9111:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9086:16:21"},"nodeType":"YulFunctionCall","src":"9086:44:21"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"9076:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9150:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9161:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9146:3:21"},"nodeType":"YulFunctionCall","src":"9146:18:21"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9180:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9173:6:21"},"nodeType":"YulFunctionCall","src":"9173:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9166:6:21"},"nodeType":"YulFunctionCall","src":"9166:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9139:6:21"},"nodeType":"YulFunctionCall","src":"9139:50:21"},"nodeType":"YulExpressionStatement","src":"9139:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9209:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9220:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9205:3:21"},"nodeType":"YulFunctionCall","src":"9205:18:21"},{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"9229:6:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"9237:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9225:3:21"},"nodeType":"YulFunctionCall","src":"9225:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9198:6:21"},"nodeType":"YulFunctionCall","src":"9198:50:21"},"nodeType":"YulExpressionStatement","src":"9198:50:21"},{"nodeType":"YulAssignment","src":"9257:40:21","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9282:6:21"},{"name":"tail_1","nodeType":"YulIdentifier","src":"9290:6:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9265:16:21"},"nodeType":"YulFunctionCall","src":"9265:32:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9257:4:21"}]}]},"name":"abi_encode_tuple_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"8985:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"8996:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9004:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9012:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9023:4:21","type":""}],"src":"8845:458:21"},{"body":{"nodeType":"YulBlock","src":"9559:416:21","statements":[{"nodeType":"YulVariableDeclaration","src":"9569:29:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9587:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"9592:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9583:3:21"},"nodeType":"YulFunctionCall","src":"9583:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"9596:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"9579:3:21"},"nodeType":"YulFunctionCall","src":"9579:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"9573:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9614:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"9629:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"9637:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9625:3:21"},"nodeType":"YulFunctionCall","src":"9625:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9607:6:21"},"nodeType":"YulFunctionCall","src":"9607:34:21"},"nodeType":"YulExpressionStatement","src":"9607:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9661:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9672:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9657:3:21"},"nodeType":"YulFunctionCall","src":"9657:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"9681:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"9689:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9677:3:21"},"nodeType":"YulFunctionCall","src":"9677:15:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9650:6:21"},"nodeType":"YulFunctionCall","src":"9650:43:21"},"nodeType":"YulExpressionStatement","src":"9650:43:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9713:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9724:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9709:3:21"},"nodeType":"YulFunctionCall","src":"9709:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"9729:3:21","type":"","value":"192"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9702:6:21"},"nodeType":"YulFunctionCall","src":"9702:31:21"},"nodeType":"YulExpressionStatement","src":"9702:31:21"},{"nodeType":"YulAssignment","src":"9742:53:21","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"9767:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9779:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9790:3:21","type":"","value":"192"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9775:3:21"},"nodeType":"YulFunctionCall","src":"9775:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"9750:16:21"},"nodeType":"YulFunctionCall","src":"9750:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"9742:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9815:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9826:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9811:3:21"},"nodeType":"YulFunctionCall","src":"9811:18:21"},{"arguments":[{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"9845:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9838:6:21"},"nodeType":"YulFunctionCall","src":"9838:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"9831:6:21"},"nodeType":"YulFunctionCall","src":"9831:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9804:6:21"},"nodeType":"YulFunctionCall","src":"9804:50:21"},"nodeType":"YulExpressionStatement","src":"9804:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9874:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9885:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9870:3:21"},"nodeType":"YulFunctionCall","src":"9870:19:21"},{"arguments":[{"name":"value4","nodeType":"YulIdentifier","src":"9895:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"9907:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"9912:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"9903:3:21"},"nodeType":"YulFunctionCall","src":"9903:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"9891:3:21"},"nodeType":"YulFunctionCall","src":"9891:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9863:6:21"},"nodeType":"YulFunctionCall","src":"9863:62:21"},"nodeType":"YulExpressionStatement","src":"9863:62:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"9945:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"9956:3:21","type":"","value":"160"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"9941:3:21"},"nodeType":"YulFunctionCall","src":"9941:19:21"},{"name":"value5","nodeType":"YulIdentifier","src":"9962:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"9934:6:21"},"nodeType":"YulFunctionCall","src":"9934:35:21"},"nodeType":"YulExpressionStatement","src":"9934:35:21"}]},"name":"abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__to_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"9488:9:21","type":""},{"name":"value5","nodeType":"YulTypedName","src":"9499:6:21","type":""},{"name":"value4","nodeType":"YulTypedName","src":"9507:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"9515:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"9523:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"9531:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"9539:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"9550:4:21","type":""}],"src":"9308:667:21"},{"body":{"nodeType":"YulBlock","src":"10027:185:21","statements":[{"body":{"nodeType":"YulBlock","src":"10066:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10087:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10094:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"10099:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10090:3:21"},"nodeType":"YulFunctionCall","src":"10090:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10080:6:21"},"nodeType":"YulFunctionCall","src":"10080:31:21"},"nodeType":"YulExpressionStatement","src":"10080:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10131:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"10134:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10124:6:21"},"nodeType":"YulFunctionCall","src":"10124:15:21"},"nodeType":"YulExpressionStatement","src":"10124:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10159:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"10162:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"10152:6:21"},"nodeType":"YulFunctionCall","src":"10152:15:21"},"nodeType":"YulExpressionStatement","src":"10152:15:21"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10043:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10054:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"10050:3:21"},"nodeType":"YulFunctionCall","src":"10050:6:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"10040:2:21"},"nodeType":"YulFunctionCall","src":"10040:17:21"},"nodeType":"YulIf","src":"10037:140:21"},{"nodeType":"YulAssignment","src":"10186:20:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"10197:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"10204:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10193:3:21"},"nodeType":"YulFunctionCall","src":"10193:13:21"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"10186:3:21"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"10009:5:21","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"10019:3:21","type":""}],"src":"9980:232:21"},{"body":{"nodeType":"YulBlock","src":"10334:102:21","statements":[{"nodeType":"YulAssignment","src":"10344:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10356:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10367:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10352:3:21"},"nodeType":"YulFunctionCall","src":"10352:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10344:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10386:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10401:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10417:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10422:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10413:3:21"},"nodeType":"YulFunctionCall","src":"10413:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"10426:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10409:3:21"},"nodeType":"YulFunctionCall","src":"10409:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10397:3:21"},"nodeType":"YulFunctionCall","src":"10397:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10379:6:21"},"nodeType":"YulFunctionCall","src":"10379:51:21"},"nodeType":"YulExpressionStatement","src":"10379:51:21"}]},"name":"abi_encode_tuple_t_contract$_Relayer_$4434__to_t_address__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10303:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10314:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10325:4:21","type":""}],"src":"10217:219:21"},{"body":{"nodeType":"YulBlock","src":"10615:161:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10632:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10643:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10625:6:21"},"nodeType":"YulFunctionCall","src":"10625:21:21"},"nodeType":"YulExpressionStatement","src":"10625:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10666:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10677:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10662:3:21"},"nodeType":"YulFunctionCall","src":"10662:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"10682:2:21","type":"","value":"11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10655:6:21"},"nodeType":"YulFunctionCall","src":"10655:30:21"},"nodeType":"YulExpressionStatement","src":"10655:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10705:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10716:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10701:3:21"},"nodeType":"YulFunctionCall","src":"10701:18:21"},{"hexValue":"636f6465206c656e677468","kind":"string","nodeType":"YulLiteral","src":"10721:13:21","type":"","value":"code length"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10694:6:21"},"nodeType":"YulFunctionCall","src":"10694:41:21"},"nodeType":"YulExpressionStatement","src":"10694:41:21"},{"nodeType":"YulAssignment","src":"10744:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10756:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"10767:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"10752:3:21"},"nodeType":"YulFunctionCall","src":"10752:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"10744:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10592:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10606:4:21","type":""}],"src":"10441:335:21"},{"body":{"nodeType":"YulBlock","src":"10928:167:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"10945:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"10960:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"10976:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"10981:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"10972:3:21"},"nodeType":"YulFunctionCall","src":"10972:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"10985:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"10968:3:21"},"nodeType":"YulFunctionCall","src":"10968:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"10956:3:21"},"nodeType":"YulFunctionCall","src":"10956:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10938:6:21"},"nodeType":"YulFunctionCall","src":"10938:51:21"},"nodeType":"YulExpressionStatement","src":"10938:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11009:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"11020:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11005:3:21"},"nodeType":"YulFunctionCall","src":"11005:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"11025:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"10998:6:21"},"nodeType":"YulFunctionCall","src":"10998:30:21"},"nodeType":"YulExpressionStatement","src":"10998:30:21"},{"nodeType":"YulAssignment","src":"11037:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"11062:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11074:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"11085:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11070:3:21"},"nodeType":"YulFunctionCall","src":"11070:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"11045:16:21"},"nodeType":"YulFunctionCall","src":"11045:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"11037:4:21"}]}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"10889:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"10900:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"10908:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"10919:4:21","type":""}],"src":"10781:314:21"},{"body":{"nodeType":"YulBlock","src":"11204:665:21","statements":[{"body":{"nodeType":"YulBlock","src":"11250:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11259:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11262:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11252:6:21"},"nodeType":"YulFunctionCall","src":"11252:12:21"},"nodeType":"YulExpressionStatement","src":"11252:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"11225:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"11234:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"11221:3:21"},"nodeType":"YulFunctionCall","src":"11221:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"11246:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11217:3:21"},"nodeType":"YulFunctionCall","src":"11217:32:21"},"nodeType":"YulIf","src":"11214:52:21"},{"nodeType":"YulVariableDeclaration","src":"11275:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11294:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11288:5:21"},"nodeType":"YulFunctionCall","src":"11288:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"11279:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"11335:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"11313:21:21"},"nodeType":"YulFunctionCall","src":"11313:28:21"},"nodeType":"YulExpressionStatement","src":"11313:28:21"},{"nodeType":"YulAssignment","src":"11350:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"11360:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"11350:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"11374:39:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11398:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"11409:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11394:3:21"},"nodeType":"YulFunctionCall","src":"11394:18:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11388:5:21"},"nodeType":"YulFunctionCall","src":"11388:25:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"11378:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"11456:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11465:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11468:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11458:6:21"},"nodeType":"YulFunctionCall","src":"11458:12:21"},"nodeType":"YulExpressionStatement","src":"11458:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"11428:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"11436:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11425:2:21"},"nodeType":"YulFunctionCall","src":"11425:30:21"},"nodeType":"YulIf","src":"11422:50:21"},{"nodeType":"YulVariableDeclaration","src":"11481:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"11495:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"11506:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11491:3:21"},"nodeType":"YulFunctionCall","src":"11491:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"11485:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"11561:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11570:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11573:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11563:6:21"},"nodeType":"YulFunctionCall","src":"11563:12:21"},"nodeType":"YulExpressionStatement","src":"11563:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11540:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"11544:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11536:3:21"},"nodeType":"YulFunctionCall","src":"11536:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11551:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"11532:3:21"},"nodeType":"YulFunctionCall","src":"11532:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"11525:6:21"},"nodeType":"YulFunctionCall","src":"11525:35:21"},"nodeType":"YulIf","src":"11522:55:21"},{"nodeType":"YulVariableDeclaration","src":"11586:19:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11602:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"11596:5:21"},"nodeType":"YulFunctionCall","src":"11596:9:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"11590:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"11614:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"11671:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"11643:27:21"},"nodeType":"YulFunctionCall","src":"11643:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"11627:15:21"},"nodeType":"YulFunctionCall","src":"11627:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"11618:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11691:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"11698:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"11684:6:21"},"nodeType":"YulFunctionCall","src":"11684:17:21"},"nodeType":"YulExpressionStatement","src":"11684:17:21"},{"body":{"nodeType":"YulBlock","src":"11747:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"11756:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"11759:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"11749:6:21"},"nodeType":"YulFunctionCall","src":"11749:12:21"},"nodeType":"YulExpressionStatement","src":"11749:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11724:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"11728:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11720:3:21"},"nodeType":"YulFunctionCall","src":"11720:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"11733:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11716:3:21"},"nodeType":"YulFunctionCall","src":"11716:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"11738:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"11713:2:21"},"nodeType":"YulFunctionCall","src":"11713:33:21"},"nodeType":"YulIf","src":"11710:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"11811:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"11815:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11807:3:21"},"nodeType":"YulFunctionCall","src":"11807:11:21"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"11824:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"11831:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"11820:3:21"},"nodeType":"YulFunctionCall","src":"11820:14:21"},{"name":"_2","nodeType":"YulIdentifier","src":"11836:2:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"11772:34:21"},"nodeType":"YulFunctionCall","src":"11772:67:21"},"nodeType":"YulExpressionStatement","src":"11772:67:21"},{"nodeType":"YulAssignment","src":"11848:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"11858:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"11848:6:21"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"11162:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"11173:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"11185:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"11193:6:21","type":""}],"src":"11100:769:21"},{"body":{"nodeType":"YulBlock","src":"12048:168:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12065:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12076:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12058:6:21"},"nodeType":"YulFunctionCall","src":"12058:21:21"},"nodeType":"YulExpressionStatement","src":"12058:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12099:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12110:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12095:3:21"},"nodeType":"YulFunctionCall","src":"12095:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"12115:2:21","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12088:6:21"},"nodeType":"YulFunctionCall","src":"12088:30:21"},"nodeType":"YulExpressionStatement","src":"12088:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12138:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12149:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12134:3:21"},"nodeType":"YulFunctionCall","src":"12134:18:21"},{"hexValue":"416c72656164792064697370617463686564","kind":"string","nodeType":"YulLiteral","src":"12154:20:21","type":"","value":"Already dispatched"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12127:6:21"},"nodeType":"YulFunctionCall","src":"12127:48:21"},"nodeType":"YulExpressionStatement","src":"12127:48:21"},{"nodeType":"YulAssignment","src":"12184:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12196:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12207:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12192:3:21"},"nodeType":"YulFunctionCall","src":"12192:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12184:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12025:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12039:4:21","type":""}],"src":"11874:342:21"},{"body":{"nodeType":"YulBlock","src":"12388:227:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12405:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"12420:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"12432:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"12437:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"12428:3:21"},"nodeType":"YulFunctionCall","src":"12428:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"12416:3:21"},"nodeType":"YulFunctionCall","src":"12416:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12398:6:21"},"nodeType":"YulFunctionCall","src":"12398:52:21"},"nodeType":"YulExpressionStatement","src":"12398:52:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12470:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12481:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12466:3:21"},"nodeType":"YulFunctionCall","src":"12466:18:21"},{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"12500:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12493:6:21"},"nodeType":"YulFunctionCall","src":"12493:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"12486:6:21"},"nodeType":"YulFunctionCall","src":"12486:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12459:6:21"},"nodeType":"YulFunctionCall","src":"12459:50:21"},"nodeType":"YulExpressionStatement","src":"12459:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12529:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12540:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12525:3:21"},"nodeType":"YulFunctionCall","src":"12525:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"12545:2:21","type":"","value":"96"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12518:6:21"},"nodeType":"YulFunctionCall","src":"12518:30:21"},"nodeType":"YulExpressionStatement","src":"12518:30:21"},{"nodeType":"YulAssignment","src":"12557:52:21","value":{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"12582:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12594:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12605:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12590:3:21"},"nodeType":"YulFunctionCall","src":"12590:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"12565:16:21"},"nodeType":"YulFunctionCall","src":"12565:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"12557:4:21"}]}]},"name":"abi_encode_tuple_t_bytes4_t_bool_t_bytes_memory_ptr__to_t_bytes4_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12341:9:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"12352:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12360:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12368:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12379:4:21","type":""}],"src":"12221:394:21"},{"body":{"nodeType":"YulBlock","src":"12817:674:21","statements":[{"nodeType":"YulVariableDeclaration","src":"12827:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12845:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"12856:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12841:3:21"},"nodeType":"YulFunctionCall","src":"12841:18:21"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"12831:6:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12875:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"12886:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12868:6:21"},"nodeType":"YulFunctionCall","src":"12868:25:21"},"nodeType":"YulExpressionStatement","src":"12868:25:21"},{"nodeType":"YulVariableDeclaration","src":"12902:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"12912:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"12906:2:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"12934:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"12945:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"12930:3:21"},"nodeType":"YulFunctionCall","src":"12930:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"12950:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"12923:6:21"},"nodeType":"YulFunctionCall","src":"12923:30:21"},"nodeType":"YulExpressionStatement","src":"12923:30:21"},{"nodeType":"YulVariableDeclaration","src":"12962:17:21","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"12973:6:21"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"12966:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"12988:27:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13008:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13002:5:21"},"nodeType":"YulFunctionCall","src":"13002:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"12992:6:21","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"13031:6:21"},{"name":"length","nodeType":"YulIdentifier","src":"13039:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13024:6:21"},"nodeType":"YulFunctionCall","src":"13024:22:21"},"nodeType":"YulExpressionStatement","src":"13024:22:21"},{"nodeType":"YulAssignment","src":"13055:25:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13066:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"13077:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13062:3:21"},"nodeType":"YulFunctionCall","src":"13062:18:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13055:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"13089:53:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13111:9:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13126:1:21","type":"","value":"5"},{"name":"length","nodeType":"YulIdentifier","src":"13129:6:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"13122:3:21"},"nodeType":"YulFunctionCall","src":"13122:14:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13107:3:21"},"nodeType":"YulFunctionCall","src":"13107:30:21"},{"kind":"number","nodeType":"YulLiteral","src":"13139:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13103:3:21"},"nodeType":"YulFunctionCall","src":"13103:39:21"},"variables":[{"name":"tail_2","nodeType":"YulTypedName","src":"13093:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13151:29:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"13169:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"13177:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13165:3:21"},"nodeType":"YulFunctionCall","src":"13165:15:21"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"13155:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"13189:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"13198:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"13193:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"13257:205:21","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13278:3:21"},{"arguments":[{"arguments":[{"name":"tail_2","nodeType":"YulIdentifier","src":"13291:6:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"13299:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13287:3:21"},"nodeType":"YulFunctionCall","src":"13287:22:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13315:2:21","type":"","value":"95"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"13311:3:21"},"nodeType":"YulFunctionCall","src":"13311:7:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13283:3:21"},"nodeType":"YulFunctionCall","src":"13283:36:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13271:6:21"},"nodeType":"YulFunctionCall","src":"13271:49:21"},"nodeType":"YulExpressionStatement","src":"13271:49:21"},{"nodeType":"YulAssignment","src":"13333:49:21","value":{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13366:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13360:5:21"},"nodeType":"YulFunctionCall","src":"13360:13:21"},{"name":"tail_2","nodeType":"YulIdentifier","src":"13375:6:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"13343:16:21"},"nodeType":"YulFunctionCall","src":"13343:39:21"},"variableNames":[{"name":"tail_2","nodeType":"YulIdentifier","src":"13333:6:21"}]},{"nodeType":"YulAssignment","src":"13395:25:21","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13409:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"13417:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13405:3:21"},"nodeType":"YulFunctionCall","src":"13405:15:21"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"13395:6:21"}]},{"nodeType":"YulAssignment","src":"13433:19:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"13444:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"13449:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13440:3:21"},"nodeType":"YulFunctionCall","src":"13440:12:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"13433:3:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13219:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"13222:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"13216:2:21"},"nodeType":"YulFunctionCall","src":"13216:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"13230:18:21","statements":[{"nodeType":"YulAssignment","src":"13232:14:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"13241:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"13244:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13237:3:21"},"nodeType":"YulFunctionCall","src":"13237:9:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"13232:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"13212:3:21","statements":[]},"src":"13208:254:21"},{"nodeType":"YulAssignment","src":"13471:14:21","value":{"name":"tail_2","nodeType":"YulIdentifier","src":"13479:6:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"13471:4:21"}]}]},"name":"abi_encode_tuple_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"12778:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"12789:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"12797:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"12808:4:21","type":""}],"src":"12620:871:21"},{"body":{"nodeType":"YulBlock","src":"13574:167:21","statements":[{"body":{"nodeType":"YulBlock","src":"13620:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"13629:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"13632:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"13622:6:21"},"nodeType":"YulFunctionCall","src":"13622:12:21"},"nodeType":"YulExpressionStatement","src":"13622:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"13595:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"13604:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"13591:3:21"},"nodeType":"YulFunctionCall","src":"13591:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"13616:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"13587:3:21"},"nodeType":"YulFunctionCall","src":"13587:32:21"},"nodeType":"YulIf","src":"13584:52:21"},{"nodeType":"YulVariableDeclaration","src":"13645:29:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13664:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"13658:5:21"},"nodeType":"YulFunctionCall","src":"13658:16:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"13649:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"13705:5:21"}],"functionName":{"name":"validator_revert_bool","nodeType":"YulIdentifier","src":"13683:21:21"},"nodeType":"YulFunctionCall","src":"13683:28:21"},"nodeType":"YulExpressionStatement","src":"13683:28:21"},{"nodeType":"YulAssignment","src":"13720:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"13730:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"13720:6:21"}]}]},"name":"abi_decode_tuple_t_bool_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13540:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"13551:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"13563:6:21","type":""}],"src":"13496:245:21"},{"body":{"nodeType":"YulBlock","src":"13920:168:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13937:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"13948:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13930:6:21"},"nodeType":"YulFunctionCall","src":"13930:21:21"},"nodeType":"YulExpressionStatement","src":"13930:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"13971:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"13982:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"13967:3:21"},"nodeType":"YulFunctionCall","src":"13967:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"13987:2:21","type":"","value":"18"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13960:6:21"},"nodeType":"YulFunctionCall","src":"13960:30:21"},"nodeType":"YulExpressionStatement","src":"13960:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14010:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14021:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14006:3:21"},"nodeType":"YulFunctionCall","src":"14006:18:21"},{"hexValue":"496e76616c6964207369676e617475726573","kind":"string","nodeType":"YulLiteral","src":"14026:20:21","type":"","value":"Invalid signatures"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"13999:6:21"},"nodeType":"YulFunctionCall","src":"13999:48:21"},"nodeType":"YulExpressionStatement","src":"13999:48:21"},{"nodeType":"YulAssignment","src":"14056:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14068:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14079:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14064:3:21"},"nodeType":"YulFunctionCall","src":"14064:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14056:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"13897:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"13911:4:21","type":""}],"src":"13746:342:21"},{"body":{"nodeType":"YulBlock","src":"14267:166:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14284:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14295:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14277:6:21"},"nodeType":"YulFunctionCall","src":"14277:21:21"},"nodeType":"YulExpressionStatement","src":"14277:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14318:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14329:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14314:3:21"},"nodeType":"YulFunctionCall","src":"14314:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"14334:2:21","type":"","value":"16"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14307:6:21"},"nodeType":"YulFunctionCall","src":"14307:30:21"},"nodeType":"YulExpressionStatement","src":"14307:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14357:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14368:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14353:3:21"},"nodeType":"YulFunctionCall","src":"14353:18:21"},{"hexValue":"4e6f2073757065726d616a6f72697479","kind":"string","nodeType":"YulLiteral","src":"14373:18:21","type":"","value":"No supermajority"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14346:6:21"},"nodeType":"YulFunctionCall","src":"14346:46:21"},"nodeType":"YulExpressionStatement","src":"14346:46:21"},{"nodeType":"YulAssignment","src":"14401:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14413:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14424:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14409:3:21"},"nodeType":"YulFunctionCall","src":"14409:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14401:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14244:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14258:4:21","type":""}],"src":"14093:340:21"},{"body":{"nodeType":"YulBlock","src":"14567:119:21","statements":[{"nodeType":"YulAssignment","src":"14577:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14589:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14600:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14585:3:21"},"nodeType":"YulFunctionCall","src":"14585:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"14577:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14619:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"14630:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14612:6:21"},"nodeType":"YulFunctionCall","src":"14612:25:21"},"nodeType":"YulExpressionStatement","src":"14612:25:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"14657:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"14668:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"14653:3:21"},"nodeType":"YulFunctionCall","src":"14653:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"14673:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14646:6:21"},"nodeType":"YulFunctionCall","src":"14646:34:21"},"nodeType":"YulExpressionStatement","src":"14646:34:21"}]},"name":"abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"14528:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14539:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14547:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"14558:4:21","type":""}],"src":"14438:248:21"},{"body":{"nodeType":"YulBlock","src":"14965:415:21","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"14982:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"14987:66:21","type":"","value":"0x19457468657265756d205369676e6564204d6573736167653a0a000000000000"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"14975:6:21"},"nodeType":"YulFunctionCall","src":"14975:79:21"},"nodeType":"YulExpressionStatement","src":"14975:79:21"},{"nodeType":"YulVariableDeclaration","src":"15063:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15083:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15077:5:21"},"nodeType":"YulFunctionCall","src":"15077:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"15067:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"15138:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"15146:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15134:3:21"},"nodeType":"YulFunctionCall","src":"15134:17:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15157:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"15162:2:21","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15153:3:21"},"nodeType":"YulFunctionCall","src":"15153:12:21"},{"name":"length","nodeType":"YulIdentifier","src":"15167:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"15099:34:21"},"nodeType":"YulFunctionCall","src":"15099:75:21"},"nodeType":"YulExpressionStatement","src":"15099:75:21"},{"nodeType":"YulVariableDeclaration","src":"15183:26:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"15197:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"15202:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15193:3:21"},"nodeType":"YulFunctionCall","src":"15193:16:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"15187:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"15218:29:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15240:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"15234:5:21"},"nodeType":"YulFunctionCall","src":"15234:13:21"},"variables":[{"name":"length_1","nodeType":"YulTypedName","src":"15222:8:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"15295:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"15303:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15291:3:21"},"nodeType":"YulFunctionCall","src":"15291:17:21"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"15314:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"15318:2:21","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15310:3:21"},"nodeType":"YulFunctionCall","src":"15310:11:21"},{"name":"length_1","nodeType":"YulIdentifier","src":"15323:8:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"15256:34:21"},"nodeType":"YulFunctionCall","src":"15256:76:21"},"nodeType":"YulExpressionStatement","src":"15256:76:21"},{"nodeType":"YulAssignment","src":"15341:33:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"15356:2:21"},{"name":"length_1","nodeType":"YulIdentifier","src":"15360:8:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15352:3:21"},"nodeType":"YulFunctionCall","src":"15352:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"15371:2:21","type":"","value":"26"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"15348:3:21"},"nodeType":"YulFunctionCall","src":"15348:26:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"15341:3:21"}]}]},"name":"abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes26_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"14933:3:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"14938:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"14946:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"14957:3:21","type":""}],"src":"14691:689:21"},{"body":{"nodeType":"YulBlock","src":"15417:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15434:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15441:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"15446:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"15437:3:21"},"nodeType":"YulFunctionCall","src":"15437:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15427:6:21"},"nodeType":"YulFunctionCall","src":"15427:31:21"},"nodeType":"YulExpressionStatement","src":"15427:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15474:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"15477:4:21","type":"","value":"0x12"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"15467:6:21"},"nodeType":"YulFunctionCall","src":"15467:15:21"},"nodeType":"YulExpressionStatement","src":"15467:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"15498:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"15501:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"15491:6:21"},"nodeType":"YulFunctionCall","src":"15491:15:21"},"nodeType":"YulExpressionStatement","src":"15491:15:21"}]},"name":"panic_error_0x12","nodeType":"YulFunctionDefinition","src":"15385:127:21"}]},"contents":"{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_bytes4(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n function validator_revert_bool(value)\n {\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let array_1 := allocate_memory(array_allocation_size_bytes(_1))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_array_bytes_dyn(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n let _2 := 0x20\n let _3 := 0xffffffffffffffff\n if gt(_1, _3) { panic_error_0x41() }\n let _4 := shl(5, _1)\n let dst := allocate_memory(add(_4, _2))\n let dst_1 := dst\n mstore(dst, _1)\n dst := add(dst, _2)\n let srcEnd := add(add(offset, _4), _2)\n if gt(srcEnd, end) { revert(0, 0) }\n let src := add(offset, _2)\n for { } lt(src, srcEnd) { src := add(src, _2) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, _3)\n {\n let _5 := 0\n revert(_5, _5)\n }\n mstore(dst, abi_decode_bytes(add(add(offset, innerOffset), _2), end))\n dst := add(dst, _2)\n }\n array := dst_1\n }\n function abi_decode_tuple_t_addresst_bytes4t_boolt_bytes_memory_ptrt_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_bytes4(add(headStart, 32))\n let value := calldataload(add(headStart, 64))\n validator_revert_bool(value)\n value2 := value\n let offset := calldataload(add(headStart, 96))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value3 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value4 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n value5 := abi_decode_array_bytes_dyn(add(headStart, offset_1), dataEnd)\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptrt_boolt_bytes4(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n let value := calldataload(add(headStart, 64))\n validator_revert_bool(value)\n value2 := value\n value3 := abi_decode_bytes4(add(headStart, 96))\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_decode_tuple_t_bytes32t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value1 := add(_2, 32)\n value2 := length\n }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\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 mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_addresst_bytes_memory_ptrt_bytes4t_uint256t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n value2 := abi_decode_bytes(add(headStart, offset), dataEnd)\n value3 := abi_decode_bytes4(add(headStart, 96))\n value4 := calldataload(add(headStart, 128))\n let offset_1 := calldataload(add(headStart, 160))\n if gt(offset_1, _1) { revert(0, 0) }\n value5 := abi_decode_array_bytes_dyn(add(headStart, offset_1), dataEnd)\n }\n function abi_encode_tuple_t_stringliteral_084c1ae45fd009f452cc63803fac735e228c87da5c92b93e5c2c729f81f4544a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Already resumed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__to_t_address_t_bytes4_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), and(value1, shl(224, 0xffffffff)))\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), 160)\n tail := abi_encode_bytes(value3, add(headStart, 160))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr_t_uint256__to_t_bool_t_bytes_memory_ptr_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 96)\n tail := abi_encode_bytes(value1, add(headStart, 96))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__to_t_bytes_memory_ptr_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, 96)\n let tail_1 := abi_encode_bytes(value0, add(headStart, 96))\n mstore(add(headStart, 32), iszero(iszero(value1)))\n mstore(add(headStart, 64), sub(tail_1, headStart))\n tail := abi_encode_bytes(value2, tail_1)\n }\n function abi_encode_tuple_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__to_t_address_t_address_t_bytes_memory_ptr_t_bool_t_bytes4_t_uint256__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), 192)\n tail := abi_encode_bytes(value2, add(headStart, 192))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n mstore(add(headStart, 128), and(value4, shl(224, 0xffffffff)))\n mstore(add(headStart, 160), value5)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n function abi_encode_tuple_t_contract$_Relayer_$4434__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_stringliteral_cbb4126b309fe79c752a430af3a0ab30938b35b3320ce83c14b54ee6ea707be3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 11)\n mstore(add(headStart, 64), \"code length\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr__to_t_address_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_tuple_t_boolt_bytes_memory_ptr_fromMemory(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value1 := array\n }\n function abi_encode_tuple_t_stringliteral_cd7dd0c5ed3c0ec0661e51d1cef4098f6bac1c2023e4dcc1fe9c1e5bf5f7b719__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Already dispatched\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_bytes4_t_bool_t_bytes_memory_ptr__to_t_bytes4_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n mstore(add(headStart, 32), iszero(iszero(value1)))\n mstore(add(headStart, 64), 96)\n tail := abi_encode_bytes(value2, add(headStart, 96))\n }\n function abi_encode_tuple_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__to_t_bytes32_t_array$_t_bytes_memory_ptr_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 64)\n mstore(headStart, value0)\n let _1 := 32\n mstore(add(headStart, _1), 64)\n let pos := tail_1\n let length := mload(value1)\n mstore(tail_1, length)\n pos := add(headStart, 96)\n let tail_2 := add(add(headStart, shl(5, length)), 96)\n let srcPtr := add(value1, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, add(sub(tail_2, headStart), not(95)))\n tail_2 := abi_encode_bytes(mload(srcPtr), tail_2)\n srcPtr := add(srcPtr, _1)\n pos := add(pos, _1)\n }\n tail := tail_2\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := mload(headStart)\n validator_revert_bool(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_3105165408717f439db23a216c2fefb66f050d2f75fed2684294c0ce3549729e__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Invalid signatures\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_509b3fe0d5121bbb32ee1bb55ec1184b06557f54aac643108c7855fbed522fd0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"No supermajority\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_packed_t_stringliteral_9af2d9c228f6cfddaa6d1e5b94e0bce4ab16bd9a472a2b7fbfd74ebff4c720b4_t_bytes_memory_ptr_t_bytes_memory_ptr__to_t_bytes26_t_bytes_memory_ptr_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, 0x19457468657265756d205369676e6564204d6573736167653a0a000000000000)\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), add(pos, 26), length)\n let _1 := add(pos, length)\n let length_1 := mload(value1)\n copy_memory_to_memory_with_cleanup(add(value1, 0x20), add(_1, 26), length_1)\n end := add(add(_1, length_1), 26)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xB0A6BD1 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x139B4A87 EQ PUSH2 0x64 JUMPI DUP1 PUSH4 0x5390E474 EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0xADDE344C EQ PUSH2 0xCF JUMPI DUP1 PUSH4 0xC1B2F734 EQ PUSH2 0xFD JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0xC55 JUMP JUMPDEST PUSH2 0x11D JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x70 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x84 PUSH2 0x7F CALLDATASIZE PUSH1 0x4 PUSH2 0xCF5 JUMP JUMPDEST PUSH2 0x2F5 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB7 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0xD66 JUMP JUMPDEST PUSH2 0x37F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0x8E JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xEF PUSH2 0xEA CALLDATASIZE PUSH1 0x4 PUSH2 0xDE2 JUMP JUMPDEST PUSH2 0x45E JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x8E SWAP3 SWAP2 SWAP1 PUSH2 0xE90 JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x109 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x118 CALLDATASIZE PUSH1 0x4 PUSH2 0xEB3 JUMP JUMPDEST PUSH2 0x529 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x188 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xF PUSH1 0x24 DUP3 ADD MSTORE PUSH15 0x105B1C9958591E481C995CDD5B5959 PUSH1 0x8A SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x1A3 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF1A JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x1BE DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 DUP7 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x1D6 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xF68 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT AND PUSH1 0x20 DUP3 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB DUP4 DUP2 DUP4 AND OR DUP4 MSTORE POP POP POP POP SWAP1 POP PUSH1 0x0 DUP1 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x22C SWAP2 SWAP1 PUSH2 0xF93 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x26A JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x26F JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP2 POP SWAP2 POP DUP6 DUP11 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0x63B4581C24AA1258B32A3ED8AA708A03DDA9F962411C5C23B78087B68CF13856 DUP6 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x2B2 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFAF JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x3 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP5 DUP4 MSTORE SWAP4 SWAP1 MSTORE SWAP2 SWAP1 SWAP2 KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP POP JUMP JUMPDEST CALLER PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 SLOAD SWAP1 MLOAD SWAP2 SWAP3 PUSH32 0x7AB318DA6C14CBF3D1875045814B566FDF036863BCC775BB3A6959EAD4CA8E15 SWAP3 PUSH2 0x33E SWAP3 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 DUP10 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 DUP1 SLOAD SWAP2 PUSH2 0x361 DUP4 PUSH2 0x103A JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP CALLER PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 PUSH1 0x20 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x3C4 PUSH1 0x0 DUP7 DUP7 DUP7 DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP PUSH2 0x885 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x189ACDBD PUSH1 0xE3 SHL DUP2 MSTORE ADDRESS PUSH1 0x4 DUP3 ADD MSTORE SWAP1 SWAP2 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND SWAP1 PUSH4 0xC4D66DE8 SWAP1 PUSH1 0x24 ADD PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 DUP1 EXTCODESIZE ISZERO DUP1 ISZERO PUSH2 0x408 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP GAS CALL ISZERO DUP1 ISZERO PUSH2 0x41C JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND SWAP3 POP PUSH32 0xA5A933C2D9902E11B856EB9AD37FFC16A70221D90F75F5D5219D9DD600F9FC9 SWAP2 POP PUSH1 0x0 SWAP1 LOG2 SWAP1 POP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 PUSH1 0x0 DUP6 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x4AA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH4 0x82DCC731 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND SWAP1 PUSH4 0x82DCC731 SWAP1 PUSH2 0x4D8 SWAP1 DUP8 SWAP1 DUP8 SWAP1 PUSH1 0x4 ADD PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x4F5 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x51D SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP1 SWAP7 SWAP1 SWAP6 POP SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP6 DUP5 MSTORE SWAP1 SWAP2 MSTORE SWAP1 KECCAK256 SLOAD PUSH1 0xFF AND ISZERO PUSH2 0x592 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x105B1C9958591E48191A5CDC185D18DA1959 PUSH1 0x72 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP7 DUP7 DUP7 PUSH1 0x0 DUP8 DUP8 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x5B0 SWAP7 SWAP6 SWAP5 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0xFE6 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE SWAP1 POP PUSH2 0x5CB DUP2 DUP4 PUSH2 0x70C JUMP JUMPDEST PUSH1 0x0 DUP8 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND EXTCODESIZE GT PUSH2 0x613 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0xB PUSH1 0x24 DUP3 ADD MSTORE PUSH11 0xC6DEC8CA40D8CADCCEE8D PUSH1 0xAB SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 DUP1 DUP9 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH4 0x5D903F03 DUP10 DUP10 PUSH1 0x40 MLOAD DUP4 PUSH4 0xFFFFFFFF AND PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x644 SWAP3 SWAP2 SWAP1 PUSH2 0x1061 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x663 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x0 DUP3 RETURNDATACOPY PUSH1 0x1F RETURNDATASIZE SWAP1 DUP2 ADD PUSH1 0x1F NOT AND DUP3 ADD PUSH1 0x40 MSTORE PUSH2 0x68B SWAP2 SWAP1 DUP2 ADD SWAP1 PUSH2 0x1085 JUMP JUMPDEST SWAP2 POP SWAP2 POP DUP5 DUP10 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH32 0xF3DFF5C6A7D612C95DE0AEF2822489AEB43D5DA7C5140DE276F31417F9475D72 DUP9 DUP6 DUP6 PUSH1 0x40 MLOAD PUSH2 0x6CD SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x1112 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG3 POP POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP6 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x2 PUSH1 0x20 SWAP1 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 SWAP4 DUP4 MSTORE SWAP3 SWAP1 MSTORE KECCAK256 DUP1 SLOAD PUSH1 0xFF NOT AND PUSH1 0x1 OR SWAP1 SSTORE POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x717 DUP4 PUSH2 0x905 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x40 MLOAD PUSH4 0x3CA3E1FD PUSH1 0xE1 SHL DUP2 MSTORE SWAP2 SWAP3 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND SWAP1 PUSH4 0x7947C3FA SWAP1 PUSH2 0x74A SWAP1 DUP5 SWAP1 DUP7 SWAP1 PUSH1 0x4 ADD PUSH2 0x1145 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x767 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x78B SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x7CC JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x12 PUSH1 0x24 DUP3 ADD MSTORE PUSH18 0x496E76616C6964207369676E617475726573 PUSH1 0x70 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST PUSH1 0x0 SLOAD DUP3 MLOAD PUSH1 0x40 MLOAD PUSH4 0x3E99D941 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP3 AND SWAP2 PUSH4 0x3E99D941 SWAP2 PUSH2 0x800 SWAP2 PUSH1 0x4 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x81D JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x841 SWAP2 SWAP1 PUSH2 0x11AF JUMP JUMPDEST PUSH2 0x880 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x10 PUSH1 0x24 DUP3 ADD MSTORE PUSH16 0x4E6F2073757065726D616A6F72697479 PUSH1 0x80 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x17F JUMP JUMPDEST POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP4 SELFBALANCE LT ISZERO PUSH2 0x8B1 JUMPI PUSH1 0x40 MLOAD PUSH4 0x392EFB2B PUSH1 0xE2 SHL DUP2 MSTORE SELFBALANCE PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x24 DUP2 ADD DUP6 SWAP1 MSTORE PUSH1 0x44 ADD PUSH2 0x17F JUMP JUMPDEST DUP2 MLOAD PUSH1 0x0 SUB PUSH2 0x8D3 JUMPI PUSH1 0x40 MLOAD PUSH4 0x13289277 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP3 DUP3 MLOAD PUSH1 0x20 DUP5 ADD DUP7 CREATE2 SWAP1 POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x457 JUMPI PUSH1 0x40 MLOAD PUSH4 0x3A0BA961 PUSH1 0xE1 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x911 DUP3 MLOAD PUSH2 0x940 JUMP JUMPDEST DUP3 PUSH1 0x40 MLOAD PUSH1 0x20 ADD PUSH2 0x923 SWAP3 SWAP2 SWAP1 PUSH2 0x11CC JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 DUP4 SUB SUB DUP2 MSTORE SWAP1 PUSH1 0x40 MSTORE DUP1 MLOAD SWAP1 PUSH1 0x20 ADD KECCAK256 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x94D DUP4 PUSH2 0x9D3 JUMP JUMPDEST PUSH1 0x1 ADD SWAP1 POP PUSH1 0x0 DUP2 PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x96D JUMPI PUSH2 0x96D PUSH2 0xAF1 JUMP 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 0x997 JUMPI PUSH1 0x20 DUP3 ADD DUP2 DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP SWAP1 POP DUP2 DUP2 ADD PUSH1 0x20 ADD JUMPDEST PUSH1 0x0 NOT ADD PUSH16 0x181899199A1A9B1B9C1CB0B131B232B3 PUSH1 0x81 SHL PUSH1 0xA DUP7 MOD BYTE DUP2 MSTORE8 PUSH1 0xA DUP6 DIV SWAP5 POP DUP5 PUSH2 0x9A1 JUMPI POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 LT PUSH2 0xA12 JUMPI PUSH19 0x184F03E93FF9F4DAA797ED6E38ED64BF6A1F01 PUSH1 0x40 SHL DUP4 DIV SWAP3 POP PUSH1 0x40 ADD JUMPDEST PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 LT PUSH2 0xA3E JUMPI PUSH14 0x4EE2D6D415B85ACEF8100000000 DUP4 DIV SWAP3 POP PUSH1 0x20 ADD JUMPDEST PUSH7 0x2386F26FC10000 DUP4 LT PUSH2 0xA5C JUMPI PUSH7 0x2386F26FC10000 DUP4 DIV SWAP3 POP PUSH1 0x10 ADD JUMPDEST PUSH4 0x5F5E100 DUP4 LT PUSH2 0xA74 JUMPI PUSH4 0x5F5E100 DUP4 DIV SWAP3 POP PUSH1 0x8 ADD JUMPDEST PUSH2 0x2710 DUP4 LT PUSH2 0xA88 JUMPI PUSH2 0x2710 DUP4 DIV SWAP3 POP PUSH1 0x4 ADD JUMPDEST PUSH1 0x64 DUP4 LT PUSH2 0xA9A JUMPI PUSH1 0x64 DUP4 DIV SWAP3 POP PUSH1 0x2 ADD JUMPDEST PUSH1 0xA DUP4 LT PUSH2 0xAA6 JUMPI PUSH1 0x1 ADD JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 AND DUP2 EQ PUSH2 0xAC3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0xAEE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0xB30 JUMPI PUSH2 0xB30 PUSH2 0xAF1 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0xB52 JUMPI PUSH2 0xB52 PUSH2 0xAF1 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xB71 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0xB84 PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST PUSH2 0xB07 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0xB99 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xBC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x20 PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP4 GT ISZERO PUSH2 0xBE4 JUMPI PUSH2 0xBE4 PUSH2 0xAF1 JUMP JUMPDEST DUP3 PUSH1 0x5 SHL PUSH2 0xBF3 DUP4 DUP3 ADD PUSH2 0xB07 JUMP JUMPDEST SWAP4 DUP5 MSTORE DUP6 DUP2 ADD DUP4 ADD SWAP4 DUP4 DUP2 ADD SWAP1 DUP9 DUP7 GT ISZERO PUSH2 0xC0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP5 DUP9 ADD SWAP3 POP JUMPDEST DUP6 DUP4 LT ISZERO PUSH2 0xC49 JUMPI DUP3 CALLDATALOAD DUP5 DUP2 GT ISZERO PUSH2 0xC2B JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0xC39 DUP11 DUP8 DUP4 DUP13 ADD ADD PUSH2 0xB60 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP5 ADD SWAP2 SWAP1 DUP5 ADD SWAP1 PUSH2 0xC13 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xC6E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xC77 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xC85 PUSH1 0x20 DUP9 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH2 0xC95 DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP4 POP PUSH1 0x60 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xCB2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xCBE DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP5 POP PUSH1 0x80 DUP10 ADD CALLDATALOAD SWAP4 POP PUSH1 0xA0 DUP10 ADD CALLDATALOAD SWAP2 POP DUP1 DUP3 GT ISZERO PUSH2 0xCDB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xCE8 DUP10 DUP3 DUP11 ADD PUSH2 0xBB6 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP6 POP SWAP3 SWAP6 POP SWAP3 SWAP6 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x80 DUP6 DUP8 SUB SLT ISZERO PUSH2 0xD0B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD14 DUP6 PUSH2 0xAAC JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xD30 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xD3C DUP8 DUP3 DUP9 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP4 POP POP PUSH1 0x40 DUP6 ADD CALLDATALOAD PUSH2 0xD4D DUP2 PUSH2 0xAE0 JUMP JUMPDEST SWAP2 POP PUSH2 0xD5B PUSH1 0x60 DUP7 ADD PUSH2 0xAC8 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP6 SWAP2 SWAP5 POP SWAP3 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x40 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xD7B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xD9A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0xDAE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0xDBD JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP8 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0xDCF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP5 POP DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0xDF7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE00 DUP5 PUSH2 0xAAC JUMP JUMPDEST SWAP3 POP PUSH2 0xE0E PUSH1 0x20 DUP6 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xE2A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xE36 DUP7 DUP3 DUP8 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xE5B JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0xE43 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0xE7C DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xEAB PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0xC0 DUP8 DUP10 SUB SLT ISZERO PUSH2 0xECC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xED5 DUP8 PUSH2 0xAAC JUMP JUMPDEST SWAP6 POP PUSH2 0xEE3 PUSH1 0x20 DUP9 ADD PUSH2 0xAAC JUMP JUMPDEST SWAP5 POP PUSH1 0x40 DUP8 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0xF00 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xF0C DUP11 DUP4 DUP12 ADD PUSH2 0xB60 JUMP JUMPDEST SWAP6 POP PUSH2 0xCBE PUSH1 0x60 DUP11 ADD PUSH2 0xAC8 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP7 AND DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP6 AND PUSH1 0x20 DUP3 ADD MSTORE DUP4 ISZERO ISZERO PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0xA0 PUSH1 0x60 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xF56 SWAP1 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x80 DUP4 ADD MSTORE SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST DUP4 ISZERO ISZERO DUP2 MSTORE PUSH1 0x60 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0xF83 PUSH1 0x60 DUP4 ADD DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x40 DUP4 ADD MSTORE SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0xFA5 DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0xE40 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x60 DUP2 MSTORE PUSH1 0x0 PUSH2 0xFC2 PUSH1 0x60 DUP4 ADD DUP7 PUSH2 0xE64 JUMP JUMPDEST DUP5 ISZERO ISZERO PUSH1 0x20 DUP5 ADD MSTORE DUP3 DUP2 SUB PUSH1 0x40 DUP5 ADD MSTORE PUSH2 0xFDC DUP2 DUP6 PUSH2 0xE64 JUMP JUMPDEST SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP8 DUP2 AND DUP3 MSTORE DUP7 AND PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0xC0 PUSH1 0x40 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0x1012 SWAP1 DUP4 ADD DUP8 PUSH2 0xE64 JUMP JUMPDEST SWAP5 ISZERO ISZERO PUSH1 0x60 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP3 SWAP1 SWAP3 AND PUSH1 0x80 DUP4 ADD MSTORE PUSH1 0xA0 SWAP1 SWAP2 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x105A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xEAB SWAP1 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1098 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH2 0x10A3 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH1 0x20 DUP5 ADD MLOAD SWAP1 SWAP3 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x10C0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x10D1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0x10DF PUSH2 0xB7F DUP3 PUSH2 0xB38 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x10F4 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x1105 DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0xE40 JUMP JUMPDEST DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH4 0xFFFFFFFF PUSH1 0xE0 SHL DUP5 AND DUP2 MSTORE DUP3 ISZERO ISZERO PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x113C PUSH1 0x60 DUP4 ADD DUP5 PUSH2 0xE64 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD DUP5 DUP4 MSTORE PUSH1 0x20 PUSH1 0x40 DUP2 DUP6 ADD MSTORE DUP2 DUP6 MLOAD DUP1 DUP5 MSTORE PUSH1 0x60 DUP7 ADD SWAP2 POP PUSH1 0x60 DUP2 PUSH1 0x5 SHL DUP8 ADD ADD SWAP4 POP DUP3 DUP8 ADD PUSH1 0x0 JUMPDEST DUP3 DUP2 LT ISZERO PUSH2 0x11A1 JUMPI PUSH1 0x5F NOT DUP9 DUP8 SUB ADD DUP5 MSTORE PUSH2 0x118F DUP7 DUP4 MLOAD PUSH2 0xE64 JUMP JUMPDEST SWAP6 POP SWAP3 DUP5 ADD SWAP3 SWAP1 DUP5 ADD SWAP1 PUSH1 0x1 ADD PUSH2 0x1173 JUMP JUMPDEST POP SWAP4 SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x11C1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH2 0x457 DUP2 PUSH2 0xAE0 JUMP JUMPDEST PUSH32 0x19457468657265756D205369676E6564204D6573736167653A0A000000000000 DUP2 MSTORE PUSH1 0x0 DUP4 MLOAD PUSH2 0x1204 DUP2 PUSH1 0x1A DUP6 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST DUP4 MLOAD SWAP1 DUP4 ADD SWAP1 PUSH2 0x121B DUP2 PUSH1 0x1A DUP5 ADD PUSH1 0x20 DUP9 ADD PUSH2 0xE40 JUMP JUMPDEST ADD PUSH1 0x1A ADD SWAP5 SWAP4 POP POP POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x25 0xCC GASPRICE PUSH19 0xA930C389A44E03E7195DB7E4B2A21F2EC377B 0xAF 0xEF SSTORE 0xEE 0x27 LOG0 0xB3 MOD 0xA6 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"410:4002:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3560:850;;;;;;:::i;:::-;;:::i;:::-;;1267:384;;;;;;;;;;-1:-1:-1;1267:384:17;;;;;:::i;:::-;;:::i;:::-;;;4181:25:21;;;4169:2;4154:18;1267:384:17;;;;;;;;530:311;;;;;;;;;;-1:-1:-1;530:311:17;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5045:32:21;;;5027:51;;5015:2;5000:18;530:311:17;4881:203:21;3045:286:17;;;;;;;;;;-1:-1:-1;3045:286:17;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;2269:770::-;;;;;;;;;;-1:-1:-1;2269:770:17;;;;;:::i;:::-;;:::i;3560:850::-;-1:-1:-1;;;;;3773:15:17;;;;;;:7;:15;;;;;;;;:22;;;;;;;;;;;3772:23;3764:51;;;;-1:-1:-1;;;3764:51:17;;7467:2:21;3764:51:17;;;7449:21:21;7506:2;7486:18;;;7479:30;-1:-1:-1;;;7525:18:21;;;7518:45;7580:18;;3764:51:17;;;;;;;;;3825:20;3872:6;3892:8;3914:7;3935:8;3957:5;3848:124;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3825:147;;3982:36;3998:7;4007:10;3982:15;:36::i;:::-;4029:17;4085:8;4107:7;4128:8;4150:5;4049:116;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;4049:116:17;;;;;;;-1:-1:-1;;;;;4049:116:17;;;;;;;;;;;4029:136;;4176:13;4191:22;4217:6;-1:-1:-1;;;;;4217:11:17;4249:9;4277:6;4217:82;4294:4;4217:82;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4175:124;;;;4358:5;4323:6;-1:-1:-1;;;;;4315:49:17;;4331:4;4337:8;4347:9;4315:49;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;4374:15:17;;;;;;;:7;:15;;;;;;;;:22;;;;;;;;;;:29;;-1:-1:-1;;4374:29:17;4399:4;4374:29;;;-1:-1:-1;;;;;3560:850:17:o;1267:384::-;1445:10;1403:4;1551:18;;;:6;:18;;;;;;;1424:155;;1403:4;;1424:155;;;;1469:6;;1489:4;;1507:8;;1529;;1551:18;1424:155;:::i;:::-;;;;;;;;1596:10;1589:18;;;;:6;:18;;;;;:20;;;;;;:::i;:::-;;;;-1:-1:-1;;1633:10:17;1626:18;;;;:6;:18;;;;;;;1267:384;-1:-1:-1;;;;;1267:384:17:o;530:311::-;627:7;646:23;672:33;687:1;690:4;696:8;;672:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;672:14:17;;-1:-1:-1;;;672:33:17:i;:::-;715:41;;-1:-1:-1;;;715:41:17;;751:4;715:41;;;5027:51:21;646:59:17;;-1:-1:-1;;;;;;715:35:17;;;;;5000:18:21;;715:41:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;771:31:17;;-1:-1:-1;;;;;771:31:17;;;-1:-1:-1;771:31:17;;-1:-1:-1;771:31:17;;;819:15;-1:-1:-1;530:311:17;;;;;;:::o;3045:286::-;3162:12;3176:21;3238:1;3217:6;-1:-1:-1;;;;;3217:18:17;;:22;3209:46;;;;-1:-1:-1;;;3209:46:17;;10643:2:21;3209:46:17;;;10625:21:21;10682:2;10662:18;;;10655:30;-1:-1:-1;;;10701:18:21;;;10694:41;10752:18;;3209:46:17;10441:335:21;3209:46:17;3287:37;;-1:-1:-1;;;3287:37:17;;-1:-1:-1;;;;;3287:23:17;;;;;:37;;3311:6;;3319:4;;3287:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3287:37:17;;;;;;;;;;;;:::i;:::-;3265:59;;;;-1:-1:-1;3045:286:17;-1:-1:-1;;;;3045:286:17:o;2269:770::-;-1:-1:-1;;;;;2474:18:17;;;;;;:10;:18;;;;;;;;:25;;;;;;;;;;;2473:26;2465:57;;;;-1:-1:-1;;;2465:57:17;;12076:2:21;2465:57:17;;;12058:21:21;12115:2;12095:18;;;12088:30;-1:-1:-1;;;12134:18:21;;;12127:48;12192:18;;2465:57:17;11874:342:21;2465:57:17;2533:20;2580:6;2600;2620:4;2638:5;2657:8;2679:5;2556:138;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2533:161;;2704:36;2720:7;2729:10;2704:15;:36::i;:::-;2780:1;2759:6;-1:-1:-1;;;;;2759:18:17;;:22;2751:46;;;;-1:-1:-1;;;2751:46:17;;10643:2:21;2751:46:17;;;10625:21:21;10682:2;10662:18;;;10655:30;-1:-1:-1;;;10701:18:21;;;10694:41;10752:18;;2751:46:17;10441:335:21;2751:46:17;2808:12;2822:21;2855:6;-1:-1:-1;;;;;2847:26:17;;2887:6;2907:4;2847:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2847:74:17;;;;;;;;;;;;:::i;:::-;2807:114;;;;2984:5;2947:6;-1:-1:-1;;;;;2936:54:17;;2955:8;2965:7;2974:8;2936:54;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;;;;;;;;3000:18:17;;;;;;;:10;:18;;;;;;;;:25;;;;;;;:32;;-1:-1:-1;;3000:32:17;3028:4;3000:32;;;-1:-1:-1;;;;2269:770:17:o;1817:446::-;1943:12;1958:39;:14;:37;:39::i;:::-;2028:16;;:59;;-1:-1:-1;;;2028:59:17;;1943:54;;-1:-1:-1;;;;;;2028:16:17;;:41;;:59;;1943:54;;2076:10;;2028:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2007:124;;;;-1:-1:-1;;;2007:124:17;;13948:2:21;2007:124:17;;;13930:21:21;13987:2;13967:18;;;13960:30;-1:-1:-1;;;14006:18:21;;;13999:48;14064:18;;2007:124:17;13746:342:21;2007:124:17;2162:16;;2196:17;;2162:52;;-1:-1:-1;;;2162:52:17;;-1:-1:-1;;;;;2162:16:17;;;;:33;;:52;;;;4181:25:21;;;4169:2;4154:18;;4035:177;2162:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2141:115;;;;-1:-1:-1;;;2141:115:17;;14295:2:21;2141:115:17;;;14277:21:21;14334:2;14314:18;;;14307:30;-1:-1:-1;;;14353:18:21;;;14346:46;14409:18;;2141:115:17;14093:340:21;2141:115:17;1933:330;1817:446;;:::o;1413:573:7:-;1500:12;1552:6;1528:21;:30;1524:125;;;1581:57;;-1:-1:-1;;;1581:57:7;;1608:21;1581:57;;;14612:25:21;14653:18;;;14646:34;;;14585:18;;1581:57:7;14438:248:21;1524:125:7;1662:8;:15;1681:1;1662:20;1658:80;;1705:22;;-1:-1:-1;;;1705:22:7;;;;;;;;;;;1658:80;1875:4;1864:8;1858:15;1851:4;1841:8;1837:19;1829:6;1821:59;1813:67;-1:-1:-1;;;;;;1903:18:7;;1899:81;;1944:25;;-1:-1:-1;;;1944:25:7;;;;;;;;;;;2148:229:10;2225:7;2326:32;2343:7;:14;2326:16;:32::i;:::-;2361:7;2273:96;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2263:107;;;;;;2244:126;;2148:229;;;:::o;637:698:8:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;817:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:8;-1:-1:-1;794:41:8;-1:-1:-1;955:28:8;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:8;-1:-1:-1;;;1175:2:8;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:8;1010:282;1256:21;-1:-1:-1;1312:6:8;637:698;-1:-1:-1;;;637:698:8:o;12214:916:11:-;12267:7;;-1:-1:-1;;;12342:17:11;;12338:103;;-1:-1:-1;;;12379:17:11;;;-1:-1:-1;12424:2:11;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:11;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:11;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:11;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:11;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:11;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13025:66;13117:6;12214:916;-1:-1:-1;;12214:916:11:o;14:173:21:-;82:20;;-1:-1:-1;;;;;131:31:21;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:::-;259:20;;-1:-1:-1;;;;;;308:32:21;;298:43;;288:71;;355:1;352;345:12;370:118;456:5;449:13;442:21;435:5;432:32;422:60;;478:1;475;468:12;422:60;370:118;:::o;493:127::-;554:10;549:3;545:20;542:1;535:31;585:4;582:1;575:15;609:4;606:1;599:15;625:275;696:2;690:9;761:2;742:13;;-1:-1:-1;;738:27:21;726:40;;796:18;781:34;;817:22;;;778:62;775:88;;;843:18;;:::i;:::-;879:2;872:22;625:275;;-1:-1:-1;625:275:21:o;905:186::-;953:4;986:18;978:6;975:30;972:56;;;1008:18;;:::i;:::-;-1:-1:-1;1074:2:21;1053:15;-1:-1:-1;;1049:29:21;1080:4;1045:40;;905:186::o;1096:462::-;1138:5;1191:3;1184:4;1176:6;1172:17;1168:27;1158:55;;1209:1;1206;1199:12;1158:55;1245:6;1232:20;1276:48;1292:31;1320:2;1292:31;:::i;:::-;1276:48;:::i;:::-;1349:2;1340:7;1333:19;1395:3;1388:4;1383:2;1375:6;1371:15;1367:26;1364:35;1361:55;;;1412:1;1409;1402:12;1361:55;1477:2;1470:4;1462:6;1458:17;1451:4;1442:7;1438:18;1425:55;1525:1;1500:16;;;1518:4;1496:27;1489:38;;;;1504:7;1096:462;-1:-1:-1;;;1096:462:21:o;1563:941::-;1615:5;1668:3;1661:4;1653:6;1649:17;1645:27;1635:55;;1686:1;1683;1676:12;1635:55;1722:6;1709:20;1748:4;1771:18;1808:2;1804;1801:10;1798:36;;;1814:18;;:::i;:::-;1860:2;1857:1;1853:10;1883:28;1907:2;1903;1899:11;1883:28;:::i;:::-;1945:15;;;2015;;;2011:24;;;1976:12;;;;2047:15;;;2044:35;;;2075:1;2072;2065:12;2044:35;2111:2;2103:6;2099:15;2088:26;;2123:352;2139:6;2134:3;2131:15;2123:352;;;2225:3;2212:17;2261:2;2248:11;2245:19;2242:109;;;2305:1;2334:2;2330;2323:14;2242:109;2376:56;2428:3;2423:2;2409:11;2401:6;2397:24;2393:33;2376:56;:::i;:::-;2364:69;;-1:-1:-1;2156:12:21;;;;2453;;;;2123:352;;;2493:5;1563:941;-1:-1:-1;;;;;;;;1563:941:21:o;2509:920::-;2652:6;2660;2668;2676;2684;2692;2745:3;2733:9;2724:7;2720:23;2716:33;2713:53;;;2762:1;2759;2752:12;2713:53;2785:29;2804:9;2785:29;:::i;:::-;2775:39;;2833:37;2866:2;2855:9;2851:18;2833:37;:::i;:::-;2823:47;;2920:2;2909:9;2905:18;2892:32;2933:28;2955:5;2933:28;:::i;:::-;2980:5;-1:-1:-1;3036:2:21;3021:18;;3008:32;3059:18;3089:14;;;3086:34;;;3116:1;3113;3106:12;3086:34;3139:49;3180:7;3171:6;3160:9;3156:22;3139:49;:::i;:::-;3129:59;;3235:3;3224:9;3220:19;3207:33;3197:43;;3293:3;3282:9;3278:19;3265:33;3249:49;;3323:2;3313:8;3310:16;3307:36;;;3339:1;3336;3329:12;3307:36;;3362:61;3415:7;3404:8;3393:9;3389:24;3362:61;:::i;:::-;3352:71;;;2509:920;;;;;;;;:::o;3434:596::-;3525:6;3533;3541;3549;3602:3;3590:9;3581:7;3577:23;3573:33;3570:53;;;3619:1;3616;3609:12;3570:53;3642:29;3661:9;3642:29;:::i;:::-;3632:39;;3722:2;3711:9;3707:18;3694:32;3749:18;3741:6;3738:30;3735:50;;;3781:1;3778;3771:12;3735:50;3804:49;3845:7;3836:6;3825:9;3821:22;3804:49;:::i;:::-;3794:59;;;3903:2;3892:9;3888:18;3875:32;3916:28;3938:5;3916:28;:::i;:::-;3963:5;-1:-1:-1;3987:37:21;4020:2;4005:18;;3987:37;:::i;:::-;3977:47;;3434:596;;;;;;;:::o;4217:659::-;4296:6;4304;4312;4365:2;4353:9;4344:7;4340:23;4336:32;4333:52;;;4381:1;4378;4371:12;4333:52;4417:9;4404:23;4394:33;;4478:2;4467:9;4463:18;4450:32;4501:18;4542:2;4534:6;4531:14;4528:34;;;4558:1;4555;4548:12;4528:34;4596:6;4585:9;4581:22;4571:32;;4641:7;4634:4;4630:2;4626:13;4622:27;4612:55;;4663:1;4660;4653:12;4612:55;4703:2;4690:16;4729:2;4721:6;4718:14;4715:34;;;4745:1;4742;4735:12;4715:34;4790:7;4785:2;4776:6;4772:2;4768:15;4764:24;4761:37;4758:57;;;4811:1;4808;4801:12;4758:57;4842:2;4838;4834:11;4824:21;;4864:6;4854:16;;;;;4217:659;;;;;:::o;5089:468::-;5175:6;5183;5191;5244:2;5232:9;5223:7;5219:23;5215:32;5212:52;;;5260:1;5257;5250:12;5212:52;5283:29;5302:9;5283:29;:::i;:::-;5273:39;;5331:38;5365:2;5354:9;5350:18;5331:38;:::i;:::-;5321:48;;5420:2;5409:9;5405:18;5392:32;5447:18;5439:6;5436:30;5433:50;;;5479:1;5476;5469:12;5433:50;5502:49;5543:7;5534:6;5523:9;5519:22;5502:49;:::i;:::-;5492:59;;;5089:468;;;;;:::o;5562:250::-;5647:1;5657:113;5671:6;5668:1;5665:13;5657:113;;;5747:11;;;5741:18;5728:11;;;5721:39;5693:2;5686:10;5657:113;;;-1:-1:-1;;5804:1:21;5786:16;;5779:27;5562:250::o;5817:270::-;5858:3;5896:5;5890:12;5923:6;5918:3;5911:19;5939:76;6008:6;6001:4;5996:3;5992:14;5985:4;5978:5;5974:16;5939:76;:::i;:::-;6069:2;6048:15;-1:-1:-1;;6044:29:21;6035:39;;;;6076:4;6031:50;;5817:270;-1:-1:-1;;5817:270:21:o;6092:298::-;6275:6;6268:14;6261:22;6250:9;6243:41;6320:2;6315;6304:9;6300:18;6293:30;6224:4;6340:44;6380:2;6369:9;6365:18;6357:6;6340:44;:::i;:::-;6332:52;6092:298;-1:-1:-1;;;;6092:298:21:o;6395:865::-;6541:6;6549;6557;6565;6573;6581;6634:3;6622:9;6613:7;6609:23;6605:33;6602:53;;;6651:1;6648;6641:12;6602:53;6674:29;6693:9;6674:29;:::i;:::-;6664:39;;6722:38;6756:2;6745:9;6741:18;6722:38;:::i;:::-;6712:48;;6811:2;6800:9;6796:18;6783:32;6834:18;6875:2;6867:6;6864:14;6861:34;;;6891:1;6888;6881:12;6861:34;6914:49;6955:7;6946:6;6935:9;6931:22;6914:49;:::i;:::-;6904:59;;6982:37;7015:2;7004:9;7000:18;6982:37;:::i;7609:565::-;-1:-1:-1;;;;;7860:32:21;;7842:51;;-1:-1:-1;;;;;;7929:33:21;;7924:2;7909:18;;7902:61;8006:14;;7999:22;7994:2;7979:18;;7972:50;7880:3;8053:2;8038:18;;8031:31;;;-1:-1:-1;;8079:45:21;;8104:19;;8096:6;8079:45;:::i;:::-;8071:53;;8161:6;8155:3;8144:9;8140:19;8133:35;7609:565;;;;;;;;:::o;8179:369::-;8390:6;8383:14;8376:22;8365:9;8358:41;8435:2;8430;8419:9;8415:18;8408:30;8339:4;8455:44;8495:2;8484:9;8480:18;8472:6;8455:44;:::i;:::-;8447:52;;8535:6;8530:2;8519:9;8515:18;8508:34;8179:369;;;;;;:::o;8553:287::-;8682:3;8720:6;8714:13;8736:66;8795:6;8790:3;8783:4;8775:6;8771:17;8736:66;:::i;:::-;8818:16;;;;;8553:287;-1:-1:-1;;8553:287:21:o;8845:458::-;9060:2;9049:9;9042:21;9023:4;9086:44;9126:2;9115:9;9111:18;9103:6;9086:44;:::i;:::-;9180:6;9173:14;9166:22;9161:2;9150:9;9146:18;9139:50;9237:9;9229:6;9225:22;9220:2;9209:9;9205:18;9198:50;9265:32;9290:6;9282;9265:32;:::i;:::-;9257:40;8845:458;-1:-1:-1;;;;;;8845:458:21:o;9308:667::-;-1:-1:-1;;;;;9625:15:21;;;9607:34;;9677:15;;9672:2;9657:18;;9650:43;9729:3;9724:2;9709:18;;9702:31;;;9550:4;;9750:45;;9775:19;;9767:6;9750:45;:::i;:::-;9838:14;;9831:22;9826:2;9811:18;;9804:50;-1:-1:-1;;;;;;;9891:33:21;;;;9885:3;9870:19;;9863:62;9956:3;9941:19;;;9934:35;9742:53;9308:667;-1:-1:-1;;;9308:667:21:o;9980:232::-;10019:3;10040:17;;;10037:140;;10099:10;10094:3;10090:20;10087:1;10080:31;10134:4;10131:1;10124:15;10162:4;10159:1;10152:15;10037:140;-1:-1:-1;10204:1:21;10193:13;;9980:232::o;10781:314::-;-1:-1:-1;;;;;10956:32:21;;10938:51;;11025:2;11020;11005:18;;10998:30;;;-1:-1:-1;;11045:44:21;;11070:18;;11062:6;11045:44;:::i;11100:769::-;11185:6;11193;11246:2;11234:9;11225:7;11221:23;11217:32;11214:52;;;11262:1;11259;11252:12;11214:52;11294:9;11288:16;11313:28;11335:5;11313:28;:::i;:::-;11409:2;11394:18;;11388:25;11360:5;;-1:-1:-1;11436:18:21;11425:30;;11422:50;;;11468:1;11465;11458:12;11422:50;11491:22;;11544:4;11536:13;;11532:27;-1:-1:-1;11522:55:21;;11573:1;11570;11563:12;11522:55;11602:2;11596:9;11627:48;11643:31;11671:2;11643:31;:::i;11627:48::-;11698:2;11691:5;11684:17;11738:7;11733:2;11728;11724;11720:11;11716:20;11713:33;11710:53;;;11759:1;11756;11749:12;11710:53;11772:67;11836:2;11831;11824:5;11820:14;11815:2;11811;11807:11;11772:67;:::i;:::-;11858:5;11848:15;;;;;11100:769;;;;;:::o;12221:394::-;12437:10;12432:3;12428:20;12420:6;12416:33;12405:9;12398:52;12500:6;12493:14;12486:22;12481:2;12470:9;12466:18;12459:50;12545:2;12540;12529:9;12525:18;12518:30;12379:4;12565:44;12605:2;12594:9;12590:18;12582:6;12565:44;:::i;:::-;12557:52;12221:394;-1:-1:-1;;;;;12221:394:21:o;12620:871::-;12808:4;12856:2;12845:9;12841:18;12886:6;12875:9;12868:25;12912:2;12950;12945;12934:9;12930:18;12923:30;12973:6;13008;13002:13;13039:6;13031;13024:22;13077:2;13066:9;13062:18;13055:25;;13139:2;13129:6;13126:1;13122:14;13111:9;13107:30;13103:39;13089:53;;13177:2;13169:6;13165:15;13198:1;13208:254;13222:6;13219:1;13216:13;13208:254;;;13315:2;13311:7;13299:9;13291:6;13287:22;13283:36;13278:3;13271:49;13343:39;13375:6;13366;13360:13;13343:39;:::i;:::-;13333:49;-1:-1:-1;13440:12:21;;;;13405:15;;;;13244:1;13237:9;13208:254;;;-1:-1:-1;13479:6:21;;12620:871;-1:-1:-1;;;;;;;;12620:871:21:o;13496:245::-;13563:6;13616:2;13604:9;13595:7;13591:23;13587:32;13584:52;;;13632:1;13629;13622:12;13584:52;13664:9;13658:16;13683:28;13705:5;13683:28;:::i;14691:689::-;14987:66;14982:3;14975:79;14957:3;15083:6;15077:13;15099:75;15167:6;15162:2;15157:3;15153:12;15146:4;15138:6;15134:17;15099:75;:::i;:::-;15234:13;;15193:16;;;;15256:76;15234:13;15318:2;15310:11;;15303:4;15291:17;;15256:76;:::i;:::-;15352:17;15371:2;15348:26;;14691:689;-1:-1:-1;;;;14691:689:21:o"},"methodIdentifiers":{"deployTwin(bytes32,bytes)":"5390e474","dispatch(address,address,bytes,bytes4,uint256,bytes[])":"c1b2f734","query(address,address,bytes)":"adde344c","relay(address,bytes,bool,bytes4)":"139b4a87","resume(address,bytes4,bool,bytes,uint256,bytes[])":"0b0a6bd1"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ValidatorManager\",\"name\":\"_validatorManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"Create2EmptyBytecode\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Create2FailedDeployment\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"needed\",\"type\":\"uint256\"}],\"name\":\"Create2InsufficientBalance\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Dispatched\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"readonly\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Relayed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"Resumed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"twin\",\"type\":\"address\"}],\"name\":\"TwinDeployment\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"salt\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"bytecode\",\"type\":\"bytes\"}],\"name\":\"deployTwin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"dispatch\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"query\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"readonly\",\"type\":\"bool\"},{\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"}],\"name\":\"relay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"callback\",\"type\":\"bytes4\"},{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"resume\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"Create2EmptyBytecode()\":[{\"details\":\"There's no code to deploy.\"}],\"Create2FailedDeployment()\":[{\"details\":\"The deployment failed.\"}],\"Create2InsufficientBalance(uint256,uint256)\":[{\"details\":\"Not enough balance for performing a CREATE2 deploy.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Relayer.sol\":\"Relayer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/Test.sol":{"Target":{"abi":[{"inputs":[{"internalType":"uint256","name":"num","type":"uint256"}],"name":"test","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b506101f9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x1F9 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x29E99F07 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B JUMP JUMPDEST PUSH2 0x55 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x7E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x746573742829 PUSH1 0xD0 SHL DUP2 MSTORE POP PUSH2 0xD0 JUMP JUMPDEST PUSH2 0x3E8 DUP3 LT PUSH2 0xBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x546F6F206C61726765 PUSH1 0xB8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCA DUP3 PUSH1 0x1 PUSH2 0x154 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x116 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xCA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x186 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH26 0xDDFC0AF1C517538B0F0AB55FF6C84C25F3912AF64534D4944852 0xDC 0xE8 SWAP15 0xD4 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"897:179:18:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_castToPure_4808":{"entryPoint":null,"id":4808,"parameterSlots":1,"returnSlots":1},"@_sendLogPayloadImplementation_4791":{"entryPoint":null,"id":4791,"parameterSlots":1,"returnSlots":0},"@_sendLogPayload_4820":{"entryPoint":278,"id":4820,"parameterSlots":1,"returnSlots":0},"@log_5391":{"entryPoint":208,"id":5391,"parameterSlots":1,"returnSlots":0},"@test_4570":{"entryPoint":85,"id":4570,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":315,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":373,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"checked_add_t_uint256":{"entryPoint":340,"id":null,"parameterSlots":2,"returnSlots":1},"panic_error_0x51":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1627:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"84:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"130:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"139:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"142:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"132:6:21"},"nodeType":"YulFunctionCall","src":"132:12:21"},"nodeType":"YulExpressionStatement","src":"132:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"105:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"114:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"101:3:21"},"nodeType":"YulFunctionCall","src":"101:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"126:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"97:3:21"},"nodeType":"YulFunctionCall","src":"97:32:21"},"nodeType":"YulIf","src":"94:52:21"},{"nodeType":"YulAssignment","src":"155:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"178:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"165:12:21"},"nodeType":"YulFunctionCall","src":"165:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"155:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"50:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"61:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"73:6:21","type":""}],"src":"14:180:21"},{"body":{"nodeType":"YulBlock","src":"300:76:21","statements":[{"nodeType":"YulAssignment","src":"310:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"322:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"333:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"318:3:21"},"nodeType":"YulFunctionCall","src":"318:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"310:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"352:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"363:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"345:6:21"},"nodeType":"YulFunctionCall","src":"345:25:21"},"nodeType":"YulExpressionStatement","src":"345:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"269:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"280:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"291:4:21","type":""}],"src":"199:177:21"},{"body":{"nodeType":"YulBlock","src":"555:158:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"572:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"583:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"565:6:21"},"nodeType":"YulFunctionCall","src":"565:21:21"},"nodeType":"YulExpressionStatement","src":"565:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"606:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"617:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"602:3:21"},"nodeType":"YulFunctionCall","src":"602:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"622:1:21","type":"","value":"9"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"595:6:21"},"nodeType":"YulFunctionCall","src":"595:29:21"},"nodeType":"YulExpressionStatement","src":"595:29:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"644:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"655:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"640:3:21"},"nodeType":"YulFunctionCall","src":"640:18:21"},{"hexValue":"546f6f206c61726765","kind":"string","nodeType":"YulLiteral","src":"660:11:21","type":"","value":"Too large"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"633:6:21"},"nodeType":"YulFunctionCall","src":"633:39:21"},"nodeType":"YulExpressionStatement","src":"633:39:21"},{"nodeType":"YulAssignment","src":"681:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"693:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"704:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"689:3:21"},"nodeType":"YulFunctionCall","src":"689:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"681:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"532:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"546:4:21","type":""}],"src":"381:332:21"},{"body":{"nodeType":"YulBlock","src":"766:174:21","statements":[{"nodeType":"YulAssignment","src":"776:16:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"787:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"790:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"783:3:21"},"nodeType":"YulFunctionCall","src":"783:9:21"},"variableNames":[{"name":"sum","nodeType":"YulIdentifier","src":"776:3:21"}]},{"body":{"nodeType":"YulBlock","src":"823:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"844:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"851:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"856:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"847:3:21"},"nodeType":"YulFunctionCall","src":"847:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"837:6:21"},"nodeType":"YulFunctionCall","src":"837:31:21"},"nodeType":"YulExpressionStatement","src":"837:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"888:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"891:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"881:6:21"},"nodeType":"YulFunctionCall","src":"881:15:21"},"nodeType":"YulExpressionStatement","src":"881:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"916:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"919:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"909:6:21"},"nodeType":"YulFunctionCall","src":"909:15:21"},"nodeType":"YulExpressionStatement","src":"909:15:21"}]},"condition":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"807:1:21"},{"name":"sum","nodeType":"YulIdentifier","src":"810:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"804:2:21"},"nodeType":"YulFunctionCall","src":"804:10:21"},"nodeType":"YulIf","src":"801:133:21"}]},"name":"checked_add_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"749:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"752:1:21","type":""}],"returnVariables":[{"name":"sum","nodeType":"YulTypedName","src":"758:3:21","type":""}],"src":"718:222:21"},{"body":{"nodeType":"YulBlock","src":"1066:427:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1076:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1086:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1080:2:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1104:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1115:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1097:6:21"},"nodeType":"YulFunctionCall","src":"1097:21:21"},"nodeType":"YulExpressionStatement","src":"1097:21:21"},{"nodeType":"YulVariableDeclaration","src":"1127:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1147:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1141:5:21"},"nodeType":"YulFunctionCall","src":"1141:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1131:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1174:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1185:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1170:3:21"},"nodeType":"YulFunctionCall","src":"1170:18:21"},{"name":"length","nodeType":"YulIdentifier","src":"1190:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1163:6:21"},"nodeType":"YulFunctionCall","src":"1163:34:21"},"nodeType":"YulExpressionStatement","src":"1163:34:21"},{"nodeType":"YulVariableDeclaration","src":"1206:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1215:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1210:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1275:90:21","statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1304:9:21"},{"name":"i","nodeType":"YulIdentifier","src":"1315:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:21"},"nodeType":"YulFunctionCall","src":"1300:17:21"},{"kind":"number","nodeType":"YulLiteral","src":"1319:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1296:3:21"},"nodeType":"YulFunctionCall","src":"1296:26:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1338:6:21"},{"name":"i","nodeType":"YulIdentifier","src":"1346:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1334:3:21"},"nodeType":"YulFunctionCall","src":"1334:14:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1350:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1330:3:21"},"nodeType":"YulFunctionCall","src":"1330:23:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1324:5:21"},"nodeType":"YulFunctionCall","src":"1324:30:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1289:6:21"},"nodeType":"YulFunctionCall","src":"1289:66:21"},"nodeType":"YulExpressionStatement","src":"1289:66:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1236:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1239:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1233:2:21"},"nodeType":"YulFunctionCall","src":"1233:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1247:19:21","statements":[{"nodeType":"YulAssignment","src":"1249:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1258:1:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1261:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1254:3:21"},"nodeType":"YulFunctionCall","src":"1254:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1249:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1229:3:21","statements":[]},"src":"1225:140:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1389:9:21"},{"name":"length","nodeType":"YulIdentifier","src":"1400:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:22:21"},{"kind":"number","nodeType":"YulLiteral","src":"1409:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1381:3:21"},"nodeType":"YulFunctionCall","src":"1381:31:21"},{"kind":"number","nodeType":"YulLiteral","src":"1414:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1374:6:21"},"nodeType":"YulFunctionCall","src":"1374:42:21"},"nodeType":"YulExpressionStatement","src":"1374:42:21"},{"nodeType":"YulAssignment","src":"1425:62:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1441:9:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"1460:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1468:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1456:3:21"},"nodeType":"YulFunctionCall","src":"1456:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1477:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1473:3:21"},"nodeType":"YulFunctionCall","src":"1473:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1452:3:21"},"nodeType":"YulFunctionCall","src":"1452:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1437:3:21"},"nodeType":"YulFunctionCall","src":"1437:45:21"},{"kind":"number","nodeType":"YulLiteral","src":"1484:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1433:3:21"},"nodeType":"YulFunctionCall","src":"1433:54:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1425:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1035:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1046:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1057:4:21","type":""}],"src":"945:548:21"},{"body":{"nodeType":"YulBlock","src":"1530:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1547:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1554:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1559:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1550:3:21"},"nodeType":"YulFunctionCall","src":"1550:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1540:6:21"},"nodeType":"YulFunctionCall","src":"1540:31:21"},"nodeType":"YulExpressionStatement","src":"1540:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1587:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1590:4:21","type":"","value":"0x51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1580:6:21"},"nodeType":"YulFunctionCall","src":"1580:15:21"},"nodeType":"YulExpressionStatement","src":"1580:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1611:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1614:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1604:6:21"},"nodeType":"YulFunctionCall","src":"1604:15:21"},"nodeType":"YulExpressionStatement","src":"1604:15:21"}]},"name":"panic_error_0x51","nodeType":"YulFunctionDefinition","src":"1498:127:21"}]},"contents":"{\n { }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function abi_encode_tuple_t_stringliteral_041e8a5957cb8e26e2bda08a0b2a1ba60bb80279cc262fe63824cfd1ab3aacd4__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 9)\n mstore(add(headStart, 64), \"Too large\")\n tail := add(headStart, 96)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n sum := add(x, y)\n if gt(x, sum)\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n mstore(headStart, _1)\n let length := mload(value0)\n mstore(add(headStart, _1), length)\n let i := 0\n for { } lt(i, length) { i := add(i, _1) }\n {\n mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n }\n mstore(add(add(headStart, length), 64), 0)\n tail := add(add(headStart, and(add(length, 31), not(31))), 64)\n }\n function panic_error_0x51()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x29E99F07 EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x43 PUSH2 0x3E CALLDATASIZE PUSH1 0x4 PUSH2 0x13B JUMP JUMPDEST PUSH2 0x55 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x0 PUSH2 0x7E PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x6 DUP2 MSTORE PUSH1 0x20 ADD PUSH6 0x746573742829 PUSH1 0xD0 SHL DUP2 MSTORE POP PUSH2 0xD0 JUMP JUMPDEST PUSH2 0x3E8 DUP3 LT PUSH2 0xBF JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x9 PUSH1 0x24 DUP3 ADD MSTORE PUSH9 0x546F6F206C61726765 PUSH1 0xB8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0xCA DUP3 PUSH1 0x1 PUSH2 0x154 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xE4 SWAP2 SWAP1 PUSH2 0x175 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x116 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x113 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x14D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST DUP1 DUP3 ADD DUP1 DUP3 GT ISZERO PUSH2 0xCA JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 MSTORE DUP4 MLOAD DUP1 DUP3 DUP6 ADD MSTORE PUSH1 0x0 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x1A2 JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x40 ADD MSTORE DUP3 ADD PUSH2 0x186 JUMP JUMPDEST POP PUSH1 0x0 PUSH1 0x40 DUP3 DUP7 ADD ADD MSTORE PUSH1 0x40 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND DUP6 ADD ADD SWAP3 POP POP POP SWAP3 SWAP2 POP POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 CALLDATACOPY PUSH26 0xDDFC0AF1C517538B0F0AB55FF6C84C25F3912AF64534D4944852 0xDC 0xE8 SWAP15 0xD4 PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"897:179:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;919:155;;;;;;:::i;:::-;;:::i;:::-;;;345:25:21;;;333:2;318:18;919:155:18;;;;;;;;964:4;980:21;;;;;;;;;;;;;;-1:-1:-1;;;980:21:18;;;:11;:21::i;:::-;1025:4;1019:3;:10;1011:32;;;;-1:-1:-1;;;1011:32:18;;583:2:21;1011:32:18;;;565:21:21;622:1;602:18;;;595:29;-1:-1:-1;;;640:18:21;;;633:39;689:18;;1011:32:18;;;;;;;;1060:7;:3;1066:1;1060:7;:::i;:::-;1053:14;919:155;-1:-1:-1;;919:155:18:o;6070:121:20:-;6125:59;6180:2;6141:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6141:42:20;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:42:20;-1:-1:-1;;;6141:42:20;;;6125:15;:59::i;:::-;6070:121;:::o;851:129::-;922:51;965:7;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;14:180:21:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:21;;14:180;-1:-1:-1;14:180:21:o;718:222::-;783:9;;;804:10;;;801:133;;;856:10;851:3;847:20;844:1;837:31;891:4;888:1;881:15;919:4;916:1;909:15;945:548;1057:4;1086:2;1115;1104:9;1097:21;1147:6;1141:13;1190:6;1185:2;1174:9;1170:18;1163:34;1215:1;1225:140;1239:6;1236:1;1233:13;1225:140;;;1334:14;;;1330:23;;1324:30;1300:17;;;1319:2;1296:26;1289:66;1254:10;;1225:140;;;1229:3;1414:1;1409:2;1400:6;1389:9;1385:22;1381:31;1374:42;1484:2;1477;1473:7;1468:2;1460:6;1456:15;1452:29;1441:9;1437:45;1433:54;1425:62;;;;945:548;;;;:::o"},"methodIdentifiers":{"test(uint256)":"29e99f07"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"name\":\"test\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Test.sol\":\"Target\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/Test.sol\":{\"keccak256\":\"0x7e145dc159902e17f4d12e7a83d0d9e876be3e1aba2552a794074d11f7989d90\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d5899a5543741576a0b5dd62e45edce777eb9506933dc0bb695330021a929f9c\",\"dweb:/ipfs/Qme3uQvCvPeRpg58fcAaprVejro29xomrBaVRdRAkjCAtd\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"},"Twin":{"abi":[{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"","type":"string"}],"name":"Failed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"Succeeded","type":"event"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"dispatched","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"res","type":"bytes"},{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"finish","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Relayer","name":"relayer","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"call","type":"bytes"}],"name":"queried","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"response","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"num","type":"uint256"},{"internalType":"bool","name":"readonly","type":"bool"}],"name":"start","outputs":[],"stateMutability":"nonpayable","type":"function"}],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"608060405234801561001057600080fd5b50610b33806100206000396000f3fe60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB33 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0x99 JUMPI DUP1 PUSH4 0xC2AB4E3E EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0xFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x70 SWAP3 SWAP2 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0x1CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xB4 CALLDATASIZE PUSH1 0x4 PUSH2 0x84A JUMP JUMPDEST PUSH2 0x27C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0x911 JUMP JUMPDEST PUSH2 0x456 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x132 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x2D0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH8 0x66696E6973682829 PUSH1 0xC0 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST DUP4 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 PUSH2 0x2E4 DUP4 DUP6 ADD DUP6 PUSH2 0x988 JUMP JUMPDEST SWAP1 POP PUSH32 0x7165F2912DC85F932B95E64DC5404EA80083D36994C2B797EA2763BA0B71586B DUP2 PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0x9A1 JUMP JUMPDEST PUSH2 0x33D SWAP2 PUSH2 0x9CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x34E DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0x9A1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x3BC SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3F3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x29E99F07 PUSH1 0xE0 SHL OR SWAP1 MSTORE DUP5 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x603 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x73746172742829 PUSH1 0xC8 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x49C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4B9 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x4C7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x50F JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x56C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x3C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5FF DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x5D0 SWAP3 SWAP2 SWAP1 PUSH2 0xA7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x2D839CB3 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x63A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x67D SWAP2 SWAP1 PUSH2 0xAE4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x721 JUMPI PUSH2 0x721 PUSH2 0x6C0 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x74D DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x78D PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x7FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x82D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x845 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x860 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x869 DUP6 PUSH2 0x835 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x8F3 DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x908 PUSH1 0x40 DUP6 ADD PUSH2 0x835 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x92E DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x97E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7C2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x9B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0x9F3 JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xA43 PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xA58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x67D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x92E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA8F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAC2 SWAP1 DUP4 ADD DUP7 PUSH2 0x7E6 JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD GASPRICE 0x5D 0xBB LT OR 0xD2 SWAP11 SWAP6 PUSH22 0x446823CAD302CDF8D61C42CE90152978B934F77874A PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"90:805:18:-:0;;;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_castToPure_4808":{"entryPoint":null,"id":4808,"parameterSlots":1,"returnSlots":1},"@_getInitializableStorage_389":{"entryPoint":null,"id":389,"parameterSlots":0,"returnSlots":1},"@_sendLogPayloadImplementation_4791":{"entryPoint":null,"id":4791,"parameterSlots":1,"returnSlots":0},"@_sendLogPayload_4820":{"entryPoint":1670,"id":4820,"parameterSlots":1,"returnSlots":0},"@dispatched_3700":{"entryPoint":251,"id":3700,"parameterSlots":2,"returnSlots":2},"@finish_4544":{"entryPoint":636,"id":4544,"parameterSlots":4,"returnSlots":0},"@initialize_3652":{"entryPoint":1110,"id":3652,"parameterSlots":1,"returnSlots":0},"@log_5391":{"entryPoint":1396,"id":5391,"parameterSlots":1,"returnSlots":0},"@log_5504":{"entryPoint":1466,"id":5504,"parameterSlots":2,"returnSlots":0},"@queried_3731":{"entryPoint":460,"id":3731,"parameterSlots":2,"returnSlots":2},"@relay_3755":{"entryPoint":1539,"id":3755,"parameterSlots":4,"returnSlots":1},"@start_4471":{"entryPoint":986,"id":4471,"parameterSlots":3,"returnSlots":0},"abi_decode_bool":{"entryPoint":2101,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_addresst_bytes_memory_ptr":{"entryPoint":1839,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_addresst_uint256t_bool":{"entryPoint":2259,"id":null,"parameterSlots":2,"returnSlots":3},"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256":{"entryPoint":2122,"id":null,"parameterSlots":2,"returnSlots":4},"abi_decode_tuple_t_contract$_Relayer_$4434":{"entryPoint":2321,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_string_memory_ptr_fromMemory":{"entryPoint":2555,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256":{"entryPoint":2440,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_uint256_fromMemory":{"entryPoint":2788,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_bytes":{"entryPoint":2022,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed":{"entryPoint":2412,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed":{"entryPoint":2718,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed":{"entryPoint":2066,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2665,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed":{"entryPoint":2684,"id":null,"parameterSlots":3,"returnSlots":1},"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":2357,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1750,"id":null,"parameterSlots":1,"returnSlots":1},"array_allocation_size_bytes":{"entryPoint":1799,"id":null,"parameterSlots":1,"returnSlots":1},"calldata_array_index_range_access_t_bytes_calldata_ptr":{"entryPoint":2465,"id":null,"parameterSlots":4,"returnSlots":2},"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4":{"entryPoint":2507,"id":null,"parameterSlots":2,"returnSlots":1},"copy_memory_to_memory_with_cleanup":{"entryPoint":1986,"id":null,"parameterSlots":3,"returnSlots":0},"panic_error_0x41":{"entryPoint":1728,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x51":{"entryPoint":null,"id":null,"parameterSlots":0,"returnSlots":0},"validator_revert_address":{"entryPoint":1707,"id":null,"parameterSlots":1,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:7829:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"59:86:21","statements":[{"body":{"nodeType":"YulBlock","src":"123:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"132:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"135:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"125:6:21"},"nodeType":"YulFunctionCall","src":"125:12:21"},"nodeType":"YulExpressionStatement","src":"125:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"82:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"93:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"108:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"113:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"104:3:21"},"nodeType":"YulFunctionCall","src":"104:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"117:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"100:3:21"},"nodeType":"YulFunctionCall","src":"100:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"89:3:21"},"nodeType":"YulFunctionCall","src":"89:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"79:2:21"},"nodeType":"YulFunctionCall","src":"79:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"72:6:21"},"nodeType":"YulFunctionCall","src":"72:50:21"},"nodeType":"YulIf","src":"69:70:21"}]},"name":"validator_revert_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"48:5:21","type":""}],"src":"14:131:21"},{"body":{"nodeType":"YulBlock","src":"182:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"199:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"206:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"211:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"202:3:21"},"nodeType":"YulFunctionCall","src":"202:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"192:6:21"},"nodeType":"YulFunctionCall","src":"192:31:21"},"nodeType":"YulExpressionStatement","src":"192:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"239:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"242:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"232:6:21"},"nodeType":"YulFunctionCall","src":"232:15:21"},"nodeType":"YulExpressionStatement","src":"232:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"263:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"266:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"256:6:21"},"nodeType":"YulFunctionCall","src":"256:15:21"},"nodeType":"YulExpressionStatement","src":"256:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"150:127:21"},{"body":{"nodeType":"YulBlock","src":"327:230:21","statements":[{"nodeType":"YulAssignment","src":"337:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"353:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"347:5:21"},"nodeType":"YulFunctionCall","src":"347:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"337:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"365:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"387:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"403:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"409:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"399:3:21"},"nodeType":"YulFunctionCall","src":"399:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"418:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"414:3:21"},"nodeType":"YulFunctionCall","src":"414:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"395:3:21"},"nodeType":"YulFunctionCall","src":"395:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"383:3:21"},"nodeType":"YulFunctionCall","src":"383:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"369:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"498:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"500:16:21"},"nodeType":"YulFunctionCall","src":"500:18:21"},"nodeType":"YulExpressionStatement","src":"500:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"441:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"453:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"438:2:21"},"nodeType":"YulFunctionCall","src":"438:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"477:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"489:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"474:2:21"},"nodeType":"YulFunctionCall","src":"474:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"435:2:21"},"nodeType":"YulFunctionCall","src":"435:62:21"},"nodeType":"YulIf","src":"432:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"540:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"529:6:21"},"nodeType":"YulFunctionCall","src":"529:22:21"},"nodeType":"YulExpressionStatement","src":"529:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"307:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"316:6:21","type":""}],"src":"282:275:21"},{"body":{"nodeType":"YulBlock","src":"619:129:21","statements":[{"body":{"nodeType":"YulBlock","src":"663:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"665:16:21"},"nodeType":"YulFunctionCall","src":"665:18:21"},"nodeType":"YulExpressionStatement","src":"665:18:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"635:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"643:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"632:2:21"},"nodeType":"YulFunctionCall","src":"632:30:21"},"nodeType":"YulIf","src":"629:56:21"},{"nodeType":"YulAssignment","src":"694:48:21","value":{"arguments":[{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"714:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"722:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"710:3:21"},"nodeType":"YulFunctionCall","src":"710:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"731:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"727:3:21"},"nodeType":"YulFunctionCall","src":"727:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"706:3:21"},"nodeType":"YulFunctionCall","src":"706:29:21"},{"kind":"number","nodeType":"YulLiteral","src":"737:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"702:3:21"},"nodeType":"YulFunctionCall","src":"702:40:21"},"variableNames":[{"name":"size","nodeType":"YulIdentifier","src":"694:4:21"}]}]},"name":"array_allocation_size_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"length","nodeType":"YulTypedName","src":"599:6:21","type":""}],"returnVariables":[{"name":"size","nodeType":"YulTypedName","src":"610:4:21","type":""}],"src":"562:186:21"},{"body":{"nodeType":"YulBlock","src":"849:710:21","statements":[{"body":{"nodeType":"YulBlock","src":"895:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"904:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"907:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"897:6:21"},"nodeType":"YulFunctionCall","src":"897:12:21"},"nodeType":"YulExpressionStatement","src":"897:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"870:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"879:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"866:3:21"},"nodeType":"YulFunctionCall","src":"866:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"891:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"862:3:21"},"nodeType":"YulFunctionCall","src":"862:32:21"},"nodeType":"YulIf","src":"859:52:21"},{"nodeType":"YulVariableDeclaration","src":"920:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"946:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"933:12:21"},"nodeType":"YulFunctionCall","src":"933:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"924:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"990:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"965:24:21"},"nodeType":"YulFunctionCall","src":"965:31:21"},"nodeType":"YulExpressionStatement","src":"965:31:21"},{"nodeType":"YulAssignment","src":"1005:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"1015:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1005:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1029:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1060:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1071:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1056:3:21"},"nodeType":"YulFunctionCall","src":"1056:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1043:12:21"},"nodeType":"YulFunctionCall","src":"1043:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1033:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1118:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1130:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1120:6:21"},"nodeType":"YulFunctionCall","src":"1120:12:21"},"nodeType":"YulExpressionStatement","src":"1120:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1090:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1098:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1087:2:21"},"nodeType":"YulFunctionCall","src":"1087:30:21"},"nodeType":"YulIf","src":"1084:50:21"},{"nodeType":"YulVariableDeclaration","src":"1143:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1157:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1168:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1153:3:21"},"nodeType":"YulFunctionCall","src":"1153:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"1147:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1223:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1232:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1235:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1225:6:21"},"nodeType":"YulFunctionCall","src":"1225:12:21"},"nodeType":"YulExpressionStatement","src":"1225:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1202:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1206:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1198:3:21"},"nodeType":"YulFunctionCall","src":"1198:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1213:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1194:3:21"},"nodeType":"YulFunctionCall","src":"1194:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1187:6:21"},"nodeType":"YulFunctionCall","src":"1187:35:21"},"nodeType":"YulIf","src":"1184:55:21"},{"nodeType":"YulVariableDeclaration","src":"1248:26:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1271:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1258:12:21"},"nodeType":"YulFunctionCall","src":"1258:16:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"1252:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"1283:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"1340:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"1312:27:21"},"nodeType":"YulFunctionCall","src":"1312:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"1296:15:21"},"nodeType":"YulFunctionCall","src":"1296:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"1287:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1360:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1367:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1353:6:21"},"nodeType":"YulFunctionCall","src":"1353:17:21"},"nodeType":"YulExpressionStatement","src":"1353:17:21"},{"body":{"nodeType":"YulBlock","src":"1416:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1425:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1428:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1418:6:21"},"nodeType":"YulFunctionCall","src":"1418:12:21"},"nodeType":"YulExpressionStatement","src":"1418:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1393:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1397:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1389:3:21"},"nodeType":"YulFunctionCall","src":"1389:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1402:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1385:3:21"},"nodeType":"YulFunctionCall","src":"1385:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1407:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1382:2:21"},"nodeType":"YulFunctionCall","src":"1382:33:21"},"nodeType":"YulIf","src":"1379:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1458:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1465:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1454:3:21"},"nodeType":"YulFunctionCall","src":"1454:14:21"},{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"1474:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"1478:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1470:3:21"},"nodeType":"YulFunctionCall","src":"1470:11:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1483:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"1441:12:21"},"nodeType":"YulFunctionCall","src":"1441:45:21"},"nodeType":"YulExpressionStatement","src":"1441:45:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"1510:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"1517:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1506:3:21"},"nodeType":"YulFunctionCall","src":"1506:14:21"},{"kind":"number","nodeType":"YulLiteral","src":"1522:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1502:3:21"},"nodeType":"YulFunctionCall","src":"1502:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1527:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1495:6:21"},"nodeType":"YulFunctionCall","src":"1495:34:21"},"nodeType":"YulExpressionStatement","src":"1495:34:21"},{"nodeType":"YulAssignment","src":"1538:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"1548:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1538:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"807:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"818:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"830:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"838:6:21","type":""}],"src":"753:806:21"},{"body":{"nodeType":"YulBlock","src":"1630:184:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1640:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"1649:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"1644:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1709:63:21","statements":[{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1734:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1739:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1730:3:21"},"nodeType":"YulFunctionCall","src":"1730:11:21"},{"arguments":[{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1753:3:21"},{"name":"i","nodeType":"YulIdentifier","src":"1758:1:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1749:3:21"},"nodeType":"YulFunctionCall","src":"1749:11:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1743:5:21"},"nodeType":"YulFunctionCall","src":"1743:18:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1723:6:21"},"nodeType":"YulFunctionCall","src":"1723:39:21"},"nodeType":"YulExpressionStatement","src":"1723:39:21"}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1670:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"1673:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1667:2:21"},"nodeType":"YulFunctionCall","src":"1667:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1681:19:21","statements":[{"nodeType":"YulAssignment","src":"1683:15:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"1692:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"1695:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1688:3:21"},"nodeType":"YulFunctionCall","src":"1688:10:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"1683:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1663:3:21","statements":[]},"src":"1659:113:21"},{"expression":{"arguments":[{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1792:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1797:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1788:3:21"},"nodeType":"YulFunctionCall","src":"1788:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"1806:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1781:6:21"},"nodeType":"YulFunctionCall","src":"1781:27:21"},"nodeType":"YulExpressionStatement","src":"1781:27:21"}]},"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulFunctionDefinition","parameters":[{"name":"src","nodeType":"YulTypedName","src":"1608:3:21","type":""},{"name":"dst","nodeType":"YulTypedName","src":"1613:3:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"1618:6:21","type":""}],"src":"1564:250:21"},{"body":{"nodeType":"YulBlock","src":"1868:221:21","statements":[{"nodeType":"YulVariableDeclaration","src":"1878:26:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1898:5:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"1892:5:21"},"nodeType":"YulFunctionCall","src":"1892:12:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"1882:6:21","type":""}]},{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1920:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"1925:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1913:6:21"},"nodeType":"YulFunctionCall","src":"1913:19:21"},"nodeType":"YulExpressionStatement","src":"1913:19:21"},{"expression":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1980:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1987:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1976:3:21"},"nodeType":"YulFunctionCall","src":"1976:16:21"},{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"1998:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"2003:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1994:3:21"},"nodeType":"YulFunctionCall","src":"1994:14:21"},{"name":"length","nodeType":"YulIdentifier","src":"2010:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"1941:34:21"},"nodeType":"YulFunctionCall","src":"1941:76:21"},"nodeType":"YulExpressionStatement","src":"1941:76:21"},{"nodeType":"YulAssignment","src":"2026:57:21","value":{"arguments":[{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"2041:3:21"},{"arguments":[{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"2054:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"2062:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2050:3:21"},"nodeType":"YulFunctionCall","src":"2050:15:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2071:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"2067:3:21"},"nodeType":"YulFunctionCall","src":"2067:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"2046:3:21"},"nodeType":"YulFunctionCall","src":"2046:29:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2037:3:21"},"nodeType":"YulFunctionCall","src":"2037:39:21"},{"kind":"number","nodeType":"YulLiteral","src":"2078:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2033:3:21"},"nodeType":"YulFunctionCall","src":"2033:50:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"2026:3:21"}]}]},"name":"abi_encode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1845:5:21","type":""},{"name":"pos","nodeType":"YulTypedName","src":"1852:3:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"1860:3:21","type":""}],"src":"1819:270:21"},{"body":{"nodeType":"YulBlock","src":"2235:157:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2252:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"2277:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2270:6:21"},"nodeType":"YulFunctionCall","src":"2270:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2263:6:21"},"nodeType":"YulFunctionCall","src":"2263:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2245:6:21"},"nodeType":"YulFunctionCall","src":"2245:41:21"},"nodeType":"YulExpressionStatement","src":"2245:41:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2306:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2317:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2302:3:21"},"nodeType":"YulFunctionCall","src":"2302:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"2322:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2295:6:21"},"nodeType":"YulFunctionCall","src":"2295:30:21"},"nodeType":"YulExpressionStatement","src":"2295:30:21"},{"nodeType":"YulAssignment","src":"2334:52:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"2359:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2371:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2382:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2367:3:21"},"nodeType":"YulFunctionCall","src":"2367:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"2342:16:21"},"nodeType":"YulFunctionCall","src":"2342:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"2334:4:21"}]}]},"name":"abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2196:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2207:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"2215:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"2226:4:21","type":""}],"src":"2094:298:21"},{"body":{"nodeType":"YulBlock","src":"2443:114:21","statements":[{"nodeType":"YulAssignment","src":"2453:29:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2475:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2462:12:21"},"nodeType":"YulFunctionCall","src":"2462:20:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"2453:5:21"}]},{"body":{"nodeType":"YulBlock","src":"2535:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2544:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2547:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2537:6:21"},"nodeType":"YulFunctionCall","src":"2537:12:21"},"nodeType":"YulExpressionStatement","src":"2537:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2504:5:21"},{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"2525:5:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2518:6:21"},"nodeType":"YulFunctionCall","src":"2518:13:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2511:6:21"},"nodeType":"YulFunctionCall","src":"2511:21:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"2501:2:21"},"nodeType":"YulFunctionCall","src":"2501:32:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2494:6:21"},"nodeType":"YulFunctionCall","src":"2494:40:21"},"nodeType":"YulIf","src":"2491:60:21"}]},"name":"abi_decode_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"2422:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"2433:5:21","type":""}],"src":"2397:160:21"},{"body":{"nodeType":"YulBlock","src":"2682:607:21","statements":[{"body":{"nodeType":"YulBlock","src":"2728:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2737:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2740:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2730:6:21"},"nodeType":"YulFunctionCall","src":"2730:12:21"},"nodeType":"YulExpressionStatement","src":"2730:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2703:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2712:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2699:3:21"},"nodeType":"YulFunctionCall","src":"2699:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2724:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2695:3:21"},"nodeType":"YulFunctionCall","src":"2695:32:21"},"nodeType":"YulIf","src":"2692:52:21"},{"nodeType":"YulAssignment","src":"2753:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2779:9:21"}],"functionName":{"name":"abi_decode_bool","nodeType":"YulIdentifier","src":"2763:15:21"},"nodeType":"YulFunctionCall","src":"2763:26:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2753:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2798:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2829:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"2840:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2825:3:21"},"nodeType":"YulFunctionCall","src":"2825:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2812:12:21"},"nodeType":"YulFunctionCall","src":"2812:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2802:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2853:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2863:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2857:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2908:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2917:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2920:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2910:6:21"},"nodeType":"YulFunctionCall","src":"2910:12:21"},"nodeType":"YulExpressionStatement","src":"2910:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2896:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2904:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2893:2:21"},"nodeType":"YulFunctionCall","src":"2893:14:21"},"nodeType":"YulIf","src":"2890:34:21"},{"nodeType":"YulVariableDeclaration","src":"2933:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2947:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"2958:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2943:3:21"},"nodeType":"YulFunctionCall","src":"2943:22:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2937:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3013:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3022:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3025:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3015:6:21"},"nodeType":"YulFunctionCall","src":"3015:12:21"},"nodeType":"YulExpressionStatement","src":"3015:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"2992:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"2996:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2988:3:21"},"nodeType":"YulFunctionCall","src":"2988:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3003:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2984:3:21"},"nodeType":"YulFunctionCall","src":"2984:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2977:6:21"},"nodeType":"YulFunctionCall","src":"2977:35:21"},"nodeType":"YulIf","src":"2974:55:21"},{"nodeType":"YulVariableDeclaration","src":"3038:30:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3065:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3052:12:21"},"nodeType":"YulFunctionCall","src":"3052:16:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3042:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3095:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3104:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3107:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3097:6:21"},"nodeType":"YulFunctionCall","src":"3097:12:21"},"nodeType":"YulExpressionStatement","src":"3097:12:21"}]},"condition":{"arguments":[{"name":"length","nodeType":"YulIdentifier","src":"3083:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3091:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3080:2:21"},"nodeType":"YulFunctionCall","src":"3080:14:21"},"nodeType":"YulIf","src":"3077:34:21"},{"body":{"nodeType":"YulBlock","src":"3161:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3170:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3173:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3163:6:21"},"nodeType":"YulFunctionCall","src":"3163:12:21"},"nodeType":"YulExpressionStatement","src":"3163:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3134:2:21"},{"name":"length","nodeType":"YulIdentifier","src":"3138:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3130:3:21"},"nodeType":"YulFunctionCall","src":"3130:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"3147:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3126:3:21"},"nodeType":"YulFunctionCall","src":"3126:24:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3152:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"3123:2:21"},"nodeType":"YulFunctionCall","src":"3123:37:21"},"nodeType":"YulIf","src":"3120:57:21"},{"nodeType":"YulAssignment","src":"3186:21:21","value":{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"3200:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"3204:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3196:3:21"},"nodeType":"YulFunctionCall","src":"3196:11:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3186:6:21"}]},{"nodeType":"YulAssignment","src":"3216:16:21","value":{"name":"length","nodeType":"YulIdentifier","src":"3226:6:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3216:6:21"}]},{"nodeType":"YulAssignment","src":"3241:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3268:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3279:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3264:3:21"},"nodeType":"YulFunctionCall","src":"3264:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3251:12:21"},"nodeType":"YulFunctionCall","src":"3251:32:21"},"variableNames":[{"name":"value3","nodeType":"YulIdentifier","src":"3241:6:21"}]}]},"name":"abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2624:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2635:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2647:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2655:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"2663:6:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"2671:6:21","type":""}],"src":"2562:727:21"},{"body":{"nodeType":"YulBlock","src":"3395:282:21","statements":[{"body":{"nodeType":"YulBlock","src":"3441:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3450:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3453:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3443:6:21"},"nodeType":"YulFunctionCall","src":"3443:12:21"},"nodeType":"YulExpressionStatement","src":"3443:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3416:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3425:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3412:3:21"},"nodeType":"YulFunctionCall","src":"3412:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3437:2:21","type":"","value":"96"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3408:3:21"},"nodeType":"YulFunctionCall","src":"3408:32:21"},"nodeType":"YulIf","src":"3405:52:21"},{"nodeType":"YulVariableDeclaration","src":"3466:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3492:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3479:12:21"},"nodeType":"YulFunctionCall","src":"3479:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3470:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3536:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3511:24:21"},"nodeType":"YulFunctionCall","src":"3511:31:21"},"nodeType":"YulExpressionStatement","src":"3511:31:21"},{"nodeType":"YulAssignment","src":"3551:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3561:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3551:6:21"}]},{"nodeType":"YulAssignment","src":"3575:42:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3602:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3613:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3598:3:21"},"nodeType":"YulFunctionCall","src":"3598:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3585:12:21"},"nodeType":"YulFunctionCall","src":"3585:32:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3575:6:21"}]},{"nodeType":"YulAssignment","src":"3626:45:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3656:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3667:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3652:3:21"},"nodeType":"YulFunctionCall","src":"3652:18:21"}],"functionName":{"name":"abi_decode_bool","nodeType":"YulIdentifier","src":"3636:15:21"},"nodeType":"YulFunctionCall","src":"3636:35:21"},"variableNames":[{"name":"value2","nodeType":"YulIdentifier","src":"3626:6:21"}]}]},"name":"abi_decode_tuple_t_addresst_uint256t_bool","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3345:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3356:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3368:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"3376:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"3384:6:21","type":""}],"src":"3294:383:21"},{"body":{"nodeType":"YulBlock","src":"3768:177:21","statements":[{"body":{"nodeType":"YulBlock","src":"3814:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3823:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"3826:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3816:6:21"},"nodeType":"YulFunctionCall","src":"3816:12:21"},"nodeType":"YulExpressionStatement","src":"3816:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"3789:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"3798:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3785:3:21"},"nodeType":"YulFunctionCall","src":"3785:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"3810:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"3781:3:21"},"nodeType":"YulFunctionCall","src":"3781:32:21"},"nodeType":"YulIf","src":"3778:52:21"},{"nodeType":"YulVariableDeclaration","src":"3839:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3865:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"3852:12:21"},"nodeType":"YulFunctionCall","src":"3852:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"3843:5:21","type":""}]},{"expression":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"3909:5:21"}],"functionName":{"name":"validator_revert_address","nodeType":"YulIdentifier","src":"3884:24:21"},"nodeType":"YulFunctionCall","src":"3884:31:21"},"nodeType":"YulExpressionStatement","src":"3884:31:21"},{"nodeType":"YulAssignment","src":"3924:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"3934:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"3924:6:21"}]}]},"name":"abi_decode_tuple_t_contract$_Relayer_$4434","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3734:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"3745:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"3757:6:21","type":""}],"src":"3682:263:21"},{"body":{"nodeType":"YulBlock","src":"4124:175:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4141:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4152:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4134:6:21"},"nodeType":"YulFunctionCall","src":"4134:21:21"},"nodeType":"YulExpressionStatement","src":"4134:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4175:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4186:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4171:3:21"},"nodeType":"YulFunctionCall","src":"4171:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"4191:2:21","type":"","value":"25"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4164:6:21"},"nodeType":"YulFunctionCall","src":"4164:30:21"},"nodeType":"YulExpressionStatement","src":"4164:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4214:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4225:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4210:3:21"},"nodeType":"YulFunctionCall","src":"4210:18:21"},{"hexValue":"4d7573742062652063616c6c65642062792072656c61796572","kind":"string","nodeType":"YulLiteral","src":"4230:27:21","type":"","value":"Must be called by relayer"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4203:6:21"},"nodeType":"YulFunctionCall","src":"4203:55:21"},"nodeType":"YulExpressionStatement","src":"4203:55:21"},{"nodeType":"YulAssignment","src":"4267:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4279:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4290:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4275:3:21"},"nodeType":"YulFunctionCall","src":"4275:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4267:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4101:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4115:4:21","type":""}],"src":"3950:349:21"},{"body":{"nodeType":"YulBlock","src":"4441:150:21","statements":[{"nodeType":"YulVariableDeclaration","src":"4451:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4471:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"4465:5:21"},"nodeType":"YulFunctionCall","src":"4465:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"4455:6:21","type":""}]},{"expression":{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"4526:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"4534:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4522:3:21"},"nodeType":"YulFunctionCall","src":"4522:17:21"},{"name":"pos","nodeType":"YulIdentifier","src":"4541:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4546:6:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"4487:34:21"},"nodeType":"YulFunctionCall","src":"4487:66:21"},"nodeType":"YulExpressionStatement","src":"4487:66:21"},{"nodeType":"YulAssignment","src":"4562:23:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"4573:3:21"},{"name":"length","nodeType":"YulIdentifier","src":"4578:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4569:3:21"},"nodeType":"YulFunctionCall","src":"4569:16:21"},"variableNames":[{"name":"end","nodeType":"YulIdentifier","src":"4562:3:21"}]}]},"name":"abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"pos","nodeType":"YulTypedName","src":"4417:3:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4422:6:21","type":""}],"returnVariables":[{"name":"end","nodeType":"YulTypedName","src":"4433:3:21","type":""}],"src":"4304:287:21"},{"body":{"nodeType":"YulBlock","src":"4666:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"4712:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4721:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4724:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4714:6:21"},"nodeType":"YulFunctionCall","src":"4714:12:21"},"nodeType":"YulExpressionStatement","src":"4714:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"4687:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"4696:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"4683:3:21"},"nodeType":"YulFunctionCall","src":"4683:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"4708:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"4679:3:21"},"nodeType":"YulFunctionCall","src":"4679:32:21"},"nodeType":"YulIf","src":"4676:52:21"},{"nodeType":"YulAssignment","src":"4737:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4760:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"4747:12:21"},"nodeType":"YulFunctionCall","src":"4747:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"4737:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4632:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"4643:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"4655:6:21","type":""}],"src":"4596:180:21"},{"body":{"nodeType":"YulBlock","src":"4882:76:21","statements":[{"nodeType":"YulAssignment","src":"4892:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4904:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4915:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4900:3:21"},"nodeType":"YulFunctionCall","src":"4900:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4892:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4934:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"4945:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4927:6:21"},"nodeType":"YulFunctionCall","src":"4927:25:21"},"nodeType":"YulExpressionStatement","src":"4927:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4851:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4862:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4873:4:21","type":""}],"src":"4781:177:21"},{"body":{"nodeType":"YulBlock","src":"5093:201:21","statements":[{"body":{"nodeType":"YulBlock","src":"5131:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5140:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5143:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5133:6:21"},"nodeType":"YulFunctionCall","src":"5133:12:21"},"nodeType":"YulExpressionStatement","src":"5133:12:21"}]},"condition":{"arguments":[{"name":"startIndex","nodeType":"YulIdentifier","src":"5109:10:21"},{"name":"endIndex","nodeType":"YulIdentifier","src":"5121:8:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5106:2:21"},"nodeType":"YulFunctionCall","src":"5106:24:21"},"nodeType":"YulIf","src":"5103:44:21"},{"body":{"nodeType":"YulBlock","src":"5180:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5189:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5192:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5182:6:21"},"nodeType":"YulFunctionCall","src":"5182:12:21"},"nodeType":"YulExpressionStatement","src":"5182:12:21"}]},"condition":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"5162:8:21"},{"name":"length","nodeType":"YulIdentifier","src":"5172:6:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5159:2:21"},"nodeType":"YulFunctionCall","src":"5159:20:21"},"nodeType":"YulIf","src":"5156:40:21"},{"nodeType":"YulAssignment","src":"5205:36:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5222:6:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"5230:10:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5218:3:21"},"nodeType":"YulFunctionCall","src":"5218:23:21"},"variableNames":[{"name":"offsetOut","nodeType":"YulIdentifier","src":"5205:9:21"}]},{"nodeType":"YulAssignment","src":"5250:38:21","value":{"arguments":[{"name":"endIndex","nodeType":"YulIdentifier","src":"5267:8:21"},{"name":"startIndex","nodeType":"YulIdentifier","src":"5277:10:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5263:3:21"},"nodeType":"YulFunctionCall","src":"5263:25:21"},"variableNames":[{"name":"lengthOut","nodeType":"YulIdentifier","src":"5250:9:21"}]}]},"name":"calldata_array_index_range_access_t_bytes_calldata_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"5027:6:21","type":""},{"name":"length","nodeType":"YulTypedName","src":"5035:6:21","type":""},{"name":"startIndex","nodeType":"YulTypedName","src":"5043:10:21","type":""},{"name":"endIndex","nodeType":"YulTypedName","src":"5055:8:21","type":""}],"returnVariables":[{"name":"offsetOut","nodeType":"YulTypedName","src":"5068:9:21","type":""},{"name":"lengthOut","nodeType":"YulTypedName","src":"5079:9:21","type":""}],"src":"4963:331:21"},{"body":{"nodeType":"YulBlock","src":"5399:223:21","statements":[{"nodeType":"YulVariableDeclaration","src":"5409:29:21","value":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"5432:5:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"5419:12:21"},"nodeType":"YulFunctionCall","src":"5419:19:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5413:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"5447:30:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5461:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5466:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5457:3:21"},"nodeType":"YulFunctionCall","src":"5457:20:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5451:2:21","type":""}]},{"nodeType":"YulAssignment","src":"5486:20:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5499:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"5503:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5495:3:21"},"nodeType":"YulFunctionCall","src":"5495:11:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5486:5:21"}]},{"body":{"nodeType":"YulBlock","src":"5537:79:21","statements":[{"nodeType":"YulAssignment","src":"5551:55:21","value":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5568:2:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5580:1:21","type":"","value":"3"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5587:1:21","type":"","value":"4"},{"name":"len","nodeType":"YulIdentifier","src":"5590:3:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5583:3:21"},"nodeType":"YulFunctionCall","src":"5583:11:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5576:3:21"},"nodeType":"YulFunctionCall","src":"5576:19:21"},{"name":"_2","nodeType":"YulIdentifier","src":"5597:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5572:3:21"},"nodeType":"YulFunctionCall","src":"5572:28:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5564:3:21"},"nodeType":"YulFunctionCall","src":"5564:37:21"},{"name":"_2","nodeType":"YulIdentifier","src":"5603:2:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5560:3:21"},"nodeType":"YulFunctionCall","src":"5560:46:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"5551:5:21"}]}]},"condition":{"arguments":[{"name":"len","nodeType":"YulIdentifier","src":"5521:3:21"},{"kind":"number","nodeType":"YulLiteral","src":"5526:1:21","type":"","value":"4"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"5518:2:21"},"nodeType":"YulFunctionCall","src":"5518:10:21"},"nodeType":"YulIf","src":"5515:101:21"}]},"name":"convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4","nodeType":"YulFunctionDefinition","parameters":[{"name":"array","nodeType":"YulTypedName","src":"5374:5:21","type":""},{"name":"len","nodeType":"YulTypedName","src":"5381:3:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"5389:5:21","type":""}],"src":"5299:323:21"},{"body":{"nodeType":"YulBlock","src":"5718:557:21","statements":[{"body":{"nodeType":"YulBlock","src":"5764:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5773:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5776:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5766:6:21"},"nodeType":"YulFunctionCall","src":"5766:12:21"},"nodeType":"YulExpressionStatement","src":"5766:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"5739:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"5748:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5735:3:21"},"nodeType":"YulFunctionCall","src":"5735:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"5760:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5731:3:21"},"nodeType":"YulFunctionCall","src":"5731:32:21"},"nodeType":"YulIf","src":"5728:52:21"},{"nodeType":"YulVariableDeclaration","src":"5789:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5809:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"5803:5:21"},"nodeType":"YulFunctionCall","src":"5803:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"5793:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5862:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5871:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5874:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5864:6:21"},"nodeType":"YulFunctionCall","src":"5864:12:21"},"nodeType":"YulExpressionStatement","src":"5864:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"5834:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"5842:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5831:2:21"},"nodeType":"YulFunctionCall","src":"5831:30:21"},"nodeType":"YulIf","src":"5828:50:21"},{"nodeType":"YulVariableDeclaration","src":"5887:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5901:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"5912:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5897:3:21"},"nodeType":"YulFunctionCall","src":"5897:22:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"5891:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"5967:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5976:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5979:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5969:6:21"},"nodeType":"YulFunctionCall","src":"5969:12:21"},"nodeType":"YulExpressionStatement","src":"5969:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"5946:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"5950:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5942:3:21"},"nodeType":"YulFunctionCall","src":"5942:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"5957:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"5938:3:21"},"nodeType":"YulFunctionCall","src":"5938:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"5931:6:21"},"nodeType":"YulFunctionCall","src":"5931:35:21"},"nodeType":"YulIf","src":"5928:55:21"},{"nodeType":"YulVariableDeclaration","src":"5992:19:21","value":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6008:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"6002:5:21"},"nodeType":"YulFunctionCall","src":"6002:9:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"5996:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"6020:61:21","value":{"arguments":[{"arguments":[{"name":"_2","nodeType":"YulIdentifier","src":"6077:2:21"}],"functionName":{"name":"array_allocation_size_bytes","nodeType":"YulIdentifier","src":"6049:27:21"},"nodeType":"YulFunctionCall","src":"6049:31:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"6033:15:21"},"nodeType":"YulFunctionCall","src":"6033:48:21"},"variables":[{"name":"array","nodeType":"YulTypedName","src":"6024:5:21","type":""}]},{"expression":{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6097:5:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6104:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6090:6:21"},"nodeType":"YulFunctionCall","src":"6090:17:21"},"nodeType":"YulExpressionStatement","src":"6090:17:21"},{"body":{"nodeType":"YulBlock","src":"6153:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"6162:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"6165:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"6155:6:21"},"nodeType":"YulFunctionCall","src":"6155:12:21"},"nodeType":"YulExpressionStatement","src":"6155:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6130:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6134:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6126:3:21"},"nodeType":"YulFunctionCall","src":"6126:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"6139:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6122:3:21"},"nodeType":"YulFunctionCall","src":"6122:20:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"6144:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"6119:2:21"},"nodeType":"YulFunctionCall","src":"6119:33:21"},"nodeType":"YulIf","src":"6116:53:21"},{"expression":{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"6217:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"6221:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6213:3:21"},"nodeType":"YulFunctionCall","src":"6213:11:21"},{"arguments":[{"name":"array","nodeType":"YulIdentifier","src":"6230:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"6237:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6226:3:21"},"nodeType":"YulFunctionCall","src":"6226:14:21"},{"name":"_2","nodeType":"YulIdentifier","src":"6242:2:21"}],"functionName":{"name":"copy_memory_to_memory_with_cleanup","nodeType":"YulIdentifier","src":"6178:34:21"},"nodeType":"YulFunctionCall","src":"6178:67:21"},"nodeType":"YulExpressionStatement","src":"6178:67:21"},{"nodeType":"YulAssignment","src":"6254:15:21","value":{"name":"array","nodeType":"YulIdentifier","src":"6264:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"6254:6:21"}]}]},"name":"abi_decode_tuple_t_string_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5684:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"5695:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"5707:6:21","type":""}],"src":"5627:648:21"},{"body":{"nodeType":"YulBlock","src":"6401:98:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6418:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6429:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6411:6:21"},"nodeType":"YulFunctionCall","src":"6411:21:21"},"nodeType":"YulExpressionStatement","src":"6411:21:21"},{"nodeType":"YulAssignment","src":"6441:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6466:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6478:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6489:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6474:3:21"},"nodeType":"YulFunctionCall","src":"6474:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6449:16:21"},"nodeType":"YulFunctionCall","src":"6449:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6441:4:21"}]}]},"name":"abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6370:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6381:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6392:4:21","type":""}],"src":"6280:219:21"},{"body":{"nodeType":"YulBlock","src":"6612:101:21","statements":[{"nodeType":"YulAssignment","src":"6622:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6634:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6645:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6630:3:21"},"nodeType":"YulFunctionCall","src":"6630:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6622:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6664:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6679:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"6687:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"6675:3:21"},"nodeType":"YulFunctionCall","src":"6675:31:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6657:6:21"},"nodeType":"YulFunctionCall","src":"6657:50:21"},"nodeType":"YulExpressionStatement","src":"6657:50:21"}]},"name":"abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6581:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6592:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6603:4:21","type":""}],"src":"6504:209:21"},{"body":{"nodeType":"YulBlock","src":"6867:141:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6884:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6895:2:21","type":"","value":"64"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6877:6:21"},"nodeType":"YulFunctionCall","src":"6877:21:21"},"nodeType":"YulExpressionStatement","src":"6877:21:21"},{"nodeType":"YulAssignment","src":"6907:52:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"6932:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6944:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6955:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6940:3:21"},"nodeType":"YulFunctionCall","src":"6940:18:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"6915:16:21"},"nodeType":"YulFunctionCall","src":"6915:44:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"6907:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6979:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6990:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6975:3:21"},"nodeType":"YulFunctionCall","src":"6975:18:21"},{"name":"value1","nodeType":"YulIdentifier","src":"6995:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6968:6:21"},"nodeType":"YulFunctionCall","src":"6968:34:21"},"nodeType":"YulExpressionStatement","src":"6968:34:21"}]},"name":"abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"6828:9:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"6839:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"6847:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"6858:4:21","type":""}],"src":"6718:290:21"},{"body":{"nodeType":"YulBlock","src":"7208:298:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7225:9:21"},{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"7240:6:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7256:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"7261:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7252:3:21"},"nodeType":"YulFunctionCall","src":"7252:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"7265:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7248:3:21"},"nodeType":"YulFunctionCall","src":"7248:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7236:3:21"},"nodeType":"YulFunctionCall","src":"7236:32:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7218:6:21"},"nodeType":"YulFunctionCall","src":"7218:51:21"},"nodeType":"YulExpressionStatement","src":"7218:51:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7289:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7300:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7285:3:21"},"nodeType":"YulFunctionCall","src":"7285:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"7305:3:21","type":"","value":"128"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7278:6:21"},"nodeType":"YulFunctionCall","src":"7278:31:21"},"nodeType":"YulExpressionStatement","src":"7278:31:21"},{"nodeType":"YulAssignment","src":"7318:53:21","value":{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"7343:6:21"},{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7355:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7366:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7351:3:21"},"nodeType":"YulFunctionCall","src":"7351:19:21"}],"functionName":{"name":"abi_encode_bytes","nodeType":"YulIdentifier","src":"7326:16:21"},"nodeType":"YulFunctionCall","src":"7326:45:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"7318:4:21"}]},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7391:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7402:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7387:3:21"},"nodeType":"YulFunctionCall","src":"7387:18:21"},{"arguments":[{"arguments":[{"name":"value2","nodeType":"YulIdentifier","src":"7421:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7414:6:21"},"nodeType":"YulFunctionCall","src":"7414:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"7407:6:21"},"nodeType":"YulFunctionCall","src":"7407:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7380:6:21"},"nodeType":"YulFunctionCall","src":"7380:50:21"},"nodeType":"YulExpressionStatement","src":"7380:50:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7450:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"7461:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"7446:3:21"},"nodeType":"YulFunctionCall","src":"7446:18:21"},{"arguments":[{"name":"value3","nodeType":"YulIdentifier","src":"7470:6:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7482:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7487:10:21","type":"","value":"0xffffffff"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7478:3:21"},"nodeType":"YulFunctionCall","src":"7478:20:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"7466:3:21"},"nodeType":"YulFunctionCall","src":"7466:33:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7439:6:21"},"nodeType":"YulFunctionCall","src":"7439:61:21"},"nodeType":"YulExpressionStatement","src":"7439:61:21"}]},"name":"abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7153:9:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"7164:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"7172:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"7180:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"7188:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"7199:4:21","type":""}],"src":"7013:493:21"},{"body":{"nodeType":"YulBlock","src":"7592:103:21","statements":[{"body":{"nodeType":"YulBlock","src":"7638:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7647:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7650:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7640:6:21"},"nodeType":"YulFunctionCall","src":"7640:12:21"},"nodeType":"YulExpressionStatement","src":"7640:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"7613:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"7622:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"7609:3:21"},"nodeType":"YulFunctionCall","src":"7609:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"7634:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"7605:3:21"},"nodeType":"YulFunctionCall","src":"7605:32:21"},"nodeType":"YulIf","src":"7602:52:21"},{"nodeType":"YulAssignment","src":"7663:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"7679:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"7673:5:21"},"nodeType":"YulFunctionCall","src":"7673:16:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"7663:6:21"}]}]},"name":"abi_decode_tuple_t_uint256_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"7558:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"7569:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"7581:6:21","type":""}],"src":"7511:184:21"},{"body":{"nodeType":"YulBlock","src":"7732:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7749:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7756:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"7761:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"7752:3:21"},"nodeType":"YulFunctionCall","src":"7752:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7742:6:21"},"nodeType":"YulFunctionCall","src":"7742:31:21"},"nodeType":"YulExpressionStatement","src":"7742:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7789:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"7792:4:21","type":"","value":"0x51"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"7782:6:21"},"nodeType":"YulFunctionCall","src":"7782:15:21"},"nodeType":"YulExpressionStatement","src":"7782:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"7813:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"7816:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"7806:6:21"},"nodeType":"YulFunctionCall","src":"7806:15:21"},"nodeType":"YulExpressionStatement","src":"7806:15:21"}]},"name":"panic_error_0x51","nodeType":"YulFunctionDefinition","src":"7700:127:21"}]},"contents":"{\n { }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function array_allocation_size_bytes(length) -> size\n {\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n size := add(and(add(length, 31), not(31)), 0x20)\n }\n function abi_decode_tuple_t_addresst_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := calldataload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n calldatacopy(add(array, 32), add(_1, 32), _2)\n mstore(add(add(array, _2), 32), 0)\n value1 := array\n }\n function copy_memory_to_memory_with_cleanup(src, dst, length)\n {\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 mstore(add(dst, length), 0)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_tuple_t_bool_t_bytes_memory_ptr__to_t_bool_t_bytes_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, iszero(iszero(value0)))\n mstore(add(headStart, 32), 64)\n tail := abi_encode_bytes(value1, add(headStart, 64))\n }\n function abi_decode_bool(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_boolt_bytes_calldata_ptrt_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n value0 := abi_decode_bool(headStart)\n let offset := calldataload(add(headStart, 32))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(0, 0) }\n let _2 := add(headStart, offset)\n if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n let length := calldataload(_2)\n if gt(length, _1) { revert(0, 0) }\n if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n value1 := add(_2, 32)\n value2 := length\n value3 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_addresst_uint256t_bool(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n value1 := calldataload(add(headStart, 32))\n value2 := abi_decode_bool(add(headStart, 64))\n }\n function abi_decode_tuple_t_contract$_Relayer_$4434(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n }\n function abi_encode_tuple_t_stringliteral_3d56cbb81aade39b7c538569d08cab45095f0b665c7d261499795f2cecca4057__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 25)\n mstore(add(headStart, 64), \"Must be called by relayer\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory_with_cleanup(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(0, 0) }\n if gt(endIndex, length) { revert(0, 0) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function convert_bytes_to_fixedbytes_from_t_bytes_calldata_ptr_to_t_bytes4(array, len) -> value\n {\n let _1 := calldataload(array)\n let _2 := shl(224, 0xffffffff)\n value := and(_1, _2)\n if lt(len, 4)\n {\n value := and(and(_1, shl(shl(3, sub(4, len)), _2)), _2)\n }\n }\n function abi_decode_tuple_t_string_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let offset := mload(headStart)\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n let _1 := add(headStart, offset)\n if iszero(slt(add(_1, 0x1f), dataEnd)) { revert(0, 0) }\n let _2 := mload(_1)\n let array := allocate_memory(array_allocation_size_bytes(_2))\n mstore(array, _2)\n if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n copy_memory_to_memory_with_cleanup(add(_1, 32), add(array, 32), _2)\n value0 := array\n }\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n mstore(headStart, 32)\n tail := abi_encode_bytes(value0, add(headStart, 32))\n }\n function abi_encode_tuple_t_rational_1_by_1__to_t_uint64__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xffffffffffffffff))\n }\n function abi_encode_tuple_t_string_memory_ptr_t_uint256__to_t_string_memory_ptr_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n mstore(headStart, 64)\n tail := abi_encode_bytes(value0, add(headStart, 64))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__to_t_address_t_bytes_memory_ptr_t_bool_t_bytes4__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), 128)\n tail := abi_encode_bytes(value1, add(headStart, 128))\n mstore(add(headStart, 64), iszero(iszero(value2)))\n mstore(add(headStart, 96), and(value3, shl(224, 0xffffffff)))\n }\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := mload(headStart)\n }\n function panic_error_0x51()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x51)\n revert(0, 0x24)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4A JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5D903F03 EQ PUSH2 0x4F JUMPI DUP1 PUSH4 0x82DCC731 EQ PUSH2 0x79 JUMPI DUP1 PUSH4 0xB2C642D1 EQ PUSH2 0x99 JUMPI DUP1 PUSH4 0xC2AB4E3E EQ PUSH2 0xBB JUMPI DUP1 PUSH4 0xC4D66DE8 EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x62 PUSH2 0x5D CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0xFB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x70 SWAP3 SWAP2 SWAP1 PUSH2 0x812 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0x85 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x62 PUSH2 0x94 CALLDATASIZE PUSH1 0x4 PUSH2 0x72F JUMP JUMPDEST PUSH2 0x1CC JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xA5 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xB4 CALLDATASIZE PUSH1 0x4 PUSH2 0x84A JUMP JUMPDEST PUSH2 0x27C JUMP JUMPDEST STOP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xC7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x8D3 JUMP JUMPDEST PUSH2 0x3DA JUMP JUMPDEST CALLVALUE DUP1 ISZERO PUSH2 0xE7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xB9 PUSH2 0xF6 CALLDATASIZE PUSH1 0x4 PUSH2 0x911 JUMP JUMPDEST PUSH2 0x456 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x132 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x15F PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0xC DUP2 MSTORE PUSH1 0x20 ADD PUSH12 0x646973706174636865642829 PUSH1 0xA0 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLVALUE PUSH3 0x186A0 SWAP1 DUP6 PUSH1 0x40 MLOAD PUSH2 0x17D SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP6 DUP9 DUP9 CALL SWAP4 POP POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x60 SWAP2 POP JUMPDEST POP SWAP1 SWAP6 SWAP1 SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x60 SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x1FA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x224 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x9 DUP2 MSTORE PUSH1 0x20 ADD PUSH9 0x717565726965642829 PUSH1 0xB8 SHL DUP2 MSTORE POP PUSH2 0x574 JUMP JUMPDEST DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND PUSH3 0x186A0 DUP5 PUSH1 0x40 MLOAD PUSH2 0x240 SWAP2 SWAP1 PUSH2 0x96C JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 DUP7 DUP7 STATICCALL SWAP3 POP POP POP RETURNDATASIZE DUP1 PUSH1 0x0 DUP2 EQ PUSH2 0x1BB JUMPI PUSH1 0x40 MLOAD SWAP2 POP PUSH1 0x1F NOT PUSH1 0x3F RETURNDATASIZE ADD AND DUP3 ADD PUSH1 0x40 MSTORE RETURNDATASIZE DUP3 MSTORE RETURNDATASIZE PUSH1 0x0 PUSH1 0x20 DUP5 ADD RETURNDATACOPY PUSH2 0x1C0 JUMP JUMPDEST PUSH1 0x0 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND CALLER EQ PUSH2 0x2A6 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x129 SWAP1 PUSH2 0x935 JUMP JUMPDEST PUSH2 0x2D0 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x8 DUP2 MSTORE PUSH1 0x20 ADD PUSH8 0x66696E6973682829 PUSH1 0xC0 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST DUP4 ISZERO PUSH2 0x325 JUMPI PUSH1 0x0 PUSH2 0x2E4 DUP4 DUP6 ADD DUP6 PUSH2 0x988 JUMP JUMPDEST SWAP1 POP PUSH32 0x7165F2912DC85F932B95E64DC5404EA80083D36994C2B797EA2763BA0B71586B DUP2 PUSH1 0x40 MLOAD PUSH2 0x317 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP PUSH2 0x3D4 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x334 PUSH1 0x4 DUP3 DUP6 DUP8 PUSH2 0x9A1 JUMP JUMPDEST PUSH2 0x33D SWAP2 PUSH2 0x9CB JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x34E DUP5 PUSH1 0x4 DUP2 DUP9 PUSH2 0x9A1 JUMP JUMPDEST DUP1 DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP4 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP4 DUP4 DUP1 DUP3 DUP5 CALLDATACOPY PUSH1 0x0 SWAP3 ADD SWAP2 SWAP1 SWAP2 MSTORE POP POP DUP3 MLOAD SWAP3 SWAP4 POP PUSH32 0xC65844E8EE2558ED559EDAAD0FDB8D4149B19D5BB4D863BC498BED24F6B2DF51 SWAP3 PUSH2 0x3BC SWAP3 POP DUP5 ADD PUSH1 0x20 SWAP1 DUP2 ADD SWAP2 POP DUP5 ADD PUSH2 0x9FB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x3C9 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x42B DUP5 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x3F3 SWAP2 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x29E99F07 PUSH1 0xE0 SHL OR SWAP1 MSTORE DUP5 PUSH4 0xB2C642D1 PUSH1 0xE0 SHL PUSH2 0x603 JUMP JUMPDEST SWAP1 POP PUSH2 0x3D4 PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE DUP1 PUSH1 0x7 DUP2 MSTORE PUSH1 0x20 ADD PUSH7 0x73746172742829 PUSH1 0xC8 SHL DUP2 MSTORE POP DUP3 PUSH2 0x5BA JUMP JUMPDEST PUSH32 0xF0C57E16840DF040F15088DC2F81FE391C3923BEC73E23A9662EFC9C229C6A00 DUP1 SLOAD PUSH1 0x1 PUSH1 0x40 SHL DUP2 DIV PUSH1 0xFF AND ISZERO SWAP1 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x0 DUP2 ISZERO DUP1 ISZERO PUSH2 0x49C JUMPI POP DUP3 JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 PUSH8 0xFFFFFFFFFFFFFFFF AND PUSH1 0x1 EQ DUP1 ISZERO PUSH2 0x4B9 JUMPI POP ADDRESS EXTCODESIZE ISZERO JUMPDEST SWAP1 POP DUP2 ISZERO DUP1 ISZERO PUSH2 0x4C7 JUMPI POP DUP1 ISZERO JUMPDEST ISZERO PUSH2 0x4E5 JUMPI PUSH1 0x40 MLOAD PUSH4 0xF92EE8A9 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST DUP5 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF NOT AND PUSH1 0x1 OR DUP6 SSTORE DUP4 ISZERO PUSH2 0x50F JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND PUSH1 0x1 PUSH1 0x40 SHL OR DUP6 SSTORE JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP9 AND OR SWAP1 SSTORE DUP4 ISZERO PUSH2 0x56C JUMPI DUP5 SLOAD PUSH1 0xFF PUSH1 0x40 SHL NOT AND DUP6 SSTORE PUSH1 0x40 MLOAD PUSH1 0x1 DUP2 MSTORE PUSH32 0xC7F505B2F371AE2175EE4913F4499E1F2633A7B5936321EED1CDAEB6115181D2 SWAP1 PUSH1 0x20 ADD PUSH2 0x3C9 JUMP JUMPDEST POP POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x588 SWAP2 SWAP1 PUSH2 0xA69 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x104C13EB PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP JUMP JUMPDEST PUSH2 0x5FF DUP3 DUP3 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0x5D0 SWAP3 SWAP2 SWAP1 PUSH2 0xA7C JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x2D839CB3 PUSH1 0xE2 SHL OR SWAP1 MSTORE PUSH2 0x686 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD PUSH1 0x40 MLOAD PUSH4 0x139B4A87 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP1 SWAP2 AND SWAP1 PUSH4 0x139B4A87 SWAP1 PUSH2 0x63A SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 DUP9 SWAP1 PUSH1 0x4 ADD PUSH2 0xA9E JUMP JUMPDEST PUSH1 0x20 PUSH1 0x40 MLOAD DUP1 DUP4 SUB DUP2 PUSH1 0x0 DUP8 GAS CALL ISZERO DUP1 ISZERO PUSH2 0x659 JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP POP POP PUSH1 0x40 MLOAD RETURNDATASIZE PUSH1 0x1F NOT PUSH1 0x1F DUP3 ADD AND DUP3 ADD DUP1 PUSH1 0x40 MSTORE POP DUP2 ADD SWAP1 PUSH2 0x67D SWAP2 SWAP1 PUSH2 0xAE4 JUMP JUMPDEST SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH2 0x5B7 DUP2 PUSH1 0x0 PUSH11 0x636F6E736F6C652E6C6F67 SWAP1 POP PUSH1 0x0 DUP1 DUP4 MLOAD PUSH1 0x20 DUP6 ADD DUP5 GAS STATICCALL POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x5B7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x6FF JUMPI PUSH2 0x6FF PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x721 JUMPI PUSH2 0x721 PUSH2 0x6C0 JUMP JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x742 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD PUSH2 0x74D DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x769 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 ADD PUSH1 0x1F DUP2 ADD DUP6 SGT PUSH2 0x77A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 CALLDATALOAD PUSH2 0x78D PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST PUSH2 0x6D6 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP7 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0x7A2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP5 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 PUSH1 0x20 DUP4 DUP4 ADD ADD MSTORE DUP1 SWAP4 POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7DD JUMPI DUP2 DUP2 ADD MLOAD DUP4 DUP3 ADD MSTORE PUSH1 0x20 ADD PUSH2 0x7C5 JUMP JUMPDEST POP POP PUSH1 0x0 SWAP2 ADD MSTORE JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD DUP1 DUP5 MSTORE PUSH2 0x7FE DUP2 PUSH1 0x20 DUP7 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x20 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP3 ISZERO ISZERO DUP2 MSTORE PUSH1 0x40 PUSH1 0x20 DUP3 ADD MSTORE PUSH1 0x0 PUSH2 0x82D PUSH1 0x40 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST DUP1 CALLDATALOAD DUP1 ISZERO ISZERO DUP2 EQ PUSH2 0x845 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH1 0x60 DUP6 DUP8 SUB SLT ISZERO PUSH2 0x860 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x869 DUP6 PUSH2 0x835 JUMP JUMPDEST SWAP4 POP PUSH1 0x20 DUP6 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x886 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP8 ADD SWAP2 POP DUP8 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x89A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x8A9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP9 PUSH1 0x20 DUP3 DUP6 ADD ADD GT ISZERO PUSH2 0x8BB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP6 SWAP9 PUSH1 0x20 SWAP3 SWAP1 SWAP3 ADD SWAP8 POP SWAP5 SWAP6 PUSH1 0x40 ADD CALLDATALOAD SWAP5 POP SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x8E8 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x8F3 DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD SWAP2 POP PUSH2 0x908 PUSH1 0x40 DUP6 ADD PUSH2 0x835 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH2 0x92E DUP2 PUSH2 0x6AB JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x19 SWAP1 DUP3 ADD MSTORE PUSH32 0x4D7573742062652063616C6C65642062792072656C6179657200000000000000 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 MLOAD PUSH2 0x97E DUP2 DUP5 PUSH1 0x20 DUP8 ADD PUSH2 0x7C2 JUMP JUMPDEST SWAP2 SWAP1 SWAP2 ADD SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x99A JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP6 DUP6 GT ISZERO PUSH2 0x9B1 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP4 DUP7 GT ISZERO PUSH2 0x9BE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP POP DUP3 ADD SWAP4 SWAP2 SWAP1 SWAP3 SUB SWAP2 POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT DUP2 CALLDATALOAD DUP2 DUP2 AND SWAP2 PUSH1 0x4 DUP6 LT ISZERO PUSH2 0x9F3 JUMPI DUP1 DUP2 DUP7 PUSH1 0x4 SUB PUSH1 0x3 SHL SHL DUP4 AND AND SWAP3 POP JUMPDEST POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xA0D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0xA24 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 ADD PUSH1 0x1F DUP2 ADD DUP5 SGT PUSH2 0xA35 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 MLOAD PUSH2 0xA43 PUSH2 0x788 DUP3 PUSH2 0x707 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP6 PUSH1 0x20 DUP4 DUP6 ADD ADD GT ISZERO PUSH2 0xA58 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x67D DUP3 PUSH1 0x20 DUP4 ADD PUSH1 0x20 DUP7 ADD PUSH2 0x7C2 JUMP JUMPDEST PUSH1 0x20 DUP2 MSTORE PUSH1 0x0 PUSH2 0x92E PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x7E6 JUMP JUMPDEST PUSH1 0x40 DUP2 MSTORE PUSH1 0x0 PUSH2 0xA8F PUSH1 0x40 DUP4 ADD DUP6 PUSH2 0x7E6 JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x20 DUP4 ADD MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 AND DUP2 MSTORE PUSH1 0x80 PUSH1 0x20 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP1 PUSH2 0xAC2 SWAP1 DUP4 ADD DUP7 PUSH2 0x7E6 JUMP JUMPDEST SWAP4 ISZERO ISZERO PUSH1 0x40 DUP4 ADD MSTORE POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB NOT SWAP2 SWAP1 SWAP2 AND PUSH1 0x60 SWAP1 SWAP2 ADD MSTORE SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0xAF6 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP MLOAD SWAP2 SWAP1 POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xD GASPRICE 0x5D 0xBB LT OR 0xD2 SWAP11 SWAP6 PUSH22 0x446823CAD302CDF8D61C42CE90152978B934F77874A PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"90:805:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;495:274:14;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;775:253;;;;;;;;;;-1:-1:-1;775:253:14;;;;;:::i;:::-;;:::i;463:430:18:-;;;;;;;;;;-1:-1:-1;463:430:18;;;;;:::i;:::-;;:::i;:::-;;121:282;;;;;;;;;;-1:-1:-1;121:282:18;;;;;:::i;:::-;;:::i;272:91:14:-;;;;;;;;;;-1:-1:-1;272:91:14;;;;;:::i;:::-;;:::i;495:274::-;608:12;432:8;;622:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;;;;;;;;;655:27:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;655:27:14::1;;::::0;:11:::1;:27::i;:::-;714:6;-1:-1:-1::0;;;;;714:11:14::1;733:9;749:6;714:48;757:4;714:48;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;692:70:14;;;;-1:-1:-1;495:274:14;-1:-1:-1;;;495:274:14:o;775:253::-;882:12;432:8;;896:21;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;929:24:::1;;;;;;;;;;;;;;-1:-1:-1::0;;;929:24:14::1;;::::0;:11:::1;:24::i;:::-;985:6;-1:-1:-1::0;;;;;985:17:14::1;1008:6;1016:4;985:36;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;463:430:18::0;432:8:14;;-1:-1:-1;;;;;432:8:14;410:10;:31;402:69;;;;-1:-1:-1;;;402:69:14;;;;;;;:::i;:::-;584:30:18::1;;;;;;;;;;;;;;-1:-1:-1::0;;;584:30:18::1;;::::0;608:5:::1;584:11;:30::i;:::-;628:7;624:263;;;651:8;662:23;::::0;;::::1;673:3:::0;662:23:::1;:::i;:::-;651:34;;704:14;714:3;704:14;;;;4927:25:21::0;;4915:2;4900:18;;4781:177;704:14:18::1;;;;;;;;637:92;624:263;;;749:10;769:7;774:1;749:10:::0;769:3;;:7:::1;:::i;:::-;762:15;::::0;::::1;:::i;:::-;749:28:::0;-1:-1:-1;791:16:18::1;816:7;:3:::0;820:1:::1;816:3:::0;;:7:::1;:::i;:::-;791:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;850:25:18;;791:33;;-1:-1:-1;843:33:18::1;::::0;850:25:::1;::::0;-1:-1:-1;850:25:18;;::::1;::::0;;;;-1:-1:-1;850:25:18;::::1;;:::i;:::-;843:33;;;;;;:::i;:::-;;;;;;;;735:152;;624:263;463:430:::0;;;;:::o;121:282::-;194:10;207:150;226:6;287:3;246:45;;;;;;4927:25:21;;4915:2;4900:18;;4781:177;246:45:18;;;;-1:-1:-1;;246:45:18;;;;;;;;;;;;;;-1:-1:-1;;;;;246:45:18;-1:-1:-1;;;246:45:18;;;305:8;-1:-1:-1;;;207:5:18;:150::i;:::-;194:163;;367:29;;;;;;;;;;;;;;-1:-1:-1;;;367:29:18;;;390:5;367:11;:29::i;272:91:14:-;8870:21:1;4302:15;;-1:-1:-1;;;4302:15:1;;;;4301:16;;4348:14;;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;:16;;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:1;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:1;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:1;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:1;-1:-1:-1;;;5013:22:1;;;4979:67;338:8:14::1;:18:::0;;-1:-1:-1;;;;;;338:18:14::1;-1:-1:-1::0;;;;;338:18:14;::::1;;::::0;;5066:101:1;;;;5100:23;;-1:-1:-1;;;;5100:23:1;;;5142:14;;-1:-1:-1;6657:50:21;;5142:14:1;;6645:2:21;6630:18;5142:14:1;6504:209:21;5066:101:1;4092:1081;;;;;272:91:14;:::o;6070:121:20:-;6125:59;6180:2;6141:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6141:42:20;;;;;;;;;;;;;;-1:-1:-1;;;;;6141:42:20;-1:-1:-1;;;6141:42:20;;;6125:15;:59::i;:::-;6070:121;:::o;7018:145::-;7085:71;7148:2;7152;7101:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7101:54:20;;;;;;;;;;;;;;-1:-1:-1;;;;;7101:54:20;-1:-1:-1;;;7101:54:20;;;7085:15;:71::i;:::-;7018:145;;:::o;1034:223:14:-;1172:10;1202:8;;:48;;-1:-1:-1;;;1202:48:14;;-1:-1:-1;;;;;1202:8:14;;;;:14;;:48;;1217:6;;1225:4;;1231:8;;1241;;1202:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1194:56;1034:223;-1:-1:-1;;;;;1034:223:14:o;851:129:20:-;922:51;965:7;265:22;131:42;265:40;;594:1;571;541:7;535:14;510:2;501:7;497:16;461:14;434:5;402:211;381:246;367:270;180:463;:::o;14:131:21:-;-1:-1:-1;;;;;89:31:21;;79:42;;69:70;;135:1;132;125:12;150:127;211:10;206:3;202:20;199:1;192:31;242:4;239:1;232:15;266:4;263:1;256:15;282:275;353:2;347:9;418:2;399:13;;-1:-1:-1;;395:27:21;383:40;;453:18;438:34;;474:22;;;435:62;432:88;;;500:18;;:::i;:::-;536:2;529:22;282:275;;-1:-1:-1;282:275:21:o;562:186::-;610:4;643:18;635:6;632:30;629:56;;;665:18;;:::i;:::-;-1:-1:-1;731:2:21;710:15;-1:-1:-1;;706:29:21;737:4;702:40;;562:186::o;753:806::-;830:6;838;891:2;879:9;870:7;866:23;862:32;859:52;;;907:1;904;897:12;859:52;946:9;933:23;965:31;990:5;965:31;:::i;:::-;1015:5;-1:-1:-1;1071:2:21;1056:18;;1043:32;1098:18;1087:30;;1084:50;;;1130:1;1127;1120:12;1084:50;1153:22;;1206:4;1198:13;;1194:27;-1:-1:-1;1184:55:21;;1235:1;1232;1225:12;1184:55;1271:2;1258:16;1296:48;1312:31;1340:2;1312:31;:::i;:::-;1296:48;:::i;:::-;1367:2;1360:5;1353:17;1407:7;1402:2;1397;1393;1389:11;1385:20;1382:33;1379:53;;;1428:1;1425;1418:12;1379:53;1483:2;1478;1474;1470:11;1465:2;1458:5;1454:14;1441:45;1527:1;1522:2;1517;1510:5;1506:14;1502:23;1495:34;1548:5;1538:15;;;;;753:806;;;;;:::o;1564:250::-;1649:1;1659:113;1673:6;1670:1;1667:13;1659:113;;;1749:11;;;1743:18;1730:11;;;1723:39;1695:2;1688:10;1659:113;;;-1:-1:-1;;1806:1:21;1788:16;;1781:27;1564:250::o;1819:270::-;1860:3;1898:5;1892:12;1925:6;1920:3;1913:19;1941:76;2010:6;2003:4;1998:3;1994:14;1987:4;1980:5;1976:16;1941:76;:::i;:::-;2071:2;2050:15;-1:-1:-1;;2046:29:21;2037:39;;;;2078:4;2033:50;;1819:270;-1:-1:-1;;1819:270:21:o;2094:298::-;2277:6;2270:14;2263:22;2252:9;2245:41;2322:2;2317;2306:9;2302:18;2295:30;2226:4;2342:44;2382:2;2371:9;2367:18;2359:6;2342:44;:::i;:::-;2334:52;2094:298;-1:-1:-1;;;;2094:298:21:o;2397:160::-;2462:20;;2518:13;;2511:21;2501:32;;2491:60;;2547:1;2544;2537:12;2491:60;2397:160;;;:::o;2562:727::-;2647:6;2655;2663;2671;2724:2;2712:9;2703:7;2699:23;2695:32;2692:52;;;2740:1;2737;2730:12;2692:52;2763:26;2779:9;2763:26;:::i;:::-;2753:36;;2840:2;2829:9;2825:18;2812:32;2863:18;2904:2;2896:6;2893:14;2890:34;;;2920:1;2917;2910:12;2890:34;2958:6;2947:9;2943:22;2933:32;;3003:7;2996:4;2992:2;2988:13;2984:27;2974:55;;3025:1;3022;3015:12;2974:55;3065:2;3052:16;3091:2;3083:6;3080:14;3077:34;;;3107:1;3104;3097:12;3077:34;3152:7;3147:2;3138:6;3134:2;3130:15;3126:24;3123:37;3120:57;;;3173:1;3170;3163:12;3120:57;2562:727;;3204:2;3196:11;;;;;-1:-1:-1;3226:6:21;;3279:2;3264:18;3251:32;;-1:-1:-1;2562:727:21;-1:-1:-1;;;2562:727:21:o;3294:383::-;3368:6;3376;3384;3437:2;3425:9;3416:7;3412:23;3408:32;3405:52;;;3453:1;3450;3443:12;3405:52;3492:9;3479:23;3511:31;3536:5;3511:31;:::i;:::-;3561:5;-1:-1:-1;3613:2:21;3598:18;;3585:32;;-1:-1:-1;3636:35:21;3667:2;3652:18;;3636:35;:::i;:::-;3626:45;;3294:383;;;;;:::o;3682:263::-;3757:6;3810:2;3798:9;3789:7;3785:23;3781:32;3778:52;;;3826:1;3823;3816:12;3778:52;3865:9;3852:23;3884:31;3909:5;3884:31;:::i;:::-;3934:5;3682:263;-1:-1:-1;;;3682:263:21:o;3950:349::-;4152:2;4134:21;;;4191:2;4171:18;;;4164:30;4230:27;4225:2;4210:18;;4203:55;4290:2;4275:18;;3950:349::o;4304:287::-;4433:3;4471:6;4465:13;4487:66;4546:6;4541:3;4534:4;4526:6;4522:17;4487:66;:::i;:::-;4569:16;;;;;4304:287;-1:-1:-1;;4304:287:21:o;4596:180::-;4655:6;4708:2;4696:9;4687:7;4683:23;4679:32;4676:52;;;4724:1;4721;4714:12;4676:52;-1:-1:-1;4747:23:21;;4596:180;-1:-1:-1;4596:180:21:o;4963:331::-;5068:9;5079;5121:8;5109:10;5106:24;5103:44;;;5143:1;5140;5133:12;5103:44;5172:6;5162:8;5159:20;5156:40;;;5192:1;5189;5182:12;5156:40;-1:-1:-1;;5218:23:21;;;5263:25;;;;;-1:-1:-1;4963:331:21:o;5299:323::-;-1:-1:-1;;;;;;5419:19:21;;5495:11;;;;5526:1;5518:10;;5515:101;;;5603:2;5597;5590:3;5587:1;5583:11;5580:1;5576:19;5572:28;5568:2;5564:37;5560:46;5551:55;;5515:101;;;5299:323;;;;:::o;5627:648::-;5707:6;5760:2;5748:9;5739:7;5735:23;5731:32;5728:52;;;5776:1;5773;5766:12;5728:52;5809:9;5803:16;5842:18;5834:6;5831:30;5828:50;;;5874:1;5871;5864:12;5828:50;5897:22;;5950:4;5942:13;;5938:27;-1:-1:-1;5928:55:21;;5979:1;5976;5969:12;5928:55;6008:2;6002:9;6033:48;6049:31;6077:2;6049:31;:::i;6033:48::-;6104:2;6097:5;6090:17;6144:7;6139:2;6134;6130;6126:11;6122:20;6119:33;6116:53;;;6165:1;6162;6155:12;6116:53;6178:67;6242:2;6237;6230:5;6226:14;6221:2;6217;6213:11;6178:67;:::i;6280:219::-;6429:2;6418:9;6411:21;6392:4;6449:44;6489:2;6478:9;6474:18;6466:6;6449:44;:::i;6718:290::-;6895:2;6884:9;6877:21;6858:4;6915:44;6955:2;6944:9;6940:18;6932:6;6915:44;:::i;:::-;6907:52;;6995:6;6990:2;6979:9;6975:18;6968:34;6718:290;;;;;:::o;7013:493::-;-1:-1:-1;;;;;7236:32:21;;7218:51;;7305:3;7300:2;7285:18;;7278:31;;;-1:-1:-1;;7326:45:21;;7351:19;;7343:6;7326:45;:::i;:::-;7414:14;;7407:22;7402:2;7387:18;;7380:50;-1:-1:-1;;;;;;;7466:33:21;;;;7461:2;7446:18;;;7439:61;7318:53;7013:493;-1:-1:-1;;7013:493:21:o;7511:184::-;7581:6;7634:2;7622:9;7613:7;7609:23;7605:32;7602:52;;;7650:1;7647;7640:12;7602:52;-1:-1:-1;7673:16:21;;7511:184;-1:-1:-1;7511:184:21:o"},"methodIdentifiers":{"dispatched(address,bytes)":"5d903f03","finish(bool,bytes,uint256)":"b2c642d1","initialize(address)":"c4d66de8","queried(address,bytes)":"82dcc731","start(address,uint256,bool)":"c2ab4e3e"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"Failed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Succeeded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"dispatched\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"res\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"}],\"name\":\"finish\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Relayer\",\"name\":\"relayer\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"call\",\"type\":\"bytes\"}],\"name\":\"queried\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"response\",\"type\":\"bytes\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"readonly\",\"type\":\"bool\"}],\"name\":\"start\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"}},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/Test.sol\":\"Twin\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"@openzeppelin/contracts/utils/Create2.sol\":{\"keccak256\":\"0x2b9807d194b92f1068d868e9587d27037264a9a067c778486f86ae21c61cbd5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22d71f40aa38a20cf466d8647452a6e3f746353474f8c8af40f03aa8cae38420\",\"dweb:/ipfs/QmQ752Hz5av7YDK8pFojzb5qgeXQvfsdkdwkHVzaXoYAZR\"]},\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/Bridged.sol\":{\"keccak256\":\"0xdecc7a7e7a44750cf5e47bafb84954912bfafd79a9b364e639b1530be310eb9e\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://2fe64ae3e6ad66e2b9f49bc2039e49db5d8b8d2d58f02bd066ecef21aefe3f35\",\"dweb:/ipfs/QmRVw6NMWBig4TveBkjVsiWp8s99rg7i1bXdKWRcg1jnMQ\"]},\"contracts/Relayer.sol\":{\"keccak256\":\"0x8f1b6a34271cd7a5abf58d188396c67dd8fa2e128521ec77a958e855115bc728\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://f4b6ddc04e79d8d1d47b3f644d5598127fd19cedbfcb84f554347afa74ae2d4a\",\"dweb:/ipfs/QmXSR2X15qEVARgWSAwGckxWxpeDVyeWq1EGATRLCLrskn\"]},\"contracts/Test.sol\":{\"keccak256\":\"0x7e145dc159902e17f4d12e7a83d0d9e876be3e1aba2552a794074d11f7989d90\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://d5899a5543741576a0b5dd62e45edce777eb9506933dc0bb695330021a929f9c\",\"dweb:/ipfs/Qme3uQvCvPeRpg58fcAaprVejro29xomrBaVRdRAkjCAtd\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]},\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}},"contracts/ValidatorManager.sol":{"ValidatorManager":{"abi":[{"inputs":[{"internalType":"address[]","name":"validators","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"addValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getValidators","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"hasSupermajority","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"removeValidator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes","name":"signature","type":"bytes"}],"name":"validateSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"ethSignedMessageHash","type":"bytes32"},{"internalType":"bytes[]","name":"signatures","type":"bytes[]"}],"name":"validateUniqueSignatures","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"validatorsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}],"evm":{"bytecode":{"functionDebugData":{"@_4615":{"entryPoint":null,"id":4615,"parameterSlots":1,"returnSlots":0},"@_add_3069":{"entryPoint":190,"id":3069,"parameterSlots":2,"returnSlots":1},"@_contains_3172":{"entryPoint":null,"id":3172,"parameterSlots":2,"returnSlots":1},"@addValidator_4628":{"entryPoint":140,"id":4628,"parameterSlots":1,"returnSlots":1},"@add_3369":{"entryPoint":160,"id":3369,"parameterSlots":2,"returnSlots":1},"abi_decode_address_fromMemory":{"entryPoint":294,"id":null,"parameterSlots":1,"returnSlots":1},"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory":{"entryPoint":323,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":555,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x32":{"entryPoint":533,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":272,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:1828:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"206:117:21","statements":[{"nodeType":"YulAssignment","src":"216:22:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"231:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"225:5:21"},"nodeType":"YulFunctionCall","src":"225:13:21"},"variableNames":[{"name":"value","nodeType":"YulIdentifier","src":"216:5:21"}]},{"body":{"nodeType":"YulBlock","src":"301:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"310:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"313:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"303:6:21"},"nodeType":"YulFunctionCall","src":"303:12:21"},"nodeType":"YulExpressionStatement","src":"303:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"260:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"271:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"286:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"291:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"282:3:21"},"nodeType":"YulFunctionCall","src":"282:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"295:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"278:3:21"},"nodeType":"YulFunctionCall","src":"278:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"267:3:21"},"nodeType":"YulFunctionCall","src":"267:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"257:2:21"},"nodeType":"YulFunctionCall","src":"257:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"250:6:21"},"nodeType":"YulFunctionCall","src":"250:50:21"},"nodeType":"YulIf","src":"247:70:21"}]},"name":"abi_decode_address_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"185:6:21","type":""}],"returnVariables":[{"name":"value","nodeType":"YulTypedName","src":"196:5:21","type":""}],"src":"146:177:21"},{"body":{"nodeType":"YulBlock","src":"434:1023:21","statements":[{"nodeType":"YulVariableDeclaration","src":"444:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"454:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"448:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"501:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"510:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"513:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"503:6:21"},"nodeType":"YulFunctionCall","src":"503:12:21"},"nodeType":"YulExpressionStatement","src":"503:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"476:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"485:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"472:3:21"},"nodeType":"YulFunctionCall","src":"472:23:21"},{"name":"_1","nodeType":"YulIdentifier","src":"497:2:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"468:3:21"},"nodeType":"YulFunctionCall","src":"468:32:21"},"nodeType":"YulIf","src":"465:52:21"},{"nodeType":"YulVariableDeclaration","src":"526:30:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"546:9:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"540:5:21"},"nodeType":"YulFunctionCall","src":"540:16:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"530:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"565:28:21","value":{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"583:2:21","type":"","value":"64"},{"kind":"number","nodeType":"YulLiteral","src":"587:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"579:3:21"},"nodeType":"YulFunctionCall","src":"579:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"591:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"575:3:21"},"nodeType":"YulFunctionCall","src":"575:18:21"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"569:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"620:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"629:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"632:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"622:6:21"},"nodeType":"YulFunctionCall","src":"622:12:21"},"nodeType":"YulExpressionStatement","src":"622:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"608:6:21"},{"name":"_2","nodeType":"YulIdentifier","src":"616:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"605:2:21"},"nodeType":"YulFunctionCall","src":"605:14:21"},"nodeType":"YulIf","src":"602:34:21"},{"nodeType":"YulVariableDeclaration","src":"645:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"659:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"670:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"655:3:21"},"nodeType":"YulFunctionCall","src":"655:22:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"649:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"725:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"734:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"737:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"727:6:21"},"nodeType":"YulFunctionCall","src":"727:12:21"},"nodeType":"YulExpressionStatement","src":"727:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"704:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"708:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"700:3:21"},"nodeType":"YulFunctionCall","src":"700:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"715:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"696:3:21"},"nodeType":"YulFunctionCall","src":"696:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"689:6:21"},"nodeType":"YulFunctionCall","src":"689:35:21"},"nodeType":"YulIf","src":"686:55:21"},{"nodeType":"YulVariableDeclaration","src":"750:19:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"766:2:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"760:5:21"},"nodeType":"YulFunctionCall","src":"760:9:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"754:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"792:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"794:16:21"},"nodeType":"YulFunctionCall","src":"794:18:21"},"nodeType":"YulExpressionStatement","src":"794:18:21"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"784:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"788:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"781:2:21"},"nodeType":"YulFunctionCall","src":"781:10:21"},"nodeType":"YulIf","src":"778:36:21"},{"nodeType":"YulVariableDeclaration","src":"823:20:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"837:1:21","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"840:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"833:3:21"},"nodeType":"YulFunctionCall","src":"833:10:21"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"827:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"852:23:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"872:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"866:5:21"},"nodeType":"YulFunctionCall","src":"866:9:21"},"variables":[{"name":"memPtr","nodeType":"YulTypedName","src":"856:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"884:56:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"906:6:21"},{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"922:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"926:2:21","type":"","value":"63"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"918:3:21"},"nodeType":"YulFunctionCall","src":"918:11:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"935:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"931:3:21"},"nodeType":"YulFunctionCall","src":"931:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"914:3:21"},"nodeType":"YulFunctionCall","src":"914:25:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"902:3:21"},"nodeType":"YulFunctionCall","src":"902:38:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"888:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"999:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"1001:16:21"},"nodeType":"YulFunctionCall","src":"1001:18:21"},"nodeType":"YulExpressionStatement","src":"1001:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"958:10:21"},{"name":"_2","nodeType":"YulIdentifier","src":"970:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"955:2:21"},"nodeType":"YulFunctionCall","src":"955:18:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"978:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"990:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"975:2:21"},"nodeType":"YulFunctionCall","src":"975:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"952:2:21"},"nodeType":"YulFunctionCall","src":"952:46:21"},"nodeType":"YulIf","src":"949:72:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1037:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"1041:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1030:6:21"},"nodeType":"YulFunctionCall","src":"1030:22:21"},"nodeType":"YulExpressionStatement","src":"1030:22:21"},{"nodeType":"YulVariableDeclaration","src":"1061:17:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1072:6:21"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"1065:3:21","type":""}]},{"expression":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1094:6:21"},{"name":"_4","nodeType":"YulIdentifier","src":"1102:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1087:6:21"},"nodeType":"YulFunctionCall","src":"1087:18:21"},"nodeType":"YulExpressionStatement","src":"1087:18:21"},{"nodeType":"YulAssignment","src":"1114:22:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"1125:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1133:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1121:3:21"},"nodeType":"YulFunctionCall","src":"1121:15:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1114:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"1145:34:21","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1167:2:21"},{"name":"_5","nodeType":"YulIdentifier","src":"1171:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1163:3:21"},"nodeType":"YulFunctionCall","src":"1163:11:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1176:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1159:3:21"},"nodeType":"YulFunctionCall","src":"1159:20:21"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"1149:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1211:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1220:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1223:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1213:6:21"},"nodeType":"YulFunctionCall","src":"1213:12:21"},"nodeType":"YulExpressionStatement","src":"1213:12:21"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"1194:6:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1202:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1191:2:21"},"nodeType":"YulFunctionCall","src":"1191:19:21"},"nodeType":"YulIf","src":"1188:39:21"},{"nodeType":"YulVariableDeclaration","src":"1236:22:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"1251:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1255:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1247:3:21"},"nodeType":"YulFunctionCall","src":"1247:11:21"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"1240:3:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1323:103:21","statements":[{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1344:3:21"},{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1379:3:21"}],"functionName":{"name":"abi_decode_address_fromMemory","nodeType":"YulIdentifier","src":"1349:29:21"},"nodeType":"YulFunctionCall","src":"1349:34:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1337:6:21"},"nodeType":"YulFunctionCall","src":"1337:47:21"},"nodeType":"YulExpressionStatement","src":"1337:47:21"},{"nodeType":"YulAssignment","src":"1397:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"1408:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1413:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1404:3:21"},"nodeType":"YulFunctionCall","src":"1404:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"1397:3:21"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1278:3:21"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"1283:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"1275:2:21"},"nodeType":"YulFunctionCall","src":"1275:15:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"1291:23:21","statements":[{"nodeType":"YulAssignment","src":"1293:19:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"1304:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"1309:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1300:3:21"},"nodeType":"YulFunctionCall","src":"1300:12:21"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"1293:3:21"}]}]},"pre":{"nodeType":"YulBlock","src":"1271:3:21","statements":[]},"src":"1267:159:21"},{"nodeType":"YulAssignment","src":"1435:16:21","value":{"name":"memPtr","nodeType":"YulIdentifier","src":"1445:6:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1435:6:21"}]}]},"name":"abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"400:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"411:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"423:6:21","type":""}],"src":"328:1129:21"},{"body":{"nodeType":"YulBlock","src":"1494:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1511:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1518:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1523:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1514:3:21"},"nodeType":"YulFunctionCall","src":"1514:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1504:6:21"},"nodeType":"YulFunctionCall","src":"1504:31:21"},"nodeType":"YulExpressionStatement","src":"1504:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1551:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1554:4:21","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1544:6:21"},"nodeType":"YulFunctionCall","src":"1544:15:21"},"nodeType":"YulExpressionStatement","src":"1544:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1575:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1578:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1568:6:21"},"nodeType":"YulFunctionCall","src":"1568:15:21"},"nodeType":"YulExpressionStatement","src":"1568:15:21"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"1462:127:21"},{"body":{"nodeType":"YulBlock","src":"1641:185:21","statements":[{"body":{"nodeType":"YulBlock","src":"1680:111:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1701:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1708:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"1713:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1704:3:21"},"nodeType":"YulFunctionCall","src":"1704:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1694:6:21"},"nodeType":"YulFunctionCall","src":"1694:31:21"},"nodeType":"YulExpressionStatement","src":"1694:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1745:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"1748:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1738:6:21"},"nodeType":"YulFunctionCall","src":"1738:15:21"},"nodeType":"YulExpressionStatement","src":"1738:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1773:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1776:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1766:6:21"},"nodeType":"YulFunctionCall","src":"1766:15:21"},"nodeType":"YulExpressionStatement","src":"1766:15:21"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1657:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1668:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"1664:3:21"},"nodeType":"YulFunctionCall","src":"1664:6:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1654:2:21"},"nodeType":"YulFunctionCall","src":"1654:17:21"},"nodeType":"YulIf","src":"1651:140:21"},{"nodeType":"YulAssignment","src":"1800:20:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1811:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"1818:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1807:3:21"},"nodeType":"YulFunctionCall","src":"1807:13:21"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"1800:3:21"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"1623:5:21","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"1633:3:21","type":""}],"src":"1594:232:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function abi_decode_address_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptr_fromMemory(headStart, dataEnd) -> value0\n {\n let _1 := 32\n if slt(sub(dataEnd, headStart), _1) { revert(0, 0) }\n let offset := mload(headStart)\n let _2 := sub(shl(64, 1), 1)\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := mload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(_5, 63), not(31)))\n if or(gt(newFreePtr, _2), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n let dst := memPtr\n mstore(memPtr, _4)\n dst := add(memPtr, _1)\n let srcEnd := add(add(_3, _5), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n mstore(dst, abi_decode_address_fromMemory(src))\n dst := add(dst, _1)\n }\n value0 := memPtr\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n ret := add(value, 1)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"linkReferences":{},"object":"60806040523480156200001157600080fd5b5060405162000c5a38038062000c5a833981016040819052620000349162000143565b60005b815181101562000084576200006e8282815181106200005a576200005a62000215565b60200260200101516200008c60201b60201c565b50806200007b816200022b565b91505062000037565b505062000253565b60006200009a8183620000a0565b92915050565b6000620000b7836001600160a01b038416620000be565b9392505050565b600081815260018301602052604081205462000107575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200009a565b5060006200009a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200013e57600080fd5b919050565b600060208083850312156200015757600080fd5b82516001600160401b03808211156200016f57600080fd5b818501915085601f8301126200018457600080fd5b81518181111562000199576200019962000110565b8060051b604051601f19603f83011681018181108582111715620001c157620001c162000110565b604052918252848201925083810185019188831115620001e057600080fd5b938501935b828510156200020957620001f98562000126565b84529385019392850192620001e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200024c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6109f780620002636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH3 0x11 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH3 0xC5A CODESIZE SUB DUP1 PUSH3 0xC5A DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH3 0x34 SWAP2 PUSH3 0x143 JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP2 MLOAD DUP2 LT ISZERO PUSH3 0x84 JUMPI PUSH3 0x6E DUP3 DUP3 DUP2 MLOAD DUP2 LT PUSH3 0x5A JUMPI PUSH3 0x5A PUSH3 0x215 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD PUSH3 0x8C PUSH1 0x20 SHL PUSH1 0x20 SHR JUMP JUMPDEST POP DUP1 PUSH3 0x7B DUP2 PUSH3 0x22B JUMP JUMPDEST SWAP2 POP POP PUSH3 0x37 JUMP JUMPDEST POP POP PUSH3 0x253 JUMP JUMPDEST PUSH1 0x0 PUSH3 0x9A DUP2 DUP4 PUSH3 0xA0 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH3 0xB7 DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH3 0xBE JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH3 0x107 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH3 0x9A JUMP JUMPDEST POP PUSH1 0x0 PUSH3 0x9A JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH3 0x13E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP1 DUP4 DUP6 SUB SLT ISZERO PUSH3 0x157 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0x40 SHL SUB DUP1 DUP3 GT ISZERO PUSH3 0x16F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP6 ADD SWAP2 POP DUP6 PUSH1 0x1F DUP4 ADD SLT PUSH3 0x184 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 MLOAD DUP2 DUP2 GT ISZERO PUSH3 0x199 JUMPI PUSH3 0x199 PUSH3 0x110 JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH1 0x40 MLOAD PUSH1 0x1F NOT PUSH1 0x3F DUP4 ADD AND DUP2 ADD DUP2 DUP2 LT DUP6 DUP3 GT OR ISZERO PUSH3 0x1C1 JUMPI PUSH3 0x1C1 PUSH3 0x110 JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 DUP3 MSTORE DUP5 DUP3 ADD SWAP3 POP DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP9 DUP4 GT ISZERO PUSH3 0x1E0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP4 DUP6 ADD SWAP4 JUMPDEST DUP3 DUP6 LT ISZERO PUSH3 0x209 JUMPI PUSH3 0x1F9 DUP6 PUSH3 0x126 JUMP JUMPDEST DUP5 MSTORE SWAP4 DUP6 ADD SWAP4 SWAP3 DUP6 ADD SWAP3 PUSH3 0x1E5 JUMP JUMPDEST SWAP9 SWAP8 POP POP POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH3 0x24C JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH2 0x9F7 DUP1 PUSH3 0x263 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7947C3FA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x7947C3FA EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB7AB4DB5 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xED612F8C EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xFACD743B EQ PUSH2 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x333DAF92 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x3E99D941 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x40A141FF EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4D238C8E EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C8 JUMP JUMPDEST PUSH2 0x161 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x188 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xE9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x194 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xFC CALLDATASIZE PUSH1 0x4 PUSH2 0x80A JUMP JUMPDEST PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x8D9 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x2B3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C DUP5 DUP5 PUSH2 0x2BF JUMP JUMPDEST SWAP1 POP PUSH2 0x157 DUP2 PUSH2 0x2B3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16B PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x176 SWAP1 PUSH1 0x2 PUSH2 0x93C JUMP JUMPDEST PUSH2 0x181 DUP4 PUSH1 0x3 PUSH2 0x93C JUMP JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x2E9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x305 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 PUSH2 0x1DC DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C5 JUMPI PUSH2 0x1C5 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 PUSH2 0x2BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GT PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E617475726573206D75737420626520756E6971756520616E6420696E PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1034B731B932B0B9B4B7339037B93232B9 PUSH1 0x79 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x267 DUP2 PUSH2 0x2B3 JUMP JUMPDEST PUSH2 0x277 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x283 DUP2 PUSH2 0x969 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A5 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x31A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2CF DUP7 DUP7 PUSH2 0x353 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2DF DUP3 DUP3 PUSH2 0x3A0 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x45D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x550 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x2FE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x38D JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x37F DUP9 DUP3 DUP6 DUP6 PUSH2 0x5FB JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x399 JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3B4 JUMPI PUSH2 0x3B4 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3BD JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3D1 JUMPI PUSH2 0x3D1 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x403 JUMPI PUSH2 0x403 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x438 JUMPI PUSH2 0x438 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x459 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x546 JUMPI PUSH1 0x0 PUSH2 0x481 PUSH1 0x1 DUP4 PUSH2 0x998 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x495 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x998 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 EQ PUSH2 0x4FA JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4B5 JUMPI PUSH2 0x4B5 PUSH2 0x953 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D8 JUMPI PUSH2 0x4D8 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x50B JUMPI PUSH2 0x50B PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x597 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x15B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x5DB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x636 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x68A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6B6 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x6C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x709 JUMPI PUSH2 0x709 PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x722 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x73C JUMPI PUSH2 0x73C PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x74F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x6E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7BE DUP6 DUP3 DUP7 ADD PUSH2 0x711 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x83D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0x6CA JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x872 DUP6 DUP3 ADD PUSH2 0x6E0 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP11 DUP5 GT ISZERO PUSH2 0x88C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x8C8 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0x8AA JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x8B8 DUP13 DUP10 DUP4 DUP11 ADD ADD PUSH2 0x711 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0x892 JUMP JUMPDEST DUP1 SWAP8 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x91A JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x97B JUMPI PUSH2 0x97B PUSH2 0x926 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PC CALL 0xEF GT DUP13 DUP15 DUP9 CALLVALUE SWAP5 0xFC DUP5 SLT 0xFB NUMBER TIMESTAMP SWAP16 DUP12 PUSH9 0x4FCB90D8F0F31A281D SWAP11 0xC0 0xCD CALLER PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"276:2015:19:-:0;;;481:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;537:6;532:97;553:10;:17;549:1;:21;532:97;;;591:27;604:10;615:1;604:13;;;;;;;;:::i;:::-;;;;;;;591:12;;;:27;;:::i;:::-;-1:-1:-1;572:3:19;;;;:::i;:::-;;;;532:97;;;;481:154;276:2015;;670:103;722:4;745:21;722:4;761;745:15;:21::i;:::-;738:28;670:103;-1:-1:-1;;670:103:19:o;8316:150:13:-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:13;;8409:4;:50::i;:::-;8402:57;8316:150;-1:-1:-1;;;8316:150:13:o;2241:406::-;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:13;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:13;2618:12;;14:127:21;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:177;225:13;;-1:-1:-1;;;;;267:31:21;;257:42;;247:70;;313:1;310;303:12;247:70;146:177;;;:::o;328:1129::-;423:6;454:2;497;485:9;476:7;472:23;468:32;465:52;;;513:1;510;503:12;465:52;540:16;;-1:-1:-1;;;;;605:14:21;;;602:34;;;632:1;629;622:12;602:34;670:6;659:9;655:22;645:32;;715:7;708:4;704:2;700:13;696:27;686:55;;737:1;734;727:12;686:55;766:2;760:9;788:2;784;781:10;778:36;;;794:18;;:::i;:::-;840:2;837:1;833:10;872:2;866:9;935:2;931:7;926:2;922;918:11;914:25;906:6;902:38;990:6;978:10;975:22;970:2;958:10;955:18;952:46;949:72;;;1001:18;;:::i;:::-;1037:2;1030:22;1087:18;;;1121:15;;;;-1:-1:-1;1163:11:21;;;1159:20;;;1191:19;;;1188:39;;;1223:1;1220;1213:12;1188:39;1247:11;;;;1267:159;1283:6;1278:3;1275:15;1267:159;;;1349:34;1379:3;1349:34;:::i;:::-;1337:47;;1300:12;;;;1404;;;;1267:159;;;1445:6;328:1129;-1:-1:-1;;;;;;;;328:1129:21:o;1462:127::-;1523:10;1518:3;1514:20;1511:1;1504:31;1554:4;1551:1;1544:15;1578:4;1575:1;1568:15;1594:232;1633:3;1654:17;;;1651:140;;1713:10;1708:3;1704:20;1701:1;1694:31;1748:4;1745:1;1738:15;1776:4;1773:1;1766:15;1651:140;-1:-1:-1;1818:1:21;1807:13;;1594:232::o;:::-;276:2015:19;;;;;;"},"deployedBytecode":{"functionDebugData":{"@_add_3069":{"entryPoint":1360,"id":3069,"parameterSlots":2,"returnSlots":1},"@_contains_3172":{"entryPoint":null,"id":3172,"parameterSlots":2,"returnSlots":1},"@_length_3186":{"entryPoint":null,"id":3186,"parameterSlots":1,"returnSlots":1},"@_remove_3153":{"entryPoint":1117,"id":3153,"parameterSlots":2,"returnSlots":1},"@_throwError_1782":{"entryPoint":928,"id":1782,"parameterSlots":2,"returnSlots":0},"@_values_3217":{"entryPoint":1439,"id":3217,"parameterSlots":1,"returnSlots":1},"@addValidator_4628":{"entryPoint":404,"id":4628,"parameterSlots":1,"returnSlots":1},"@add_3369":{"entryPoint":773,"id":3369,"parameterSlots":2,"returnSlots":1},"@contains_3423":{"entryPoint":817,"id":3423,"parameterSlots":2,"returnSlots":1},"@getValidators_4652":{"entryPoint":662,"id":4652,"parameterSlots":0,"returnSlots":1},"@hasSupermajority_4753":{"entryPoint":353,"id":4753,"parameterSlots":1,"returnSlots":1},"@isValidator_4665":{"entryPoint":691,"id":4665,"parameterSlots":1,"returnSlots":1},"@length_3438":{"entryPoint":807,"id":3438,"parameterSlots":1,"returnSlots":1},"@recover_1539":{"entryPoint":703,"id":1539,"parameterSlots":2,"returnSlots":1},"@removeValidator_4641":{"entryPoint":392,"id":4641,"parameterSlots":1,"returnSlots":1},"@remove_3396":{"entryPoint":745,"id":3396,"parameterSlots":2,"returnSlots":1},"@tryRecover_1509":{"entryPoint":851,"id":1509,"parameterSlots":2,"returnSlots":3},"@tryRecover_1697":{"entryPoint":1531,"id":1697,"parameterSlots":4,"returnSlots":3},"@validateSignature_4774":{"entryPoint":319,"id":4774,"parameterSlots":2,"returnSlots":1},"@validateUniqueSignatures_4736":{"entryPoint":416,"id":4736,"parameterSlots":2,"returnSlots":1},"@validatorsCount_4675":{"entryPoint":679,"id":4675,"parameterSlots":0,"returnSlots":1},"@values_3495":{"entryPoint":794,"id":3495,"parameterSlots":1,"returnSlots":1},"abi_decode_bytes":{"entryPoint":1809,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_address":{"entryPoint":2017,"id":null,"parameterSlots":2,"returnSlots":1},"abi_decode_tuple_t_bytes32t_array$_t_bytes_memory_ptr_$dyn_memory_ptr":{"entryPoint":2058,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_bytes32t_bytes_memory_ptr":{"entryPoint":1921,"id":null,"parameterSlots":2,"returnSlots":2},"abi_decode_tuple_t_uint256":{"entryPoint":1992,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed":{"entryPoint":2265,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":5,"returnSlots":1},"abi_encode_tuple_t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42__to_t_string_memory_ptr__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":1,"returnSlots":1},"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed":{"entryPoint":null,"id":null,"parameterSlots":2,"returnSlots":1},"allocate_memory":{"entryPoint":1760,"id":null,"parameterSlots":1,"returnSlots":1},"checked_mul_t_uint256":{"entryPoint":2364,"id":null,"parameterSlots":2,"returnSlots":1},"checked_sub_t_uint256":{"entryPoint":2456,"id":null,"parameterSlots":2,"returnSlots":1},"increment_t_uint256":{"entryPoint":2409,"id":null,"parameterSlots":1,"returnSlots":1},"panic_error_0x11":{"entryPoint":2342,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x21":{"entryPoint":2434,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x31":{"entryPoint":2475,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x32":{"entryPoint":2387,"id":null,"parameterSlots":0,"returnSlots":0},"panic_error_0x41":{"entryPoint":1738,"id":null,"parameterSlots":0,"returnSlots":0}},"generatedSources":[{"ast":{"nodeType":"YulBlock","src":"0:6079:21","statements":[{"nodeType":"YulBlock","src":"6:3:21","statements":[]},{"body":{"nodeType":"YulBlock","src":"46:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"63:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"70:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"75:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"66:3:21"},"nodeType":"YulFunctionCall","src":"66:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"56:6:21"},"nodeType":"YulFunctionCall","src":"56:31:21"},"nodeType":"YulExpressionStatement","src":"56:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"103:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"106:4:21","type":"","value":"0x41"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"96:6:21"},"nodeType":"YulFunctionCall","src":"96:15:21"},"nodeType":"YulExpressionStatement","src":"96:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"127:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"130:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"120:6:21"},"nodeType":"YulFunctionCall","src":"120:15:21"},"nodeType":"YulExpressionStatement","src":"120:15:21"}]},"name":"panic_error_0x41","nodeType":"YulFunctionDefinition","src":"14:127:21"},{"body":{"nodeType":"YulBlock","src":"191:230:21","statements":[{"nodeType":"YulAssignment","src":"201:19:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"217:2:21","type":"","value":"64"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"211:5:21"},"nodeType":"YulFunctionCall","src":"211:9:21"},"variableNames":[{"name":"memPtr","nodeType":"YulIdentifier","src":"201:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"229:58:21","value":{"arguments":[{"name":"memPtr","nodeType":"YulIdentifier","src":"251:6:21"},{"arguments":[{"arguments":[{"name":"size","nodeType":"YulIdentifier","src":"267:4:21"},{"kind":"number","nodeType":"YulLiteral","src":"273:2:21","type":"","value":"31"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"263:3:21"},"nodeType":"YulFunctionCall","src":"263:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"282:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"278:3:21"},"nodeType":"YulFunctionCall","src":"278:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"259:3:21"},"nodeType":"YulFunctionCall","src":"259:27:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"247:3:21"},"nodeType":"YulFunctionCall","src":"247:40:21"},"variables":[{"name":"newFreePtr","nodeType":"YulTypedName","src":"233:10:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"362:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"364:16:21"},"nodeType":"YulFunctionCall","src":"364:18:21"},"nodeType":"YulExpressionStatement","src":"364:18:21"}]},"condition":{"arguments":[{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"305:10:21"},{"kind":"number","nodeType":"YulLiteral","src":"317:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"302:2:21"},"nodeType":"YulFunctionCall","src":"302:34:21"},{"arguments":[{"name":"newFreePtr","nodeType":"YulIdentifier","src":"341:10:21"},{"name":"memPtr","nodeType":"YulIdentifier","src":"353:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"338:2:21"},"nodeType":"YulFunctionCall","src":"338:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"299:2:21"},"nodeType":"YulFunctionCall","src":"299:62:21"},"nodeType":"YulIf","src":"296:88:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"400:2:21","type":"","value":"64"},{"name":"newFreePtr","nodeType":"YulIdentifier","src":"404:10:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"393:6:21"},"nodeType":"YulFunctionCall","src":"393:22:21"},"nodeType":"YulExpressionStatement","src":"393:22:21"}]},"name":"allocate_memory","nodeType":"YulFunctionDefinition","parameters":[{"name":"size","nodeType":"YulTypedName","src":"171:4:21","type":""}],"returnVariables":[{"name":"memPtr","nodeType":"YulTypedName","src":"180:6:21","type":""}],"src":"146:275:21"},{"body":{"nodeType":"YulBlock","src":"478:478:21","statements":[{"body":{"nodeType":"YulBlock","src":"527:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"536:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"539:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"529:6:21"},"nodeType":"YulFunctionCall","src":"529:12:21"},"nodeType":"YulExpressionStatement","src":"529:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"506:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"514:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"502:3:21"},"nodeType":"YulFunctionCall","src":"502:17:21"},{"name":"end","nodeType":"YulIdentifier","src":"521:3:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"498:3:21"},"nodeType":"YulFunctionCall","src":"498:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"491:6:21"},"nodeType":"YulFunctionCall","src":"491:35:21"},"nodeType":"YulIf","src":"488:55:21"},{"nodeType":"YulVariableDeclaration","src":"552:30:21","value":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"575:6:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"562:12:21"},"nodeType":"YulFunctionCall","src":"562:20:21"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"556:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"621:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"623:16:21"},"nodeType":"YulFunctionCall","src":"623:18:21"},"nodeType":"YulExpressionStatement","src":"623:18:21"}]},"condition":{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"597:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"601:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"594:2:21"},"nodeType":"YulFunctionCall","src":"594:26:21"},"nodeType":"YulIf","src":"591:52:21"},{"nodeType":"YulVariableDeclaration","src":"652:70:21","value":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"name":"_1","nodeType":"YulIdentifier","src":"695:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"699:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"691:3:21"},"nodeType":"YulFunctionCall","src":"691:13:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"710:2:21","type":"","value":"31"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"706:3:21"},"nodeType":"YulFunctionCall","src":"706:7:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"687:3:21"},"nodeType":"YulFunctionCall","src":"687:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"716:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"683:3:21"},"nodeType":"YulFunctionCall","src":"683:38:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"667:15:21"},"nodeType":"YulFunctionCall","src":"667:55:21"},"variables":[{"name":"array_1","nodeType":"YulTypedName","src":"656:7:21","type":""}]},{"expression":{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"738:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"747:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"731:6:21"},"nodeType":"YulFunctionCall","src":"731:19:21"},"nodeType":"YulExpressionStatement","src":"731:19:21"},{"body":{"nodeType":"YulBlock","src":"798:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"807:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"810:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"800:6:21"},"nodeType":"YulFunctionCall","src":"800:12:21"},"nodeType":"YulExpressionStatement","src":"800:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"773:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"781:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"769:3:21"},"nodeType":"YulFunctionCall","src":"769:15:21"},{"kind":"number","nodeType":"YulLiteral","src":"786:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"765:3:21"},"nodeType":"YulFunctionCall","src":"765:26:21"},{"name":"end","nodeType":"YulIdentifier","src":"793:3:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"762:2:21"},"nodeType":"YulFunctionCall","src":"762:35:21"},"nodeType":"YulIf","src":"759:55:21"},{"expression":{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"840:7:21"},{"kind":"number","nodeType":"YulLiteral","src":"849:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"836:3:21"},"nodeType":"YulFunctionCall","src":"836:18:21"},{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"860:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"868:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"856:3:21"},"nodeType":"YulFunctionCall","src":"856:17:21"},{"name":"_1","nodeType":"YulIdentifier","src":"875:2:21"}],"functionName":{"name":"calldatacopy","nodeType":"YulIdentifier","src":"823:12:21"},"nodeType":"YulFunctionCall","src":"823:55:21"},"nodeType":"YulExpressionStatement","src":"823:55:21"},{"expression":{"arguments":[{"arguments":[{"arguments":[{"name":"array_1","nodeType":"YulIdentifier","src":"902:7:21"},{"name":"_1","nodeType":"YulIdentifier","src":"911:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"898:3:21"},"nodeType":"YulFunctionCall","src":"898:16:21"},{"kind":"number","nodeType":"YulLiteral","src":"916:4:21","type":"","value":"0x20"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"894:3:21"},"nodeType":"YulFunctionCall","src":"894:27:21"},{"kind":"number","nodeType":"YulLiteral","src":"923:1:21","type":"","value":"0"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"887:6:21"},"nodeType":"YulFunctionCall","src":"887:38:21"},"nodeType":"YulExpressionStatement","src":"887:38:21"},{"nodeType":"YulAssignment","src":"934:16:21","value":{"name":"array_1","nodeType":"YulIdentifier","src":"943:7:21"},"variableNames":[{"name":"array","nodeType":"YulIdentifier","src":"934:5:21"}]}]},"name":"abi_decode_bytes","nodeType":"YulFunctionDefinition","parameters":[{"name":"offset","nodeType":"YulTypedName","src":"452:6:21","type":""},{"name":"end","nodeType":"YulTypedName","src":"460:3:21","type":""}],"returnVariables":[{"name":"array","nodeType":"YulTypedName","src":"468:5:21","type":""}],"src":"426:530:21"},{"body":{"nodeType":"YulBlock","src":"1057:292:21","statements":[{"body":{"nodeType":"YulBlock","src":"1103:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1112:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1115:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1105:6:21"},"nodeType":"YulFunctionCall","src":"1105:12:21"},"nodeType":"YulExpressionStatement","src":"1105:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1078:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1087:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1074:3:21"},"nodeType":"YulFunctionCall","src":"1074:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1099:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1070:3:21"},"nodeType":"YulFunctionCall","src":"1070:32:21"},"nodeType":"YulIf","src":"1067:52:21"},{"nodeType":"YulAssignment","src":"1128:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1151:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1138:12:21"},"nodeType":"YulFunctionCall","src":"1138:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1128:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"1170:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1201:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1212:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1197:3:21"},"nodeType":"YulFunctionCall","src":"1197:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1184:12:21"},"nodeType":"YulFunctionCall","src":"1184:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"1174:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1259:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1268:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1271:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1261:6:21"},"nodeType":"YulFunctionCall","src":"1261:12:21"},"nodeType":"YulExpressionStatement","src":"1261:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"1231:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"1239:18:21","type":"","value":"0xffffffffffffffff"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"1228:2:21"},"nodeType":"YulFunctionCall","src":"1228:30:21"},"nodeType":"YulIf","src":"1225:50:21"},{"nodeType":"YulAssignment","src":"1284:59:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1315:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"1326:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1311:3:21"},"nodeType":"YulFunctionCall","src":"1311:22:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"1335:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"1294:16:21"},"nodeType":"YulFunctionCall","src":"1294:49:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"1284:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_bytes_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1015:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1026:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1038:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"1046:6:21","type":""}],"src":"961:388:21"},{"body":{"nodeType":"YulBlock","src":"1449:92:21","statements":[{"nodeType":"YulAssignment","src":"1459:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1471:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"1482:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"1467:3:21"},"nodeType":"YulFunctionCall","src":"1467:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"1459:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1501:9:21"},{"arguments":[{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"1526:6:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1519:6:21"},"nodeType":"YulFunctionCall","src":"1519:14:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1512:6:21"},"nodeType":"YulFunctionCall","src":"1512:22:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"1494:6:21"},"nodeType":"YulFunctionCall","src":"1494:41:21"},"nodeType":"YulExpressionStatement","src":"1494:41:21"}]},"name":"abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1418:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"1429:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"1440:4:21","type":""}],"src":"1354:187:21"},{"body":{"nodeType":"YulBlock","src":"1616:110:21","statements":[{"body":{"nodeType":"YulBlock","src":"1662:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1671:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1674:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1664:6:21"},"nodeType":"YulFunctionCall","src":"1664:12:21"},"nodeType":"YulExpressionStatement","src":"1664:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1637:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1646:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1633:3:21"},"nodeType":"YulFunctionCall","src":"1633:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1658:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1629:3:21"},"nodeType":"YulFunctionCall","src":"1629:32:21"},"nodeType":"YulIf","src":"1626:52:21"},{"nodeType":"YulAssignment","src":"1687:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1710:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1697:12:21"},"nodeType":"YulFunctionCall","src":"1697:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1687:6:21"}]}]},"name":"abi_decode_tuple_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1582:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1593:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1605:6:21","type":""}],"src":"1546:180:21"},{"body":{"nodeType":"YulBlock","src":"1801:216:21","statements":[{"body":{"nodeType":"YulBlock","src":"1847:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1856:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1859:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1849:6:21"},"nodeType":"YulFunctionCall","src":"1849:12:21"},"nodeType":"YulExpressionStatement","src":"1849:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"1822:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"1831:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1818:3:21"},"nodeType":"YulFunctionCall","src":"1818:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"1843:2:21","type":"","value":"32"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"1814:3:21"},"nodeType":"YulFunctionCall","src":"1814:32:21"},"nodeType":"YulIf","src":"1811:52:21"},{"nodeType":"YulVariableDeclaration","src":"1872:36:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"1898:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"1885:12:21"},"nodeType":"YulFunctionCall","src":"1885:23:21"},"variables":[{"name":"value","nodeType":"YulTypedName","src":"1876:5:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"1971:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1980:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"1983:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"1973:6:21"},"nodeType":"YulFunctionCall","src":"1973:12:21"},"nodeType":"YulExpressionStatement","src":"1973:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1930:5:21"},{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"1941:5:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"1956:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"1961:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"1952:3:21"},"nodeType":"YulFunctionCall","src":"1952:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"1965:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"1948:3:21"},"nodeType":"YulFunctionCall","src":"1948:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"1937:3:21"},"nodeType":"YulFunctionCall","src":"1937:31:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"1927:2:21"},"nodeType":"YulFunctionCall","src":"1927:42:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"1920:6:21"},"nodeType":"YulFunctionCall","src":"1920:50:21"},"nodeType":"YulIf","src":"1917:70:21"},{"nodeType":"YulAssignment","src":"1996:15:21","value":{"name":"value","nodeType":"YulIdentifier","src":"2006:5:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"1996:6:21"}]}]},"name":"abi_decode_tuple_t_address","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"1767:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"1778:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"1790:6:21","type":""}],"src":"1731:286:21"},{"body":{"nodeType":"YulBlock","src":"2143:1112:21","statements":[{"body":{"nodeType":"YulBlock","src":"2189:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2198:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2201:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2191:6:21"},"nodeType":"YulFunctionCall","src":"2191:12:21"},"nodeType":"YulExpressionStatement","src":"2191:12:21"}]},"condition":{"arguments":[{"arguments":[{"name":"dataEnd","nodeType":"YulIdentifier","src":"2164:7:21"},{"name":"headStart","nodeType":"YulIdentifier","src":"2173:9:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"2160:3:21"},"nodeType":"YulFunctionCall","src":"2160:23:21"},{"kind":"number","nodeType":"YulLiteral","src":"2185:2:21","type":"","value":"64"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2156:3:21"},"nodeType":"YulFunctionCall","src":"2156:32:21"},"nodeType":"YulIf","src":"2153:52:21"},{"nodeType":"YulAssignment","src":"2214:33:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2237:9:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2224:12:21"},"nodeType":"YulFunctionCall","src":"2224:23:21"},"variableNames":[{"name":"value0","nodeType":"YulIdentifier","src":"2214:6:21"}]},{"nodeType":"YulVariableDeclaration","src":"2256:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2266:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"2260:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2277:46:21","value":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2308:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2319:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2304:3:21"},"nodeType":"YulFunctionCall","src":"2304:18:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2291:12:21"},"nodeType":"YulFunctionCall","src":"2291:32:21"},"variables":[{"name":"offset","nodeType":"YulTypedName","src":"2281:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2332:28:21","value":{"kind":"number","nodeType":"YulLiteral","src":"2342:18:21","type":"","value":"0xffffffffffffffff"},"variables":[{"name":"_2","nodeType":"YulTypedName","src":"2336:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2387:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2396:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2399:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2389:6:21"},"nodeType":"YulFunctionCall","src":"2389:12:21"},"nodeType":"YulExpressionStatement","src":"2389:12:21"}]},"condition":{"arguments":[{"name":"offset","nodeType":"YulIdentifier","src":"2375:6:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2383:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2372:2:21"},"nodeType":"YulFunctionCall","src":"2372:14:21"},"nodeType":"YulIf","src":"2369:34:21"},{"nodeType":"YulVariableDeclaration","src":"2412:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"2426:9:21"},{"name":"offset","nodeType":"YulIdentifier","src":"2437:6:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2422:3:21"},"nodeType":"YulFunctionCall","src":"2422:22:21"},"variables":[{"name":"_3","nodeType":"YulTypedName","src":"2416:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2492:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2501:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2504:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2494:6:21"},"nodeType":"YulFunctionCall","src":"2494:12:21"},"nodeType":"YulExpressionStatement","src":"2494:12:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2471:2:21"},{"kind":"number","nodeType":"YulLiteral","src":"2475:4:21","type":"","value":"0x1f"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2467:3:21"},"nodeType":"YulFunctionCall","src":"2467:13:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2482:7:21"}],"functionName":{"name":"slt","nodeType":"YulIdentifier","src":"2463:3:21"},"nodeType":"YulFunctionCall","src":"2463:27:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"2456:6:21"},"nodeType":"YulFunctionCall","src":"2456:35:21"},"nodeType":"YulIf","src":"2453:55:21"},{"nodeType":"YulVariableDeclaration","src":"2517:26:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2540:2:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2527:12:21"},"nodeType":"YulFunctionCall","src":"2527:16:21"},"variables":[{"name":"_4","nodeType":"YulTypedName","src":"2521:2:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2566:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x41","nodeType":"YulIdentifier","src":"2568:16:21"},"nodeType":"YulFunctionCall","src":"2568:18:21"},"nodeType":"YulExpressionStatement","src":"2568:18:21"}]},"condition":{"arguments":[{"name":"_4","nodeType":"YulIdentifier","src":"2558:2:21"},{"name":"_2","nodeType":"YulIdentifier","src":"2562:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2555:2:21"},"nodeType":"YulFunctionCall","src":"2555:10:21"},"nodeType":"YulIf","src":"2552:36:21"},{"nodeType":"YulVariableDeclaration","src":"2597:20:21","value":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2611:1:21","type":"","value":"5"},{"name":"_4","nodeType":"YulIdentifier","src":"2614:2:21"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2607:3:21"},"nodeType":"YulFunctionCall","src":"2607:10:21"},"variables":[{"name":"_5","nodeType":"YulTypedName","src":"2601:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2626:39:21","value":{"arguments":[{"arguments":[{"name":"_5","nodeType":"YulIdentifier","src":"2657:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2661:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2653:3:21"},"nodeType":"YulFunctionCall","src":"2653:11:21"}],"functionName":{"name":"allocate_memory","nodeType":"YulIdentifier","src":"2637:15:21"},"nodeType":"YulFunctionCall","src":"2637:28:21"},"variables":[{"name":"dst","nodeType":"YulTypedName","src":"2630:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"2674:16:21","value":{"name":"dst","nodeType":"YulIdentifier","src":"2687:3:21"},"variables":[{"name":"dst_1","nodeType":"YulTypedName","src":"2678:5:21","type":""}]},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2706:3:21"},{"name":"_4","nodeType":"YulIdentifier","src":"2711:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"2699:6:21"},"nodeType":"YulFunctionCall","src":"2699:15:21"},"nodeType":"YulExpressionStatement","src":"2699:15:21"},{"nodeType":"YulAssignment","src":"2723:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"2734:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2739:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2730:3:21"},"nodeType":"YulFunctionCall","src":"2730:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"2723:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"2751:34:21","value":{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2773:2:21"},{"name":"_5","nodeType":"YulIdentifier","src":"2777:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2769:3:21"},"nodeType":"YulFunctionCall","src":"2769:11:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2782:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2765:3:21"},"nodeType":"YulFunctionCall","src":"2765:20:21"},"variables":[{"name":"srcEnd","nodeType":"YulTypedName","src":"2755:6:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2817:16:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2826:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"2829:1:21","type":"","value":"0"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"2819:6:21"},"nodeType":"YulFunctionCall","src":"2819:12:21"},"nodeType":"YulExpressionStatement","src":"2819:12:21"}]},"condition":{"arguments":[{"name":"srcEnd","nodeType":"YulIdentifier","src":"2800:6:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"2808:7:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2797:2:21"},"nodeType":"YulFunctionCall","src":"2797:19:21"},"nodeType":"YulIf","src":"2794:39:21"},{"nodeType":"YulVariableDeclaration","src":"2842:22:21","value":{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"2857:2:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2861:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2853:3:21"},"nodeType":"YulFunctionCall","src":"2853:11:21"},"variables":[{"name":"src","nodeType":"YulTypedName","src":"2846:3:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"2929:296:21","statements":[{"nodeType":"YulVariableDeclaration","src":"2943:36:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2975:3:21"}],"functionName":{"name":"calldataload","nodeType":"YulIdentifier","src":"2962:12:21"},"nodeType":"YulFunctionCall","src":"2962:17:21"},"variables":[{"name":"innerOffset","nodeType":"YulTypedName","src":"2947:11:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3027:74:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3045:11:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3055:1:21","type":"","value":"0"},"variables":[{"name":"_6","nodeType":"YulTypedName","src":"3049:2:21","type":""}]},{"expression":{"arguments":[{"name":"_6","nodeType":"YulIdentifier","src":"3080:2:21"},{"name":"_6","nodeType":"YulIdentifier","src":"3084:2:21"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"3073:6:21"},"nodeType":"YulFunctionCall","src":"3073:14:21"},"nodeType":"YulExpressionStatement","src":"3073:14:21"}]},"condition":{"arguments":[{"name":"innerOffset","nodeType":"YulIdentifier","src":"2998:11:21"},{"name":"_2","nodeType":"YulIdentifier","src":"3011:2:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"2995:2:21"},"nodeType":"YulFunctionCall","src":"2995:19:21"},"nodeType":"YulIf","src":"2992:109:21"},{"expression":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3121:3:21"},{"arguments":[{"arguments":[{"arguments":[{"name":"_3","nodeType":"YulIdentifier","src":"3151:2:21"},{"name":"innerOffset","nodeType":"YulIdentifier","src":"3155:11:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3147:3:21"},"nodeType":"YulFunctionCall","src":"3147:20:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3169:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3143:3:21"},"nodeType":"YulFunctionCall","src":"3143:29:21"},{"name":"dataEnd","nodeType":"YulIdentifier","src":"3174:7:21"}],"functionName":{"name":"abi_decode_bytes","nodeType":"YulIdentifier","src":"3126:16:21"},"nodeType":"YulFunctionCall","src":"3126:56:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3114:6:21"},"nodeType":"YulFunctionCall","src":"3114:69:21"},"nodeType":"YulExpressionStatement","src":"3114:69:21"},{"nodeType":"YulAssignment","src":"3196:19:21","value":{"arguments":[{"name":"dst","nodeType":"YulIdentifier","src":"3207:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3212:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3203:3:21"},"nodeType":"YulFunctionCall","src":"3203:12:21"},"variableNames":[{"name":"dst","nodeType":"YulIdentifier","src":"3196:3:21"}]}]},"condition":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2884:3:21"},{"name":"srcEnd","nodeType":"YulIdentifier","src":"2889:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"2881:2:21"},"nodeType":"YulFunctionCall","src":"2881:15:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"2897:23:21","statements":[{"nodeType":"YulAssignment","src":"2899:19:21","value":{"arguments":[{"name":"src","nodeType":"YulIdentifier","src":"2910:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"2915:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"2906:3:21"},"nodeType":"YulFunctionCall","src":"2906:12:21"},"variableNames":[{"name":"src","nodeType":"YulIdentifier","src":"2899:3:21"}]}]},"pre":{"nodeType":"YulBlock","src":"2877:3:21","statements":[]},"src":"2873:352:21"},{"nodeType":"YulAssignment","src":"3234:15:21","value":{"name":"dst_1","nodeType":"YulIdentifier","src":"3244:5:21"},"variableNames":[{"name":"value1","nodeType":"YulIdentifier","src":"3234:6:21"}]}]},"name":"abi_decode_tuple_t_bytes32t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"2101:9:21","type":""},{"name":"dataEnd","nodeType":"YulTypedName","src":"2112:7:21","type":""}],"returnVariables":[{"name":"value0","nodeType":"YulTypedName","src":"2124:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"2132:6:21","type":""}],"src":"2022:1233:21"},{"body":{"nodeType":"YulBlock","src":"3411:507:21","statements":[{"nodeType":"YulVariableDeclaration","src":"3421:12:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3431:2:21","type":"","value":"32"},"variables":[{"name":"_1","nodeType":"YulTypedName","src":"3425:2:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3442:32:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3460:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3471:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3456:3:21"},"nodeType":"YulFunctionCall","src":"3456:18:21"},"variables":[{"name":"tail_1","nodeType":"YulTypedName","src":"3446:6:21","type":""}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3490:9:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3501:2:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3483:6:21"},"nodeType":"YulFunctionCall","src":"3483:21:21"},"nodeType":"YulExpressionStatement","src":"3483:21:21"},{"nodeType":"YulVariableDeclaration","src":"3513:17:21","value":{"name":"tail_1","nodeType":"YulIdentifier","src":"3524:6:21"},"variables":[{"name":"pos","nodeType":"YulTypedName","src":"3517:3:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3539:27:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3559:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3553:5:21"},"nodeType":"YulFunctionCall","src":"3553:13:21"},"variables":[{"name":"length","nodeType":"YulTypedName","src":"3543:6:21","type":""}]},{"expression":{"arguments":[{"name":"tail_1","nodeType":"YulIdentifier","src":"3582:6:21"},{"name":"length","nodeType":"YulIdentifier","src":"3590:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3575:6:21"},"nodeType":"YulFunctionCall","src":"3575:22:21"},"nodeType":"YulExpressionStatement","src":"3575:22:21"},{"nodeType":"YulAssignment","src":"3606:25:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"3617:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"3628:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3613:3:21"},"nodeType":"YulFunctionCall","src":"3613:18:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3606:3:21"}]},{"nodeType":"YulVariableDeclaration","src":"3640:29:21","value":{"arguments":[{"name":"value0","nodeType":"YulIdentifier","src":"3658:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3666:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3654:3:21"},"nodeType":"YulFunctionCall","src":"3654:15:21"},"variables":[{"name":"srcPtr","nodeType":"YulTypedName","src":"3644:6:21","type":""}]},{"nodeType":"YulVariableDeclaration","src":"3678:10:21","value":{"kind":"number","nodeType":"YulLiteral","src":"3687:1:21","type":"","value":"0"},"variables":[{"name":"i","nodeType":"YulTypedName","src":"3682:1:21","type":""}]},{"body":{"nodeType":"YulBlock","src":"3746:146:21","statements":[{"expression":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3767:3:21"},{"arguments":[{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3782:6:21"}],"functionName":{"name":"mload","nodeType":"YulIdentifier","src":"3776:5:21"},"nodeType":"YulFunctionCall","src":"3776:13:21"},{"arguments":[{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"3799:3:21","type":"","value":"160"},{"kind":"number","nodeType":"YulLiteral","src":"3804:1:21","type":"","value":"1"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"3795:3:21"},"nodeType":"YulFunctionCall","src":"3795:11:21"},{"kind":"number","nodeType":"YulLiteral","src":"3808:1:21","type":"","value":"1"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"3791:3:21"},"nodeType":"YulFunctionCall","src":"3791:19:21"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"3772:3:21"},"nodeType":"YulFunctionCall","src":"3772:39:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"3760:6:21"},"nodeType":"YulFunctionCall","src":"3760:52:21"},"nodeType":"YulExpressionStatement","src":"3760:52:21"},{"nodeType":"YulAssignment","src":"3825:19:21","value":{"arguments":[{"name":"pos","nodeType":"YulIdentifier","src":"3836:3:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3841:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3832:3:21"},"nodeType":"YulFunctionCall","src":"3832:12:21"},"variableNames":[{"name":"pos","nodeType":"YulIdentifier","src":"3825:3:21"}]},{"nodeType":"YulAssignment","src":"3857:25:21","value":{"arguments":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3871:6:21"},{"name":"_1","nodeType":"YulIdentifier","src":"3879:2:21"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3867:3:21"},"nodeType":"YulFunctionCall","src":"3867:15:21"},"variableNames":[{"name":"srcPtr","nodeType":"YulIdentifier","src":"3857:6:21"}]}]},"condition":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3708:1:21"},{"name":"length","nodeType":"YulIdentifier","src":"3711:6:21"}],"functionName":{"name":"lt","nodeType":"YulIdentifier","src":"3705:2:21"},"nodeType":"YulFunctionCall","src":"3705:13:21"},"nodeType":"YulForLoop","post":{"nodeType":"YulBlock","src":"3719:18:21","statements":[{"nodeType":"YulAssignment","src":"3721:14:21","value":{"arguments":[{"name":"i","nodeType":"YulIdentifier","src":"3730:1:21"},{"kind":"number","nodeType":"YulLiteral","src":"3733:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"3726:3:21"},"nodeType":"YulFunctionCall","src":"3726:9:21"},"variableNames":[{"name":"i","nodeType":"YulIdentifier","src":"3721:1:21"}]}]},"pre":{"nodeType":"YulBlock","src":"3701:3:21","statements":[]},"src":"3697:195:21"},{"nodeType":"YulAssignment","src":"3901:11:21","value":{"name":"pos","nodeType":"YulIdentifier","src":"3909:3:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"3901:4:21"}]}]},"name":"abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3380:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"3391:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"3402:4:21","type":""}],"src":"3260:658:21"},{"body":{"nodeType":"YulBlock","src":"4024:76:21","statements":[{"nodeType":"YulAssignment","src":"4034:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4046:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4057:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4042:3:21"},"nodeType":"YulFunctionCall","src":"4042:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4034:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4076:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"4087:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4069:6:21"},"nodeType":"YulFunctionCall","src":"4069:25:21"},"nodeType":"YulExpressionStatement","src":"4069:25:21"}]},"name":"abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"3993:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"4004:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4015:4:21","type":""}],"src":"3923:177:21"},{"body":{"nodeType":"YulBlock","src":"4137:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4154:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4161:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4166:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4157:3:21"},"nodeType":"YulFunctionCall","src":"4157:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4147:6:21"},"nodeType":"YulFunctionCall","src":"4147:31:21"},"nodeType":"YulExpressionStatement","src":"4147:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4194:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4197:4:21","type":"","value":"0x11"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4187:6:21"},"nodeType":"YulFunctionCall","src":"4187:15:21"},"nodeType":"YulExpressionStatement","src":"4187:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4218:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4221:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4211:6:21"},"nodeType":"YulFunctionCall","src":"4211:15:21"},"nodeType":"YulExpressionStatement","src":"4211:15:21"}]},"name":"panic_error_0x11","nodeType":"YulFunctionDefinition","src":"4105:127:21"},{"body":{"nodeType":"YulBlock","src":"4289:116:21","statements":[{"nodeType":"YulAssignment","src":"4299:20:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4314:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"4317:1:21"}],"functionName":{"name":"mul","nodeType":"YulIdentifier","src":"4310:3:21"},"nodeType":"YulFunctionCall","src":"4310:9:21"},"variableNames":[{"name":"product","nodeType":"YulIdentifier","src":"4299:7:21"}]},{"body":{"nodeType":"YulBlock","src":"4377:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"4379:16:21"},"nodeType":"YulFunctionCall","src":"4379:18:21"},"nodeType":"YulExpressionStatement","src":"4379:18:21"}]},"condition":{"arguments":[{"arguments":[{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"4348:1:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4341:6:21"},"nodeType":"YulFunctionCall","src":"4341:9:21"},{"arguments":[{"name":"y","nodeType":"YulIdentifier","src":"4355:1:21"},{"arguments":[{"name":"product","nodeType":"YulIdentifier","src":"4362:7:21"},{"name":"x","nodeType":"YulIdentifier","src":"4371:1:21"}],"functionName":{"name":"div","nodeType":"YulIdentifier","src":"4358:3:21"},"nodeType":"YulFunctionCall","src":"4358:15:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"4352:2:21"},"nodeType":"YulFunctionCall","src":"4352:22:21"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"4338:2:21"},"nodeType":"YulFunctionCall","src":"4338:37:21"}],"functionName":{"name":"iszero","nodeType":"YulIdentifier","src":"4331:6:21"},"nodeType":"YulFunctionCall","src":"4331:45:21"},"nodeType":"YulIf","src":"4328:71:21"}]},"name":"checked_mul_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"4268:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"4271:1:21","type":""}],"returnVariables":[{"name":"product","nodeType":"YulTypedName","src":"4277:7:21","type":""}],"src":"4237:168:21"},{"body":{"nodeType":"YulBlock","src":"4442:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4459:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4466:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"4471:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"4462:3:21"},"nodeType":"YulFunctionCall","src":"4462:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4452:6:21"},"nodeType":"YulFunctionCall","src":"4452:31:21"},"nodeType":"YulExpressionStatement","src":"4452:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4499:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"4502:4:21","type":"","value":"0x32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4492:6:21"},"nodeType":"YulFunctionCall","src":"4492:15:21"},"nodeType":"YulExpressionStatement","src":"4492:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"4523:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"4526:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"4516:6:21"},"nodeType":"YulFunctionCall","src":"4516:15:21"},"nodeType":"YulExpressionStatement","src":"4516:15:21"}]},"name":"panic_error_0x32","nodeType":"YulFunctionDefinition","src":"4410:127:21"},{"body":{"nodeType":"YulBlock","src":"4716:239:21","statements":[{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4733:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4744:2:21","type":"","value":"32"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4726:6:21"},"nodeType":"YulFunctionCall","src":"4726:21:21"},"nodeType":"YulExpressionStatement","src":"4726:21:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4767:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4778:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4763:3:21"},"nodeType":"YulFunctionCall","src":"4763:18:21"},{"kind":"number","nodeType":"YulLiteral","src":"4783:2:21","type":"","value":"49"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4756:6:21"},"nodeType":"YulFunctionCall","src":"4756:30:21"},"nodeType":"YulExpressionStatement","src":"4756:30:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4806:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4817:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4802:3:21"},"nodeType":"YulFunctionCall","src":"4802:18:21"},{"hexValue":"5369676e617475726573206d75737420626520756e6971756520616e6420696e","kind":"string","nodeType":"YulLiteral","src":"4822:34:21","type":"","value":"Signatures must be unique and in"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4795:6:21"},"nodeType":"YulFunctionCall","src":"4795:62:21"},"nodeType":"YulExpressionStatement","src":"4795:62:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4877:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4888:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4873:3:21"},"nodeType":"YulFunctionCall","src":"4873:18:21"},{"hexValue":"20696e6372656173696e67206f72646572","kind":"string","nodeType":"YulLiteral","src":"4893:19:21","type":"","value":" increasing order"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"4866:6:21"},"nodeType":"YulFunctionCall","src":"4866:47:21"},"nodeType":"YulExpressionStatement","src":"4866:47:21"},{"nodeType":"YulAssignment","src":"4922:27:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"4934:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"4945:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"4930:3:21"},"nodeType":"YulFunctionCall","src":"4930:19:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"4922:4:21"}]}]},"name":"abi_encode_tuple_t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42__to_t_string_memory_ptr__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"4693:9:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"4707:4:21","type":""}],"src":"4542:413:21"},{"body":{"nodeType":"YulBlock","src":"5007:88:21","statements":[{"body":{"nodeType":"YulBlock","src":"5038:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5040:16:21"},"nodeType":"YulFunctionCall","src":"5040:18:21"},"nodeType":"YulExpressionStatement","src":"5040:18:21"}]},"condition":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5023:5:21"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5034:1:21","type":"","value":"0"}],"functionName":{"name":"not","nodeType":"YulIdentifier","src":"5030:3:21"},"nodeType":"YulFunctionCall","src":"5030:6:21"}],"functionName":{"name":"eq","nodeType":"YulIdentifier","src":"5020:2:21"},"nodeType":"YulFunctionCall","src":"5020:17:21"},"nodeType":"YulIf","src":"5017:43:21"},{"nodeType":"YulAssignment","src":"5069:20:21","value":{"arguments":[{"name":"value","nodeType":"YulIdentifier","src":"5080:5:21"},{"kind":"number","nodeType":"YulLiteral","src":"5087:1:21","type":"","value":"1"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5076:3:21"},"nodeType":"YulFunctionCall","src":"5076:13:21"},"variableNames":[{"name":"ret","nodeType":"YulIdentifier","src":"5069:3:21"}]}]},"name":"increment_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"value","nodeType":"YulTypedName","src":"4989:5:21","type":""}],"returnVariables":[{"name":"ret","nodeType":"YulTypedName","src":"4999:3:21","type":""}],"src":"4960:135:21"},{"body":{"nodeType":"YulBlock","src":"5132:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5149:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5156:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5161:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5152:3:21"},"nodeType":"YulFunctionCall","src":"5152:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5142:6:21"},"nodeType":"YulFunctionCall","src":"5142:31:21"},"nodeType":"YulExpressionStatement","src":"5142:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5189:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5192:4:21","type":"","value":"0x21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5182:6:21"},"nodeType":"YulFunctionCall","src":"5182:15:21"},"nodeType":"YulExpressionStatement","src":"5182:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5213:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5216:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5206:6:21"},"nodeType":"YulFunctionCall","src":"5206:15:21"},"nodeType":"YulExpressionStatement","src":"5206:15:21"}]},"name":"panic_error_0x21","nodeType":"YulFunctionDefinition","src":"5100:127:21"},{"body":{"nodeType":"YulBlock","src":"5333:76:21","statements":[{"nodeType":"YulAssignment","src":"5343:26:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5355:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5366:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5351:3:21"},"nodeType":"YulFunctionCall","src":"5351:18:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5343:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5385:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"5396:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5378:6:21"},"nodeType":"YulFunctionCall","src":"5378:25:21"},"nodeType":"YulExpressionStatement","src":"5378:25:21"}]},"name":"abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5302:9:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5313:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5324:4:21","type":""}],"src":"5232:177:21"},{"body":{"nodeType":"YulBlock","src":"5463:79:21","statements":[{"nodeType":"YulAssignment","src":"5473:17:21","value":{"arguments":[{"name":"x","nodeType":"YulIdentifier","src":"5485:1:21"},{"name":"y","nodeType":"YulIdentifier","src":"5488:1:21"}],"functionName":{"name":"sub","nodeType":"YulIdentifier","src":"5481:3:21"},"nodeType":"YulFunctionCall","src":"5481:9:21"},"variableNames":[{"name":"diff","nodeType":"YulIdentifier","src":"5473:4:21"}]},{"body":{"nodeType":"YulBlock","src":"5514:22:21","statements":[{"expression":{"arguments":[],"functionName":{"name":"panic_error_0x11","nodeType":"YulIdentifier","src":"5516:16:21"},"nodeType":"YulFunctionCall","src":"5516:18:21"},"nodeType":"YulExpressionStatement","src":"5516:18:21"}]},"condition":{"arguments":[{"name":"diff","nodeType":"YulIdentifier","src":"5505:4:21"},{"name":"x","nodeType":"YulIdentifier","src":"5511:1:21"}],"functionName":{"name":"gt","nodeType":"YulIdentifier","src":"5502:2:21"},"nodeType":"YulFunctionCall","src":"5502:11:21"},"nodeType":"YulIf","src":"5499:37:21"}]},"name":"checked_sub_t_uint256","nodeType":"YulFunctionDefinition","parameters":[{"name":"x","nodeType":"YulTypedName","src":"5445:1:21","type":""},{"name":"y","nodeType":"YulTypedName","src":"5448:1:21","type":""}],"returnVariables":[{"name":"diff","nodeType":"YulTypedName","src":"5454:4:21","type":""}],"src":"5414:128:21"},{"body":{"nodeType":"YulBlock","src":"5579:95:21","statements":[{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5596:1:21","type":"","value":"0"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5603:3:21","type":"","value":"224"},{"kind":"number","nodeType":"YulLiteral","src":"5608:10:21","type":"","value":"0x4e487b71"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"5599:3:21"},"nodeType":"YulFunctionCall","src":"5599:20:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5589:6:21"},"nodeType":"YulFunctionCall","src":"5589:31:21"},"nodeType":"YulExpressionStatement","src":"5589:31:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5636:1:21","type":"","value":"4"},{"kind":"number","nodeType":"YulLiteral","src":"5639:4:21","type":"","value":"0x31"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5629:6:21"},"nodeType":"YulFunctionCall","src":"5629:15:21"},"nodeType":"YulExpressionStatement","src":"5629:15:21"},{"expression":{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"5660:1:21","type":"","value":"0"},{"kind":"number","nodeType":"YulLiteral","src":"5663:4:21","type":"","value":"0x24"}],"functionName":{"name":"revert","nodeType":"YulIdentifier","src":"5653:6:21"},"nodeType":"YulFunctionCall","src":"5653:15:21"},"nodeType":"YulExpressionStatement","src":"5653:15:21"}]},"name":"panic_error_0x31","nodeType":"YulFunctionDefinition","src":"5547:127:21"},{"body":{"nodeType":"YulBlock","src":"5860:217:21","statements":[{"nodeType":"YulAssignment","src":"5870:27:21","value":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5882:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5893:3:21","type":"","value":"128"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5878:3:21"},"nodeType":"YulFunctionCall","src":"5878:19:21"},"variableNames":[{"name":"tail","nodeType":"YulIdentifier","src":"5870:4:21"}]},{"expression":{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5913:9:21"},{"name":"value0","nodeType":"YulIdentifier","src":"5924:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5906:6:21"},"nodeType":"YulFunctionCall","src":"5906:25:21"},"nodeType":"YulExpressionStatement","src":"5906:25:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"5951:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"5962:2:21","type":"","value":"32"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"5947:3:21"},"nodeType":"YulFunctionCall","src":"5947:18:21"},{"arguments":[{"name":"value1","nodeType":"YulIdentifier","src":"5971:6:21"},{"kind":"number","nodeType":"YulLiteral","src":"5979:4:21","type":"","value":"0xff"}],"functionName":{"name":"and","nodeType":"YulIdentifier","src":"5967:3:21"},"nodeType":"YulFunctionCall","src":"5967:17:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5940:6:21"},"nodeType":"YulFunctionCall","src":"5940:45:21"},"nodeType":"YulExpressionStatement","src":"5940:45:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6005:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6016:2:21","type":"","value":"64"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6001:3:21"},"nodeType":"YulFunctionCall","src":"6001:18:21"},{"name":"value2","nodeType":"YulIdentifier","src":"6021:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"5994:6:21"},"nodeType":"YulFunctionCall","src":"5994:34:21"},"nodeType":"YulExpressionStatement","src":"5994:34:21"},{"expression":{"arguments":[{"arguments":[{"name":"headStart","nodeType":"YulIdentifier","src":"6048:9:21"},{"kind":"number","nodeType":"YulLiteral","src":"6059:2:21","type":"","value":"96"}],"functionName":{"name":"add","nodeType":"YulIdentifier","src":"6044:3:21"},"nodeType":"YulFunctionCall","src":"6044:18:21"},{"name":"value3","nodeType":"YulIdentifier","src":"6064:6:21"}],"functionName":{"name":"mstore","nodeType":"YulIdentifier","src":"6037:6:21"},"nodeType":"YulFunctionCall","src":"6037:34:21"},"nodeType":"YulExpressionStatement","src":"6037:34:21"}]},"name":"abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed","nodeType":"YulFunctionDefinition","parameters":[{"name":"headStart","nodeType":"YulTypedName","src":"5805:9:21","type":""},{"name":"value3","nodeType":"YulTypedName","src":"5816:6:21","type":""},{"name":"value2","nodeType":"YulTypedName","src":"5824:6:21","type":""},{"name":"value1","nodeType":"YulTypedName","src":"5832:6:21","type":""},{"name":"value0","nodeType":"YulTypedName","src":"5840:6:21","type":""}],"returnVariables":[{"name":"tail","nodeType":"YulTypedName","src":"5851:4:21","type":""}],"src":"5679:398:21"}]},"contents":"{\n { }\n function panic_error_0x41()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n function allocate_memory(size) -> memPtr\n {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n function abi_decode_bytes(offset, end) -> array\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let _1 := calldataload(offset)\n if gt(_1, 0xffffffffffffffff) { panic_error_0x41() }\n let array_1 := allocate_memory(add(and(add(_1, 0x1f), not(31)), 0x20))\n mstore(array_1, _1)\n if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n calldatacopy(add(array_1, 0x20), add(offset, 0x20), _1)\n mstore(add(add(array_1, _1), 0x20), 0)\n array := array_1\n }\n function abi_decode_tuple_t_bytes32t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n value1 := abi_decode_bytes(add(headStart, offset), dataEnd)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n let value := calldataload(headStart)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32t_array$_t_bytes_memory_ptr_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1\n {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n value0 := calldataload(headStart)\n let _1 := 32\n let offset := calldataload(add(headStart, _1))\n let _2 := 0xffffffffffffffff\n if gt(offset, _2) { revert(0, 0) }\n let _3 := add(headStart, offset)\n if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n let _4 := calldataload(_3)\n if gt(_4, _2) { panic_error_0x41() }\n let _5 := shl(5, _4)\n let dst := allocate_memory(add(_5, _1))\n let dst_1 := dst\n mstore(dst, _4)\n dst := add(dst, _1)\n let srcEnd := add(add(_3, _5), _1)\n if gt(srcEnd, dataEnd) { revert(0, 0) }\n let src := add(_3, _1)\n for { } lt(src, srcEnd) { src := add(src, _1) }\n {\n let innerOffset := calldataload(src)\n if gt(innerOffset, _2)\n {\n let _6 := 0\n revert(_6, _6)\n }\n mstore(dst, abi_decode_bytes(add(add(_3, innerOffset), _1), dataEnd))\n dst := add(dst, _1)\n }\n value1 := dst_1\n }\n function abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n {\n let _1 := 32\n let tail_1 := add(headStart, _1)\n mstore(headStart, _1)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 64)\n let srcPtr := add(value0, _1)\n let i := 0\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n tail := pos\n }\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n product := mul(x, y)\n if iszero(or(iszero(x), eq(y, div(product, x)))) { panic_error_0x11() }\n }\n function panic_error_0x32()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_stringliteral_8a8fa74e02afca26942b7eb4f988265cf889e1e4e3c127c2fe776c472e7afa42__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 49)\n mstore(add(headStart, 64), \"Signatures must be unique and in\")\n mstore(add(headStart, 96), \" increasing order\")\n tail := add(headStart, 128)\n }\n function increment_t_uint256(value) -> ret\n {\n if eq(value, not(0)) { panic_error_0x11() }\n ret := add(value, 1)\n }\n function panic_error_0x21()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_bytes32__to_t_bytes32__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, value0)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n diff := sub(x, y)\n if gt(diff, x) { panic_error_0x11() }\n }\n function panic_error_0x31()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_bytes32_t_bytes32__to_t_bytes32_t_uint8_t_bytes32_t_bytes32__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n }\n}","id":21,"language":"Yul","name":"#utility.yul"}],"immutableReferences":{},"linkReferences":{},"object":"608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x7947C3FA GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x7947C3FA EQ PUSH2 0xEE JUMPI DUP1 PUSH4 0xB7AB4DB5 EQ PUSH2 0x101 JUMPI DUP1 PUSH4 0xED612F8C EQ PUSH2 0x116 JUMPI DUP1 PUSH4 0xFACD743B EQ PUSH2 0x12C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0x333DAF92 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x3E99D941 EQ PUSH2 0xB5 JUMPI DUP1 PUSH4 0x40A141FF EQ PUSH2 0xC8 JUMPI DUP1 PUSH4 0x4D238C8E EQ PUSH2 0xDB JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0xA0 PUSH2 0x9B CALLDATASIZE PUSH1 0x4 PUSH2 0x781 JUMP JUMPDEST PUSH2 0x13F JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xA0 PUSH2 0xC3 CALLDATASIZE PUSH1 0x4 PUSH2 0x7C8 JUMP JUMPDEST PUSH2 0x161 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xD6 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x188 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xE9 CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x194 JUMP JUMPDEST PUSH2 0xA0 PUSH2 0xFC CALLDATASIZE PUSH1 0x4 PUSH2 0x80A JUMP JUMPDEST PUSH2 0x1A0 JUMP JUMPDEST PUSH2 0x109 PUSH2 0x296 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xAC SWAP2 SWAP1 PUSH2 0x8D9 JUMP JUMPDEST PUSH2 0x11E PUSH2 0x2A7 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xAC JUMP JUMPDEST PUSH2 0xA0 PUSH2 0x13A CALLDATASIZE PUSH1 0x4 PUSH2 0x7E1 JUMP JUMPDEST PUSH2 0x2B3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH2 0x14C DUP5 DUP5 PUSH2 0x2BF JUMP JUMPDEST SWAP1 POP PUSH2 0x157 DUP2 PUSH2 0x2B3 JUMP JUMPDEST SWAP2 POP POP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x16B PUSH2 0x2A7 JUMP JUMPDEST PUSH2 0x176 SWAP1 PUSH1 0x2 PUSH2 0x93C JUMP JUMPDEST PUSH2 0x181 DUP4 PUSH1 0x3 PUSH2 0x93C JUMP JUMPDEST GT SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x2E9 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x305 JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 JUMPDEST DUP4 MLOAD DUP2 LT ISZERO PUSH2 0x28B JUMPI PUSH1 0x0 PUSH2 0x1DC DUP6 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x1C5 JUMPI PUSH2 0x1C5 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP8 PUSH2 0x2BF SWAP1 SWAP2 SWAP1 PUSH4 0xFFFFFFFF AND JUMP JUMPDEST SWAP1 POP DUP3 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP2 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND GT PUSH2 0x25E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x31 PUSH1 0x24 DUP3 ADD MSTORE PUSH32 0x5369676E617475726573206D75737420626520756E6971756520616E6420696E PUSH1 0x44 DUP3 ADD MSTORE PUSH17 0x1034B731B932B0B9B4B7339037B93232B9 PUSH1 0x79 SHL PUSH1 0x64 DUP3 ADD MSTORE PUSH1 0x84 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH2 0x267 DUP2 PUSH2 0x2B3 JUMP JUMPDEST PUSH2 0x277 JUMPI PUSH1 0x0 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0x283 DUP2 PUSH2 0x969 JUMP JUMPDEST SWAP2 POP POP PUSH2 0x1A5 JUMP JUMPDEST POP PUSH1 0x1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x60 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x31A JUMP JUMPDEST SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2A2 PUSH1 0x0 PUSH2 0x327 JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP2 DUP4 PUSH2 0x331 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP1 PUSH2 0x2CF DUP7 DUP7 PUSH2 0x353 JUMP JUMPDEST SWAP3 POP SWAP3 POP SWAP3 POP PUSH2 0x2DF DUP3 DUP3 PUSH2 0x3A0 JUMP JUMPDEST POP SWAP1 SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x45D JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP5 AND PUSH2 0x550 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH2 0x2FE DUP4 PUSH2 0x59F JUMP JUMPDEST PUSH1 0x0 PUSH2 0x15B DUP3 SLOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD ISZERO ISZERO PUSH2 0x2FE JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 DUP4 MLOAD PUSH1 0x41 SUB PUSH2 0x38D JUMPI PUSH1 0x20 DUP5 ADD MLOAD PUSH1 0x40 DUP6 ADD MLOAD PUSH1 0x60 DUP7 ADD MLOAD PUSH1 0x0 BYTE PUSH2 0x37F DUP9 DUP3 DUP6 DUP6 PUSH2 0x5FB JUMP JUMPDEST SWAP6 POP SWAP6 POP SWAP6 POP POP POP POP PUSH2 0x399 JUMP JUMPDEST POP POP DUP2 MLOAD PUSH1 0x0 SWAP2 POP PUSH1 0x2 SWAP1 JUMPDEST SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3B4 JUMPI PUSH2 0x3B4 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3BD JUMPI POP POP JUMP JUMPDEST PUSH1 0x1 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x3D1 JUMPI PUSH2 0x3D1 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x3EF JUMPI PUSH1 0x40 MLOAD PUSH4 0xF645EEDF PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x2 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x403 JUMPI PUSH2 0x403 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x424 JUMPI PUSH1 0x40 MLOAD PUSH4 0xFCE698F7 PUSH1 0xE0 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST PUSH1 0x3 DUP3 PUSH1 0x3 DUP2 GT ISZERO PUSH2 0x438 JUMPI PUSH2 0x438 PUSH2 0x982 JUMP JUMPDEST SUB PUSH2 0x459 JUMPI PUSH1 0x40 MLOAD PUSH4 0x35E2F383 PUSH1 0xE2 SHL DUP2 MSTORE PUSH1 0x4 DUP2 ADD DUP3 SWAP1 MSTORE PUSH1 0x24 ADD PUSH2 0x255 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD DUP1 ISZERO PUSH2 0x546 JUMPI PUSH1 0x0 PUSH2 0x481 PUSH1 0x1 DUP4 PUSH2 0x998 JUMP JUMPDEST DUP6 SLOAD SWAP1 SWAP2 POP PUSH1 0x0 SWAP1 PUSH2 0x495 SWAP1 PUSH1 0x1 SWAP1 PUSH2 0x998 JUMP JUMPDEST SWAP1 POP DUP1 DUP3 EQ PUSH2 0x4FA JUMPI PUSH1 0x0 DUP7 PUSH1 0x0 ADD DUP3 DUP2 SLOAD DUP2 LT PUSH2 0x4B5 JUMPI PUSH2 0x4B5 PUSH2 0x953 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD SLOAD SWAP1 POP DUP1 DUP8 PUSH1 0x0 ADD DUP5 DUP2 SLOAD DUP2 LT PUSH2 0x4D8 JUMPI PUSH2 0x4D8 PUSH2 0x953 JUMP JUMPDEST PUSH1 0x0 SWAP2 DUP3 MSTORE PUSH1 0x20 DUP1 DUP4 KECCAK256 SWAP1 SWAP2 ADD SWAP3 SWAP1 SWAP3 SSTORE SWAP2 DUP3 MSTORE PUSH1 0x1 DUP9 ADD SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 DUP4 SWAP1 SSTORE JUMPDEST DUP6 SLOAD DUP7 SWAP1 DUP1 PUSH2 0x50B JUMPI PUSH2 0x50B PUSH2 0x9AB JUMP JUMPDEST PUSH1 0x1 SWAP1 SUB DUP2 DUP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SSTORE SWAP1 SSTORE DUP6 PUSH1 0x1 ADD PUSH1 0x0 DUP7 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 KECCAK256 PUSH1 0x0 SWAP1 SSTORE PUSH1 0x1 SWAP4 POP POP POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 SWAP2 POP POP PUSH2 0x15B JUMP JUMPDEST PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x1 DUP4 ADD PUSH1 0x20 MSTORE PUSH1 0x40 DUP2 KECCAK256 SLOAD PUSH2 0x597 JUMPI POP DUP2 SLOAD PUSH1 0x1 DUP2 DUP2 ADD DUP5 SSTORE PUSH1 0x0 DUP5 DUP2 MSTORE PUSH1 0x20 DUP1 DUP3 KECCAK256 SWAP1 SWAP4 ADD DUP5 SWAP1 SSTORE DUP5 SLOAD DUP5 DUP3 MSTORE DUP3 DUP7 ADD SWAP1 SWAP4 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SWAP2 SWAP1 SWAP2 SSTORE PUSH2 0x15B JUMP JUMPDEST POP PUSH1 0x0 PUSH2 0x15B JUMP JUMPDEST PUSH1 0x60 DUP2 PUSH1 0x0 ADD DUP1 SLOAD DUP1 PUSH1 0x20 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 DUP1 ISZERO PUSH2 0x5EF JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x5DB JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP1 PUSH32 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0 DUP5 GT ISZERO PUSH2 0x636 JUMPI POP PUSH1 0x0 SWAP2 POP PUSH1 0x3 SWAP1 POP DUP3 PUSH2 0x6C0 JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x0 DUP1 DUP3 MSTORE PUSH1 0x20 DUP3 ADD DUP1 DUP5 MSTORE DUP11 SWAP1 MSTORE PUSH1 0xFF DUP10 AND SWAP3 DUP3 ADD SWAP3 SWAP1 SWAP3 MSTORE PUSH1 0x60 DUP2 ADD DUP8 SWAP1 MSTORE PUSH1 0x80 DUP2 ADD DUP7 SWAP1 MSTORE PUSH1 0x1 SWAP1 PUSH1 0xA0 ADD PUSH1 0x20 PUSH1 0x40 MLOAD PUSH1 0x20 DUP2 SUB SWAP1 DUP1 DUP5 SUB SWAP1 DUP6 GAS STATICCALL ISZERO DUP1 ISZERO PUSH2 0x68A JUMPI RETURNDATASIZE PUSH1 0x0 DUP1 RETURNDATACOPY RETURNDATASIZE PUSH1 0x0 REVERT JUMPDEST POP POP PUSH1 0x40 MLOAD PUSH1 0x1F NOT ADD MLOAD SWAP2 POP POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH2 0x6B6 JUMPI POP PUSH1 0x0 SWAP3 POP PUSH1 0x1 SWAP2 POP DUP3 SWAP1 POP PUSH2 0x6C0 JUMP JUMPDEST SWAP3 POP PUSH1 0x0 SWAP2 POP DUP2 SWAP1 POP JUMPDEST SWAP5 POP SWAP5 POP SWAP5 SWAP2 POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x40 MLOAD PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND DUP2 ADD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT DUP3 DUP3 LT OR ISZERO PUSH2 0x709 JUMPI PUSH2 0x709 PUSH2 0x6CA JUMP JUMPDEST PUSH1 0x40 MSTORE SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x722 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x73C JUMPI PUSH2 0x73C PUSH2 0x6CA JUMP JUMPDEST PUSH2 0x74F PUSH1 0x1F DUP3 ADD PUSH1 0x1F NOT AND PUSH1 0x20 ADD PUSH2 0x6E0 JUMP JUMPDEST DUP2 DUP2 MSTORE DUP5 PUSH1 0x20 DUP4 DUP7 ADD ADD GT ISZERO PUSH2 0x764 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 PUSH1 0x20 DUP6 ADD PUSH1 0x20 DUP4 ADD CALLDATACOPY PUSH1 0x0 SWAP2 DUP2 ADD PUSH1 0x20 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x794 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x7B2 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x7BE DUP6 DUP3 DUP7 ADD PUSH2 0x711 JUMP JUMPDEST SWAP2 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x7F3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2FE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x81D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP2 POP PUSH1 0x20 DUP1 DUP5 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP1 DUP3 GT ISZERO PUSH2 0x83D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 DUP7 ADD SWAP2 POP DUP7 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x851 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP2 CALLDATALOAD DUP2 DUP2 GT ISZERO PUSH2 0x863 JUMPI PUSH2 0x863 PUSH2 0x6CA JUMP JUMPDEST DUP1 PUSH1 0x5 SHL PUSH2 0x872 DUP6 DUP3 ADD PUSH2 0x6E0 JUMP JUMPDEST SWAP2 DUP3 MSTORE DUP4 DUP2 ADD DUP6 ADD SWAP2 DUP6 DUP2 ADD SWAP1 DUP11 DUP5 GT ISZERO PUSH2 0x88C JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP7 DUP7 ADD SWAP3 POP JUMPDEST DUP4 DUP4 LT ISZERO PUSH2 0x8C8 JUMPI DUP3 CALLDATALOAD DUP6 DUP2 GT ISZERO PUSH2 0x8AA JUMPI PUSH1 0x0 DUP1 DUP2 REVERT JUMPDEST PUSH2 0x8B8 DUP13 DUP10 DUP4 DUP11 ADD ADD PUSH2 0x711 JUMP JUMPDEST DUP4 MSTORE POP SWAP2 DUP7 ADD SWAP2 SWAP1 DUP7 ADD SWAP1 PUSH2 0x892 JUMP JUMPDEST DUP1 SWAP8 POP POP POP POP POP POP POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x91A JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x8F5 JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP1 DUP3 MUL DUP2 ISZERO DUP3 DUP3 DIV DUP5 EQ OR PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP3 ADD PUSH2 0x97B JUMPI PUSH2 0x97B PUSH2 0x926 JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x21 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST DUP2 DUP2 SUB DUP2 DUP2 GT ISZERO PUSH2 0x15B JUMPI PUSH2 0x15B PUSH2 0x926 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x31 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xE2 PC CALL 0xEF GT DUP13 DUP15 DUP9 CALLVALUE SWAP5 0xFC DUP5 SLT 0xFB NUMBER TIMESTAMP SWAP16 DUP12 PUSH9 0x4FCB90D8F0F31A281D SWAP11 0xC0 0xCD CALLER PUSH5 0x736F6C6343 STOP ADDMOD EQ STOP CALLER ","sourceMap":"276:2015:19:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2050:239;;;;;;:::i;:::-;;:::i;:::-;;;1519:14:21;;1512:22;1494:41;;1482:2;1467:18;2050:239:19;;;;;;;;1922:122;;;;;;:::i;:::-;;:::i;808:109::-;;;;;;:::i;:::-;;:::i;670:103::-;;;;;;:::i;:::-;;:::i;1309:607::-;;;;;;:::i;:::-;;:::i;973:108::-;;;:::i;:::-;;;;;;;:::i;1205:98::-;;;:::i;:::-;;;4069:25:21;;;4057:2;4042:18;1205:98:19;3923:177:21;1087:112:19;;;;;;:::i;:::-;;:::i;2050:239::-;2174:4;;2207:39;:20;2236:9;2207:28;:39::i;:::-;2190:56;;2263:19;2275:6;2263:11;:19::i;:::-;2256:26;;;2050:239;;;;;:::o;1922:122::-;1981:4;2016:17;:15;:17::i;:::-;:21;;2036:1;2016:21;:::i;:::-;2004:9;:5;2012:1;2004:9;:::i;:::-;:33;;1922:122;-1:-1:-1;;1922:122:19:o;808:109::-;863:4;886:24;863:4;905;886:18;:24::i;670:103::-;722:4;745:21;722:4;761;745:15;:21::i;1309:607::-;1443:4;;;1501:388;1522:10;:17;1518:1;:21;1501:388;;;1560:14;1577:43;1606:10;1617:1;1606:13;;;;;;;;:::i;:::-;;;;;;;1577:20;:28;;:43;;;;:::i;:::-;1560:60;;1668:10;-1:-1:-1;;;;;1659:19:19;:6;-1:-1:-1;;;;;1659:19:19;;1634:127;;;;-1:-1:-1;;;1634:127:19;;4744:2:21;1634:127:19;;;4726:21:21;4783:2;4763:18;;;4756:30;4822:34;4802:18;;;4795:62;-1:-1:-1;;;4873:18:21;;;4866:47;4930:19;;1634:127:19;;;;;;;;;1780:19;1792:6;1780:11;:19::i;:::-;1775:71;;1826:5;1819:12;;;;;;;1775:71;1872:6;-1:-1:-1;1541:3:19;;;;:::i;:::-;;;;1501:388;;;-1:-1:-1;1905:4:19;;1309:607;-1:-1:-1;;;;1309:607:19:o;973:108::-;1019:16;1054:20;:11;:18;:20::i;:::-;1047:27;;973:108;:::o;1205:98::-;1253:4;1276:20;:11;:18;:20::i;1087:112::-;1143:4;1166:26;1143:4;1187;1166:20;:26::i;3702:255:9:-;3780:7;3800:17;3819:18;3839:16;3859:27;3870:4;3876:9;3859:10;:27::i;:::-;3799:87;;;;;;3896:28;3908:5;3915:8;3896:11;:28::i;:::-;-1:-1:-1;3941:9:9;;3702:255;-1:-1:-1;;;;3702:255:9:o;8634:156:13:-;8707:4;8730:53;8738:3;-1:-1:-1;;;;;8758:23:13;;8730:7;:53::i;:::-;8723:60;8634:156;-1:-1:-1;;;8634:156:13:o;8316:150::-;8386:4;8409:50;8414:3;-1:-1:-1;;;;;8434:23:13;;8409:4;:50::i;10270:300::-;10333:16;10361:22;10386:19;10394:3;10386:7;:19::i;9117:115::-;9180:7;9206:19;9214:3;4556:18;;4474:107;8871:165;-1:-1:-1;;;;;9004:23:13;;8951:4;4360:21;;;:14;;;:21;;;;;;:26;;8974:55;4264:129;2129:766:9;2210:7;2219:12;2233:7;2256:9;:16;2276:2;2256:22;2252:637;;2592:4;2577:20;;2571:27;2641:4;2626:20;;2620:27;2698:4;2683:20;;2677:27;2294:9;2669:36;2739:25;2750:4;2669:36;2571:27;2620;2739:10;:25::i;:::-;2732:32;;;;;;;;;;;2252:637;-1:-1:-1;;2860:16:9;;2811:1;;-1:-1:-1;2815:35:9;;2252:637;2129:766;;;;;:::o;7196:532::-;7291:20;7282:5;:29;;;;;;;;:::i;:::-;;7278:444;;7196:532;;:::o;7278:444::-;7387:29;7378:5;:38;;;;;;;;:::i;:::-;;7374:348;;7439:23;;-1:-1:-1;;;7439:23:9;;;;;;;;;;;7374:348;7492:35;7483:5;:44;;;;;;;;:::i;:::-;;7479:243;;7550:46;;-1:-1:-1;;;7550:46:9;;;;;4069:25:21;;;4042:18;;7550:46:9;3923:177:21;7479:243:9;7626:30;7617:5;:39;;;;;;;;:::i;:::-;;7613:109;;7679:32;;-1:-1:-1;;;7679:32:9;;;;;4069:25:21;;;4042:18;;7679:32:9;3923:177:21;7613:109:9;7196:532;;:::o;2815:1368:13:-;2881:4;3010:21;;;:14;;;:21;;;;;;3046:13;;3042:1135;;3413:18;3434:12;3445:1;3434:8;:12;:::i;:::-;3480:18;;3413:33;;-1:-1:-1;3460:17:13;;3480:22;;3501:1;;3480:22;:::i;:::-;3460:42;;3535:9;3521:10;:23;3517:378;;3564:17;3584:3;:11;;3596:9;3584:22;;;;;;;;:::i;:::-;;;;;;;;;3564:42;;3731:9;3705:3;:11;;3717:10;3705:23;;;;;;;;:::i;:::-;;;;;;;;;;;;:35;;;;3844:25;;;:14;;;:25;;;;;:36;;;3517:378;3973:17;;:3;;:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;4076:3;:14;;:21;4091:5;4076:21;;;;;;;;;;;4069:28;;;4119:4;4112:11;;;;;;;3042:1135;4161:5;4154:12;;;;;2241:406;2304:4;4360:21;;;:14;;;:21;;;;;;2320:321;;-1:-1:-1;2362:23:13;;;;;;;;:11;:23;;;;;;;;;;;;;2544:18;;2520:21;;;:14;;;:21;;;;;;:42;;;;2576:11;;2320:321;-1:-1:-1;2625:5:13;2618:12;;5581:109;5637:16;5672:3;:11;;5665:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5581:109;;;:::o;5140:1530:9:-;5266:7;;;6199:66;6186:79;;6182:164;;;-1:-1:-1;6297:1:9;;-1:-1:-1;6301:30:9;;-1:-1:-1;6333:1:9;6281:54;;6182:164;6457:24;;;6440:14;6457:24;;;;;;;;;5906:25:21;;;5979:4;5967:17;;5947:18;;;5940:45;;;;6001:18;;;5994:34;;;6044:18;;;6037:34;;;6457:24:9;;5878:19:21;;6457:24:9;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6457:24:9;;-1:-1:-1;;6457:24:9;;;-1:-1:-1;;;;;;;6495:20:9;;6491:113;;-1:-1:-1;6547:1:9;;-1:-1:-1;6551:29:9;;-1:-1:-1;6547:1:9;;-1:-1:-1;6531:62:9;;6491:113;6622:6;-1:-1:-1;6630:20:9;;-1:-1:-1;6630:20:9;;-1:-1:-1;5140:1530:9;;;;;;;;;:::o;14:127:21:-;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:275;217:2;211:9;282:2;263:13;;-1:-1:-1;;259:27:21;247:40;;317:18;302:34;;338:22;;;299:62;296:88;;;364:18;;:::i;:::-;400:2;393:22;146:275;;-1:-1:-1;146:275:21:o;426:530::-;468:5;521:3;514:4;506:6;502:17;498:27;488:55;;539:1;536;529:12;488:55;575:6;562:20;601:18;597:2;594:26;591:52;;;623:18;;:::i;:::-;667:55;710:2;691:13;;-1:-1:-1;;687:27:21;716:4;683:38;667:55;:::i;:::-;747:2;738:7;731:19;793:3;786:4;781:2;773:6;769:15;765:26;762:35;759:55;;;810:1;807;800:12;759:55;875:2;868:4;860:6;856:17;849:4;840:7;836:18;823:55;923:1;898:16;;;916:4;894:27;887:38;;;;902:7;426:530;-1:-1:-1;;;426:530:21:o;961:388::-;1038:6;1046;1099:2;1087:9;1078:7;1074:23;1070:32;1067:52;;;1115:1;1112;1105:12;1067:52;1151:9;1138:23;1128:33;;1212:2;1201:9;1197:18;1184:32;1239:18;1231:6;1228:30;1225:50;;;1271:1;1268;1261:12;1225:50;1294:49;1335:7;1326:6;1315:9;1311:22;1294:49;:::i;:::-;1284:59;;;961:388;;;;;:::o;1546:180::-;1605:6;1658:2;1646:9;1637:7;1633:23;1629:32;1626:52;;;1674:1;1671;1664:12;1626:52;-1:-1:-1;1697:23:21;;1546:180;-1:-1:-1;1546:180:21:o;1731:286::-;1790:6;1843:2;1831:9;1822:7;1818:23;1814:32;1811:52;;;1859:1;1856;1849:12;1811:52;1885:23;;-1:-1:-1;;;;;1937:31:21;;1927:42;;1917:70;;1983:1;1980;1973:12;2022:1233;2124:6;2132;2185:2;2173:9;2164:7;2160:23;2156:32;2153:52;;;2201:1;2198;2191:12;2153:52;2237:9;2224:23;2214:33;;2266:2;2319;2308:9;2304:18;2291:32;2342:18;2383:2;2375:6;2372:14;2369:34;;;2399:1;2396;2389:12;2369:34;2437:6;2426:9;2422:22;2412:32;;2482:7;2475:4;2471:2;2467:13;2463:27;2453:55;;2504:1;2501;2494:12;2453:55;2540:2;2527:16;2562:2;2558;2555:10;2552:36;;;2568:18;;:::i;:::-;2614:2;2611:1;2607:10;2637:28;2661:2;2657;2653:11;2637:28;:::i;:::-;2699:15;;;2769:11;;;2765:20;;;2730:12;;;;2797:19;;;2794:39;;;2829:1;2826;2819:12;2794:39;2861:2;2857;2853:11;2842:22;;2873:352;2889:6;2884:3;2881:15;2873:352;;;2975:3;2962:17;3011:2;2998:11;2995:19;2992:109;;;3055:1;3084:2;3080;3073:14;2992:109;3126:56;3174:7;3169:2;3155:11;3151:2;3147:20;3143:29;3126:56;:::i;:::-;3114:69;;-1:-1:-1;2906:12:21;;;;3203;;;;2873:352;;;3244:5;3234:15;;;;;;;;;2022:1233;;;;;:::o;3260:658::-;3431:2;3483:21;;;3553:13;;3456:18;;;3575:22;;;3402:4;;3431:2;3654:15;;;;3628:2;3613:18;;;3402:4;3697:195;3711:6;3708:1;3705:13;3697:195;;;3776:13;;-1:-1:-1;;;;;3772:39:21;3760:52;;3867:15;;;;3832:12;;;;3808:1;3726:9;3697:195;;;-1:-1:-1;3909:3:21;;3260:658;-1:-1:-1;;;;;;3260:658:21:o;4105:127::-;4166:10;4161:3;4157:20;4154:1;4147:31;4197:4;4194:1;4187:15;4221:4;4218:1;4211:15;4237:168;4310:9;;;4341;;4358:15;;;4352:22;;4338:37;4328:71;;4379:18;;:::i;4410:127::-;4471:10;4466:3;4462:20;4459:1;4452:31;4502:4;4499:1;4492:15;4526:4;4523:1;4516:15;4960:135;4999:3;5020:17;;;5017:43;;5040:18;;:::i;:::-;-1:-1:-1;5087:1:21;5076:13;;4960:135::o;5100:127::-;5161:10;5156:3;5152:20;5149:1;5142:31;5192:4;5189:1;5182:15;5216:4;5213:1;5206:15;5414:128;5481:9;;;5502:11;;;5499:37;;;5516:18;;:::i;5547:127::-;5608:10;5603:3;5599:20;5596:1;5589:31;5639:4;5636:1;5629:15;5663:4;5660:1;5653:15"},"methodIdentifiers":{"addValidator(address)":"4d238c8e","getValidators()":"b7ab4db5","hasSupermajority(uint256)":"3e99d941","isValidator(address)":"facd743b","removeValidator(address)":"40a141ff","validateSignature(bytes32,bytes)":"333daf92","validateUniqueSignatures(bytes32,bytes[])":"7947c3fa","validatorsCount()":"ed612f8c"}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"validators\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"addValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getValidators\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"count\",\"type\":\"uint256\"}],\"name\":\"hasSupermajority\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"isValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"removeValidator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethSignedMessageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes\",\"name\":\"signature\",\"type\":\"bytes\"}],\"name\":\"validateSignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"ethSignedMessageHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes[]\",\"name\":\"signatures\",\"type\":\"bytes[]\"}],\"name\":\"validateUniqueSignatures\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"validatorsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ECDSAInvalidSignature()\":[{\"details\":\"The signature derives the `address(0)`.\"}],\"ECDSAInvalidSignatureLength(uint256)\":[{\"details\":\"The signature has an invalid length.\"}],\"ECDSAInvalidSignatureS(bytes32)\":[{\"details\":\"The signature has an S value that is in the upper half order.\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/ValidatorManager.sol\":\"ValidatorManager\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"@openzeppelin/contracts/utils/cryptography/ECDSA.sol\":{\"keccak256\":\"0xeed0a08b0b091f528356cbc7245891a4c748682d4f6a18055e8e6ca77d12a6cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba80ba06c8e6be852847e4c5f4492cef801feb6558ae09ed705ff2e04ea8b13c\",\"dweb:/ipfs/QmXRJDv3xHLVQCVXg1ZvR35QS9sij5y9NDWYzMfUfAdTHF\"]},\"@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol\":{\"keccak256\":\"0xba333517a3add42cd35fe877656fc3dfcc9de53baa4f3aabbd6d12a92e4ea435\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2ceacff44c0fdc81e48e0e0b1db87a2076d3c1fb497341de077bf1da9f6b406c\",\"dweb:/ipfs/QmRUo1muMRAewxrKQ7TkXUtknyRoR57AyEkoPpiuZQ8FzX\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"@openzeppelin/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x86c1470cbfd878491e5de030072b647352d36bd27122cffb928970b1945282aa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ad85dd393ee0a1917c57046abc5155f51f77844b2c6a42c05c1b8dd26d6ff3c1\",\"dweb:/ipfs/QmNqYc8To2NdnpP6E1tGz7t6A7beuENde5yovwov5pW1fA\"]},\"contracts/ValidatorManager.sol\":{\"keccak256\":\"0x0acef7135c347e0865f2e4f00c13f9597e77ac5515fd0f466c11561c0d9ea8dc\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://0d054288d7b03723efac671990572af607cd82c4b61dd3e05a31cfabe18b3b1d\",\"dweb:/ipfs/Qmb9M8pRDid6VJxsPidC5qcVsif5Yuw5pbA8r4hfMMdxYs\"]}},\"version\":1}"}},"hardhat/console.sol":{"console":{"abi":[],"evm":{"bytecode":{"functionDebugData":{},"generatedSources":[],"linkReferences":{},"object":"60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH1 0x56 PUSH1 0x37 PUSH1 0xB DUP3 DUP3 DUP3 CODECOPY DUP1 MLOAD PUSH1 0x0 BYTE PUSH1 0x73 EQ PUSH1 0x2A JUMPI PUSH4 0x4E487B71 PUSH1 0xE0 SHL 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 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:20:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;66:68934:20;;;;;;;;;;;;;;;;;"},"deployedBytecode":{"functionDebugData":{},"generatedSources":[],"immutableReferences":{},"linkReferences":{},"object":"73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033","opcodes":"PUSH20 0x0 ADDRESS EQ PUSH1 0x80 PUSH1 0x40 MSTORE PUSH1 0x0 DUP1 REVERT INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xB9 0xAB 0xBE 0xC7 CALLCODE 0xAC 0x4B 0xF 0xB6 MSIZE CALLER NUMBER PUSH17 0xFBBA1005D263A7FE8A41F450FEB4871B76 PUSH13 0xAD64736F6C6343000814003300 ","sourceMap":"66:68934:20:-:0;;;;;;;;"},"methodIdentifiers":{}},"metadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"hardhat/console.sol\":\"console\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"hardhat/console.sol\":{\"keccak256\":\"0x7434453e6d3b7d0e5d0eb7846ffdbc27f0ccf3b163591263739b628074dc103a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://49355f780520494d1d5a0f01858385e51bb5280ce0ecfb960f16995065dca395\",\"dweb:/ipfs/QmSwJ6C5QLz6xKeQZS8wbwjU1KxRFTYfwbGmtzisd5sRW4\"]}},\"version\":1}"}}}}} \ No newline at end of file diff --git a/products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json b/products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/Bridged.sol/Bridged.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/Bridged.sol/Bridged.json b/products/bridge/artifacts/contracts/Bridged.sol/Bridged.json deleted file mode 100644 index 05ca409de..000000000 --- a/products/bridge/artifacts/contracts/Bridged.sol/Bridged.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Bridged", - "sourceName": "contracts/Bridged.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "dispatched", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Relayer", - "name": "relayer", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "queried", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json b/products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/Collector.sol/Collector.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/Collector.sol/Collector.json b/products/bridge/artifacts/contracts/Collector.sol/Collector.json deleted file mode 100644 index 0ea2c47b2..000000000 --- a/products/bridge/artifacts/contracts/Collector.sol/Collector.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Collector", - "sourceName": "contracts/Collector.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "contract ValidatorManager", - "name": "_validatorManager", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "Echoed", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "hash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "echo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b5060405161037338038061037383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102e0806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json deleted file mode 100644 index 4b68032bc..000000000 --- a/products/bridge/artifacts/contracts/ERC20Bridge.sol/BridgedERC20.json +++ /dev/null @@ -1,407 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "BridgedERC20", - "sourceName": "contracts/ERC20Bridge.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "name_", - "type": "string" - }, - { - "internalType": "string", - "name": "symbol_", - "type": "string" - }, - { - "internalType": "address", - "name": "bridge_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000de138038062000de18339810160408190526200003491620002c2565b82826003620000448382620003de565b506004620000538282620003de565b5050600580546001600160a01b0319166001600160a01b038416179055506200007f336103e862000088565b505050620004d2565b6001600160a01b038216620000b85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000c660008383620000ca565b5050565b6001600160a01b038316620000f9578060026000828254620000ed9190620004aa565b909155506200016d9050565b6001600160a01b038316600090815260208190526040902054818110156200014e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000af565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200018b57600280548290039055620001aa565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001f091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022557600080fd5b81516001600160401b0380821115620002425762000242620001fd565b604051601f8301601f19908116603f011681019082821181831017156200026d576200026d620001fd565b816040528381526020925086838588010111156200028a57600080fd5b600091505b83821015620002ae57858201830151818301840152908201906200028f565b600093810190920192909252949350505050565b600080600060608486031215620002d857600080fd5b83516001600160401b0380821115620002f057600080fd5b620002fe8783880162000213565b945060208601519150808211156200031557600080fd5b50620003248682870162000213565b604086015190935090506001600160a01b03811681146200034457600080fd5b809150509250925092565b600181811c908216806200036457607f821691505b6020821081036200038557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d957600081815260208120601f850160051c81016020861015620003b45750805b601f850160051c820191505b81811015620003d557828155600101620003c0565b5050505b505050565b81516001600160401b03811115620003fa57620003fa620001fd565b62000412816200040b84546200034f565b846200038b565b602080601f8311600181146200044a5760008415620004315750858301515b600019600386901b1c1916600185901b178555620003d5565b600085815260208120601f198616915b828110156200047b578886015182559484019460019091019084016200045a565b50858210156200049a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004cc57634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004e26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json deleted file mode 100644 index 1a49533a4..000000000 --- a/products/bridge/artifacts/contracts/ERC20Bridge.sol/ERC20Bridge.json +++ /dev/null @@ -1,230 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ERC20Bridge", - "sourceName": "contracts/ERC20Bridge.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "Started", - "type": "event" - }, - { - "anonymous": false, - "inputs": [], - "name": "Succeeded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "bridge", - "outputs": [ - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "dispatched", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "token", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "exit", - "outputs": [ - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "res", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "finish", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Relayer", - "name": "relayer", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "queried", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610c2b806100206000396000f3fe6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json b/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json deleted file mode 100644 index daea8b278..000000000 --- a/products/bridge/artifacts/contracts/ERC20Bridge.sol/MyToken.json +++ /dev/null @@ -1,397 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "MyToken", - "sourceName": "contracts/ERC20Bridge.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "bridge_", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "allowance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientAllowance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "ERC20InsufficientBalance", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "approver", - "type": "address" - } - ], - "name": "ERC20InvalidApprover", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "receiver", - "type": "address" - } - ], - "name": "ERC20InvalidReceiver", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "sender", - "type": "address" - } - ], - "name": "ERC20InvalidSender", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "ERC20InvalidSpender", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "address", - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "account", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "burnFrom", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "decimals", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "name", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "symbol", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000d1838038062000d1883398101604081905262000034916200023e565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b815250828282816003908162000084919062000315565b50600462000093828262000315565b5050600580546001600160a01b0319166001600160a01b03841617905550620000bf336103e8620000c9565b5050505062000409565b6001600160a01b038216620000f95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b62000107600083836200010b565b5050565b6001600160a01b0383166200013a5780600260008282546200012e9190620003e1565b90915550620001ae9050565b6001600160a01b038316600090815260208190526040902054818110156200018f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001cc57600280548290039055620001eb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023191815260200190565b60405180910390a3505050565b6000602082840312156200025157600080fd5b81516001600160a01b03811681146200026957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029b57607f821691505b602082108103620002bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031057600081815260208120601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b0381111562000331576200033162000270565b620003498162000342845462000286565b84620002c2565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200040357634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json b/products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/Relayer.sol/Relayer.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/Relayer.sol/Relayer.json b/products/bridge/artifacts/contracts/Relayer.sol/Relayer.json deleted file mode 100644 index c3de5dd56..000000000 --- a/products/bridge/artifacts/contracts/Relayer.sol/Relayer.json +++ /dev/null @@ -1,346 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Relayer", - "sourceName": "contracts/Relayer.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "contract ValidatorManager", - "name": "_validatorManager", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "Create2EmptyBytecode", - "type": "error" - }, - { - "inputs": [], - "name": "Create2FailedDeployment", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "balance", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "needed", - "type": "uint256" - } - ], - "name": "Create2InsufficientBalance", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "callback", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "response", - "type": "bytes" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "Dispatched", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "call", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bool", - "name": "readonly", - "type": "bool" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "callback", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "Relayed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "call", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "response", - "type": "bytes" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "Resumed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "twin", - "type": "address" - } - ], - "name": "TwinDeployment", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "bytecode", - "type": "bytes" - } - ], - "name": "deployTwin", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - }, - { - "internalType": "bytes4", - "name": "callback", - "type": "bytes4" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes[]", - "name": "signatures", - "type": "bytes[]" - } - ], - "name": "dispatch", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "query", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - }, - { - "internalType": "bool", - "name": "readonly", - "type": "bool" - }, - { - "internalType": "bytes4", - "name": "callback", - "type": "bytes4" - } - ], - "name": "relay", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "caller", - "type": "address" - }, - { - "internalType": "bytes4", - "name": "callback", - "type": "bytes4" - }, - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - }, - { - "internalType": "bytes[]", - "name": "signatures", - "type": "bytes[]" - } - ], - "name": "resume", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506040516112f03803806112f083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61125d806100936000396000f3fe60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/Test.sol/Target.dbg.json b/products/bridge/artifacts/contracts/Test.sol/Target.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/Test.sol/Target.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/Test.sol/Target.json b/products/bridge/artifacts/contracts/Test.sol/Target.json deleted file mode 100644 index b1a058985..000000000 --- a/products/bridge/artifacts/contracts/Test.sol/Target.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Target", - "sourceName": "contracts/Test.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "num", - "type": "uint256" - } - ], - "name": "test", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b506101f9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json b/products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/Test.sol/Twin.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/Test.sol/Twin.json b/products/bridge/artifacts/contracts/Test.sol/Twin.json deleted file mode 100644 index fd9b025fd..000000000 --- a/products/bridge/artifacts/contracts/Test.sol/Twin.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "Twin", - "sourceName": "contracts/Test.sol", - "abi": [ - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "", - "type": "string" - } - ], - "name": "Failed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "Succeeded", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "dispatched", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "res", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "nonce", - "type": "uint256" - } - ], - "name": "finish", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Relayer", - "name": "relayer", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "bytes", - "name": "call", - "type": "bytes" - } - ], - "name": "queried", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - }, - { - "internalType": "uint256", - "name": "num", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "readonly", - "type": "bool" - } - ], - "name": "start", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "bytecode": "0x608060405234801561001057600080fd5b50610b33806100206000396000f3fe60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033", - "deployedBytecode": "0x60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json b/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json b/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json deleted file mode 100644 index 8bf408501..000000000 --- a/products/bridge/artifacts/contracts/ValidatorManager.sol/ValidatorManager.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "ValidatorManager", - "sourceName": "contracts/ValidatorManager.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address[]", - "name": "validators", - "type": "address[]" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "ECDSAInvalidSignature", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "ECDSAInvalidSignatureLength", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "s", - "type": "bytes32" - } - ], - "name": "ECDSAInvalidSignatureS", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "addValidator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getValidators", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "count", - "type": "uint256" - } - ], - "name": "hasSupermajority", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "isValidator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "user", - "type": "address" - } - ], - "name": "removeValidator", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "ethSignedMessageHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "signature", - "type": "bytes" - } - ], - "name": "validateSignature", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "ethSignedMessageHash", - "type": "bytes32" - }, - { - "internalType": "bytes[]", - "name": "signatures", - "type": "bytes[]" - } - ], - "name": "validateUniqueSignatures", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "validatorsCount", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - } - ], - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000c5a38038062000c5a833981016040819052620000349162000143565b60005b815181101562000084576200006e8282815181106200005a576200005a62000215565b60200260200101516200008c60201b60201c565b50806200007b816200022b565b91505062000037565b505062000253565b60006200009a8183620000a0565b92915050565b6000620000b7836001600160a01b038416620000be565b9392505050565b600081815260018301602052604081205462000107575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200009a565b5060006200009a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200013e57600080fd5b919050565b600060208083850312156200015757600080fd5b82516001600160401b03808211156200016f57600080fd5b818501915085601f8301126200018457600080fd5b81518181111562000199576200019962000110565b8060051b604051601f19603f83011681018181108582111715620001c157620001c162000110565b604052918252848201925083810185019188831115620001e057600080fd5b938501935b828510156200020957620001f98562000126565b84529385019392850192620001e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200024c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6109f780620002636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/artifacts/hardhat/console.sol/console.dbg.json b/products/bridge/artifacts/hardhat/console.sol/console.dbg.json deleted file mode 100644 index 25f298297..000000000 --- a/products/bridge/artifacts/hardhat/console.sol/console.dbg.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "_format": "hh-sol-dbg-1", - "buildInfo": "../../build-info/204a69f2da9dec65e0ea77918b488e3d.json" -} diff --git a/products/bridge/artifacts/hardhat/console.sol/console.json b/products/bridge/artifacts/hardhat/console.sol/console.json deleted file mode 100644 index 48515ec2e..000000000 --- a/products/bridge/artifacts/hardhat/console.sol/console.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "console", - "sourceName": "hardhat/console.sol", - "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b9abbec7f2ac4b0fb659334370fbba1005d263a7fe8a41f450feb4871b766cad64736f6c63430008140033", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/products/bridge/cache/solidity-files-cache.json b/products/bridge/cache/solidity-files-cache.json deleted file mode 100644 index 5734bc7bc..000000000 --- a/products/bridge/cache/solidity-files-cache.json +++ /dev/null @@ -1,1114 +0,0 @@ -{ - "_format": "hh-sol-cache-2", - "files": { - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Bridged.sol": { - "lastModificationDate": 1700055175733, - "contentHash": "7a13502b799573edd86f1030b5c5e30e", - "sourceName": "contracts/Bridged.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [ - "hardhat/console.sol", - "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "./Relayer.sol" - ], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Bridged"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Relayer.sol": { - "lastModificationDate": 1700055175734, - "contentHash": "309be6db2dd1d097c39462013a8f8d11", - "sourceName": "contracts/Relayer.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [ - "hardhat/console.sol", - "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "@openzeppelin/contracts/utils/Create2.sol", - "./ValidatorManager.sol", - "./Bridged.sol" - ], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Relayer"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/hardhat/console.sol": { - "lastModificationDate": 1700055250606, - "contentHash": "896f68942c3a20e9ae3c3c5bfd3add54", - "sourceName": "hardhat/console.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": [">=0.4.22 <0.9.0"], - "artifacts": ["console"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": { - "lastModificationDate": 1700055252473, - "contentHash": "f0cedd674b4863ee90d1521a92ab82df", - "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Initializable"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/ValidatorManager.sol": { - "lastModificationDate": 1700055175735, - "contentHash": "4f41f53a39782681d4673b50cc13e5ab", - "sourceName": "contracts/ValidatorManager.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [ - "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol" - ], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ValidatorManager"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/Create2.sol": { - "lastModificationDate": 1700055252388, - "contentHash": "30964d662b27a7894b1cf10058dc8d6b", - "sourceName": "@openzeppelin/contracts/utils/Create2.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Create2"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { - "lastModificationDate": 1700055252478, - "contentHash": "9e5eec59eaffa554d6cca561dcb914eb", - "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["../Strings.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["MessageHashUtils"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "lastModificationDate": 1700055252390, - "contentHash": "b96e0d7a3c2b185342c7d083d765b61f", - "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ECDSA"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { - "lastModificationDate": 1700055252391, - "contentHash": "99b208f3f285702e96243d329411c5de", - "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["EnumerableSet"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1700055252495, - "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["./math/Math.sol", "./math/SignedMath.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Strings"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "lastModificationDate": 1700055252476, - "contentHash": "718fa8ba0ff269c92e364c1429d9de57", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Math"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - "lastModificationDate": 1700055252494, - "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["SignedMath"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Test.sol": { - "lastModificationDate": 1700055175735, - "contentHash": "4f0475727a1565c4e64077ee1c4bcbc4", - "sourceName": "contracts/Test.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["./Bridged.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Target", "Twin"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/ERC20Bridge.sol": { - "lastModificationDate": 1700055175734, - "contentHash": "a7077ed111f36fc456151b64d88d9ffc", - "sourceName": "contracts/ERC20Bridge.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [ - "./Bridged.sol", - "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol" - ], - "versionPragmas": ["^0.8.20"], - "artifacts": ["BridgedERC20", "ERC20Bridge", "MyToken"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1700055252399, - "contentHash": "c6375ef25e84c90b3d15f9ec4eef218f", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [ - "./IERC20.sol", - "./extensions/IERC20Metadata.sol", - "../../utils/Context.sol", - "../../interfaces/draft-IERC6093.sol" - ], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ERC20"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol": { - "lastModificationDate": 1700055252401, - "contentHash": "273d8d24b06f67207dd5f35c3a0c1086", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["../ERC20.sol", "../../../utils/Context.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ERC20Burnable"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1700055252436, - "contentHash": "5517c8678c18eb1a8ba58810e7ca39ca", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["IERC20"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1700055252388, - "contentHash": "01c847e2af51f468cb66d9ed83bc3cec", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Context"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1700055252436, - "contentHash": "4c02fa6f7ae7b6c289cef80424f0c875", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["../IERC20.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["IERC20Metadata"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { - "lastModificationDate": 1700055252389, - "contentHash": "4aefc698f77ecbace7f401257dfe182d", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["IERC1155Errors", "IERC20Errors", "IERC721Errors"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/products/bridge/contracts/Collector.sol": { - "lastModificationDate": 1700055175734, - "contentHash": "e24f4781815d2198806ae6cb792e6a50", - "sourceName": "contracts/Collector.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["./ValidatorManager.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Collector"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/hardhat@2.19.0_ts-node@10.9.1_typescript@4.9.5/node_modules/hardhat/console.sol": { - "lastModificationDate": 1700055411494, - "contentHash": "896f68942c3a20e9ae3c3c5bfd3add54", - "sourceName": "hardhat/console.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": [">=0.4.22 <0.9.0"], - "artifacts": ["console"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/proxy/utils/Initializable.sol": { - "lastModificationDate": 1700055412337, - "contentHash": "f0cedd674b4863ee90d1521a92ab82df", - "sourceName": "@openzeppelin/contracts/proxy/utils/Initializable.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Initializable"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/Create2.sol": { - "lastModificationDate": 1700055412320, - "contentHash": "30964d662b27a7894b1cf10058dc8d6b", - "sourceName": "@openzeppelin/contracts/utils/Create2.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Create2"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol": { - "lastModificationDate": 1700055412337, - "contentHash": "9e5eec59eaffa554d6cca561dcb914eb", - "sourceName": "@openzeppelin/contracts/utils/cryptography/MessageHashUtils.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["../Strings.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["MessageHashUtils"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/cryptography/ECDSA.sol": { - "lastModificationDate": 1700055412320, - "contentHash": "b96e0d7a3c2b185342c7d083d765b61f", - "sourceName": "@openzeppelin/contracts/utils/cryptography/ECDSA.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ECDSA"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol": { - "lastModificationDate": 1700055412321, - "contentHash": "99b208f3f285702e96243d329411c5de", - "sourceName": "@openzeppelin/contracts/utils/structs/EnumerableSet.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["EnumerableSet"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/Strings.sol": { - "lastModificationDate": 1700055412340, - "contentHash": "ba57ff4ddf1d9cae9d2009792795b7f6", - "sourceName": "@openzeppelin/contracts/utils/Strings.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["./math/Math.sol", "./math/SignedMath.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Strings"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/math/SignedMath.sol": { - "lastModificationDate": 1700055412340, - "contentHash": "b6c6bdc7aaca4fe5b680760a72e09d3e", - "sourceName": "@openzeppelin/contracts/utils/math/SignedMath.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["SignedMath"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/math/Math.sol": { - "lastModificationDate": 1700055412337, - "contentHash": "718fa8ba0ff269c92e364c1429d9de57", - "sourceName": "@openzeppelin/contracts/utils/math/Math.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Math"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/ERC20.sol": { - "lastModificationDate": 1700055412323, - "contentHash": "c6375ef25e84c90b3d15f9ec4eef218f", - "sourceName": "@openzeppelin/contracts/token/ERC20/ERC20.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [ - "./IERC20.sol", - "./extensions/IERC20Metadata.sol", - "../../utils/Context.sol", - "../../interfaces/draft-IERC6093.sol" - ], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ERC20"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol": { - "lastModificationDate": 1700055412323, - "contentHash": "273d8d24b06f67207dd5f35c3a0c1086", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["../ERC20.sol", "../../../utils/Context.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["ERC20Burnable"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/interfaces/draft-IERC6093.sol": { - "lastModificationDate": 1700055412320, - "contentHash": "4aefc698f77ecbace7f401257dfe182d", - "sourceName": "@openzeppelin/contracts/interfaces/draft-IERC6093.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["IERC1155Errors", "IERC20Errors", "IERC721Errors"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/utils/Context.sol": { - "lastModificationDate": 1700055412319, - "contentHash": "01c847e2af51f468cb66d9ed83bc3cec", - "sourceName": "@openzeppelin/contracts/utils/Context.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["Context"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol": { - "lastModificationDate": 1700055412332, - "contentHash": "5517c8678c18eb1a8ba58810e7ca39ca", - "sourceName": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": [], - "versionPragmas": ["^0.8.20"], - "artifacts": ["IERC20"] - }, - "/Users/tfr/Documents/Projects/dirac.up/zilliqa-developer/node_modules/.pnpm/@openzeppelin+contracts@5.0.0/node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol": { - "lastModificationDate": 1700055412332, - "contentHash": "4c02fa6f7ae7b6c289cef80424f0c875", - "sourceName": "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol", - "solcConfig": { - "version": "0.8.20", - "settings": { - "optimizer": { - "enabled": true, - "runs": 200 - }, - "evmVersion": "paris", - "outputSelection": { - "*": { - "*": [ - "abi", - "evm.bytecode", - "evm.deployedBytecode", - "evm.methodIdentifiers", - "metadata" - ], - "": ["ast"] - } - } - } - }, - "imports": ["../IERC20.sol"], - "versionPragmas": ["^0.8.20"], - "artifacts": ["IERC20Metadata"] - } - } -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/index.ts deleted file mode 100644 index a45cf9e1b..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as interfaces from "./interfaces"; -export type { interfaces }; -import type * as proxy from "./proxy"; -export type { proxy }; -import type * as token from "./token"; -export type { token }; -import type * as utils from "./utils"; -export type { utils }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts deleted file mode 100644 index 959e42d83..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface IERC1155ErrorsInterface extends Interface {} - -export interface IERC1155Errors extends BaseContract { - connect(runner?: ContractRunner | null): IERC1155Errors; - waitForDeployment(): Promise; - - interface: IERC1155ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts deleted file mode 100644 index 04699221f..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface IERC20ErrorsInterface extends Interface {} - -export interface IERC20Errors extends BaseContract { - connect(runner?: ContractRunner | null): IERC20Errors; - waitForDeployment(): Promise; - - interface: IERC20ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts deleted file mode 100644 index 39b0d2b51..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface IERC721ErrorsInterface extends Interface {} - -export interface IERC721Errors extends BaseContract { - connect(runner?: ContractRunner | null): IERC721Errors; - waitForDeployment(): Promise; - - interface: IERC721ErrorsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts deleted file mode 100644 index 9415fdf59..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { IERC1155Errors } from "./IERC1155Errors"; -export type { IERC20Errors } from "./IERC20Errors"; -export type { IERC721Errors } from "./IERC721Errors"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts deleted file mode 100644 index d70b374ba..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/interfaces/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as draftIerc6093Sol from "./draft-IERC6093.sol"; -export type { draftIerc6093Sol }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts deleted file mode 100644 index 74cdc5faa..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as utils from "./utils"; -export type { utils }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts deleted file mode 100644 index b449ea2cd..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/Initializable.ts +++ /dev/null @@ -1,105 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - FunctionFragment, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, -} from "../../../../common"; - -export interface InitializableInterface extends Interface { - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Initializable extends BaseContract { - connect(runner?: ContractRunner | null): Initializable; - waitForDeployment(): Promise; - - interface: InitializableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts deleted file mode 100644 index 5da73d032..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/proxy/utils/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Initializable } from "./Initializable"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts deleted file mode 100644 index 46736897d..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/ERC20.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface ERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC20 extends BaseContract { - connect(runner?: ContractRunner | null): ERC20; - waitForDeployment(): Promise; - - interface: ERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts deleted file mode 100644 index d800ff34b..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/IERC20.ts +++ /dev/null @@ -1,262 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../common"; - -export interface IERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20 extends BaseContract { - connect(runner?: ContractRunner | null): IERC20; - waitForDeployment(): Promise; - - interface: IERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts deleted file mode 100644 index 57787d6ce..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.ts +++ /dev/null @@ -1,313 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface ERC20BurnableInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "burn" - | "burnFrom" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "burn", values: [BigNumberish]): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC20Burnable extends BaseContract { - connect(runner?: ContractRunner | null): ERC20Burnable; - waitForDeployment(): Promise; - - interface: ERC20BurnableInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - burn: TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; - - burnFrom: TypedContractMethod< - [account: AddressLike, value: BigNumberish], - [void], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn" - ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "burnFrom" - ): TypedContractMethod< - [account: AddressLike, value: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts deleted file mode 100644 index 6b5093537..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.ts +++ /dev/null @@ -1,286 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../../../../common"; - -export interface IERC20MetadataInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "decimals" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface IERC20Metadata extends BaseContract { - connect(runner?: ContractRunner | null): IERC20Metadata; - waitForDeployment(): Promise; - - interface: IERC20MetadataInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - decimals: TypedContractMethod<[], [bigint], "view">; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts deleted file mode 100644 index 96ee12e98..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ERC20Burnable } from "./ERC20Burnable"; -export type { IERC20Metadata } from "./IERC20Metadata"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts deleted file mode 100644 index cc196974a..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/ERC20/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as extensions from "./extensions"; -export type { extensions }; -export type { ERC20 } from "./ERC20"; -export type { IERC20 } from "./IERC20"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts deleted file mode 100644 index 5c4062a9c..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/token/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as erc20 from "./ERC20"; -export type { erc20 }; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts deleted file mode 100644 index ff62c7b82..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/Create2.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../common"; - -export interface Create2Interface extends Interface {} - -export interface Create2 extends BaseContract { - connect(runner?: ContractRunner | null): Create2; - waitForDeployment(): Promise; - - interface: Create2Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts deleted file mode 100644 index 08a73eb05..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/Strings.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../common"; - -export interface StringsInterface extends Interface {} - -export interface Strings extends BaseContract { - connect(runner?: ContractRunner | null): Strings; - waitForDeployment(): Promise; - - interface: StringsInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts deleted file mode 100644 index 433b59f51..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/ECDSA.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface ECDSAInterface extends Interface {} - -export interface ECDSA extends BaseContract { - connect(runner?: ContractRunner | null): ECDSA; - waitForDeployment(): Promise; - - interface: ECDSAInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts deleted file mode 100644 index 624996257..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/cryptography/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { ECDSA } from "./ECDSA"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts deleted file mode 100644 index 3251ce949..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as cryptography from "./cryptography"; -export type { cryptography }; -import type * as math from "./math"; -export type { math }; -export type { Create2 } from "./Create2"; -export type { Strings } from "./Strings"; diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts deleted file mode 100644 index cfc37039e..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/Math.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - FunctionFragment, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, -} from "../../../../common"; - -export interface MathInterface extends Interface {} - -export interface Math extends BaseContract { - connect(runner?: ContractRunner | null): Math; - waitForDeployment(): Promise; - - interface: MathInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - getFunction( - key: string | FunctionFragment - ): T; - - filters: {}; -} diff --git a/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts b/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts deleted file mode 100644 index 48a816e85..000000000 --- a/products/bridge/typechain-types/@openzeppelin/contracts/utils/math/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Math } from "./Math"; diff --git a/products/bridge/typechain-types/@openzeppelin/index.ts b/products/bridge/typechain-types/@openzeppelin/index.ts deleted file mode 100644 index a11e4ca29..000000000 --- a/products/bridge/typechain-types/@openzeppelin/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as contracts from "./contracts"; -export type { contracts }; diff --git a/products/bridge/typechain-types/common.ts b/products/bridge/typechain-types/common.ts deleted file mode 100644 index 56b5f21e9..000000000 --- a/products/bridge/typechain-types/common.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - FunctionFragment, - Typed, - EventFragment, - ContractTransaction, - ContractTransactionResponse, - DeferredTopicFilter, - EventLog, - TransactionRequest, - LogDescription, -} from "ethers"; - -export interface TypedDeferredTopicFilter<_TCEvent extends TypedContractEvent> - extends DeferredTopicFilter {} - -export interface TypedContractEvent< - InputTuple extends Array = any, - OutputTuple extends Array = any, - OutputObject = any -> { - (...args: Partial): TypedDeferredTopicFilter< - TypedContractEvent - >; - name: string; - fragment: EventFragment; - getFragment(...args: Partial): EventFragment; -} - -type __TypechainAOutputTuple = T extends TypedContractEvent< - infer _U, - infer W -> - ? W - : never; -type __TypechainOutputObject = T extends TypedContractEvent< - infer _U, - infer _W, - infer V -> - ? V - : never; - -export interface TypedEventLog - extends Omit { - args: __TypechainAOutputTuple & __TypechainOutputObject; -} - -export interface TypedLogDescription - extends Omit { - args: __TypechainAOutputTuple & __TypechainOutputObject; -} - -export type TypedListener = ( - ...listenerArg: [ - ...__TypechainAOutputTuple, - TypedEventLog, - ...undefined[] - ] -) => void; - -export type MinEthersFactory = { - deploy(...a: ARGS[]): Promise; -}; - -export type GetContractTypeFromFactory = F extends MinEthersFactory< - infer C, - any -> - ? C - : never; -export type GetARGsTypeFromFactory = F extends MinEthersFactory - ? Parameters - : never; - -export type StateMutability = "nonpayable" | "payable" | "view"; - -export type BaseOverrides = Omit; -export type NonPayableOverrides = Omit< - BaseOverrides, - "value" | "blockTag" | "enableCcipRead" ->; -export type PayableOverrides = Omit< - BaseOverrides, - "blockTag" | "enableCcipRead" ->; -export type ViewOverrides = Omit; -export type Overrides = S extends "nonpayable" - ? NonPayableOverrides - : S extends "payable" - ? PayableOverrides - : ViewOverrides; - -export type PostfixOverrides, S extends StateMutability> = - | A - | [...A, Overrides]; -export type ContractMethodArgs< - A extends Array, - S extends StateMutability -> = PostfixOverrides<{ [I in keyof A]-?: A[I] | Typed }, S>; - -export type DefaultReturnType = R extends Array ? R[0] : R; - -// export interface ContractMethod = Array, R = any, D extends R | ContractTransactionResponse = R | ContractTransactionResponse> { -export interface TypedContractMethod< - A extends Array = Array, - R = any, - S extends StateMutability = "payable" -> { - (...args: ContractMethodArgs): S extends "view" - ? Promise> - : Promise; - - name: string; - - fragment: FunctionFragment; - - getFragment(...args: ContractMethodArgs): FunctionFragment; - - populateTransaction( - ...args: ContractMethodArgs - ): Promise; - staticCall( - ...args: ContractMethodArgs - ): Promise>; - send(...args: ContractMethodArgs): Promise; - estimateGas(...args: ContractMethodArgs): Promise; - staticCallResult(...args: ContractMethodArgs): Promise; -} diff --git a/products/bridge/typechain-types/contracts/Bridged.ts b/products/bridge/typechain-types/contracts/Bridged.ts deleted file mode 100644 index 13279a7c3..000000000 --- a/products/bridge/typechain-types/contracts/Bridged.ts +++ /dev/null @@ -1,162 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface BridgedInterface extends Interface { - getFunction( - nameOrSignature: "dispatched" | "initialize" | "queried" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Initialized"): EventFragment; - - encodeFunctionData( - functionFragment: "dispatched", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "queried", - values: [AddressLike, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "dispatched", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "queried", data: BytesLike): Result; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Bridged extends BaseContract { - connect(runner?: ContractRunner | null): Bridged; - waitForDeployment(): Promise; - - interface: BridgedInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - dispatched: TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "payable" - >; - - initialize: TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; - - queried: TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "dispatched" - ): TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "payable" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "queried" - ): TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - filters: { - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/Collector.ts b/products/bridge/typechain-types/contracts/Collector.ts deleted file mode 100644 index af32e4c4c..000000000 --- a/products/bridge/typechain-types/contracts/Collector.ts +++ /dev/null @@ -1,131 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface CollectorInterface extends Interface { - getFunction(nameOrSignature: "echo"): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Echoed"): EventFragment; - - encodeFunctionData( - functionFragment: "echo", - values: [BytesLike, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "echo", data: BytesLike): Result; -} - -export namespace EchoedEvent { - export type InputTuple = [hash: BytesLike, signature: BytesLike]; - export type OutputTuple = [hash: string, signature: string]; - export interface OutputObject { - hash: string; - signature: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Collector extends BaseContract { - connect(runner?: ContractRunner | null): Collector; - waitForDeployment(): Promise; - - interface: CollectorInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - echo: TypedContractMethod< - [hash: BytesLike, signature: BytesLike], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "echo" - ): TypedContractMethod< - [hash: BytesLike, signature: BytesLike], - [void], - "nonpayable" - >; - - getEvent( - key: "Echoed" - ): TypedContractEvent< - EchoedEvent.InputTuple, - EchoedEvent.OutputTuple, - EchoedEvent.OutputObject - >; - - filters: { - "Echoed(bytes32,bytes)": TypedContractEvent< - EchoedEvent.InputTuple, - EchoedEvent.OutputTuple, - EchoedEvent.OutputObject - >; - Echoed: TypedContractEvent< - EchoedEvent.InputTuple, - EchoedEvent.OutputTuple, - EchoedEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts deleted file mode 100644 index a449a17bc..000000000 --- a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/BridgedERC20.ts +++ /dev/null @@ -1,364 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface BridgedERC20Interface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "burn(uint256)" - | "burn(address,uint256)" - | "burnFrom" - | "decimals" - | "mint" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "burn(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "burn(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "burn(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "burn(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface BridgedERC20 extends BaseContract { - connect(runner?: ContractRunner | null): BridgedERC20; - waitForDeployment(): Promise; - - interface: BridgedERC20Interface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - "burn(uint256)": TypedContractMethod< - [value: BigNumberish], - [void], - "nonpayable" - >; - - "burn(address,uint256)": TypedContractMethod< - [from: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - burnFrom: TypedContractMethod< - [account: AddressLike, value: BigNumberish], - [void], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - mint: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn(uint256)" - ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "burn(address,uint256)" - ): TypedContractMethod< - [from: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "burnFrom" - ): TypedContractMethod< - [account: AddressLike, value: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts deleted file mode 100644 index 5dec8c344..000000000 --- a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/ERC20Bridge.ts +++ /dev/null @@ -1,318 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface ERC20BridgeInterface extends Interface { - getFunction( - nameOrSignature: - | "bridge" - | "dispatched" - | "exit" - | "finish" - | "initialize" - | "queried" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Failed" | "Initialized" | "Started" | "Succeeded" - ): EventFragment; - - encodeFunctionData( - functionFragment: "bridge", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "dispatched", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "exit", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "finish", - values: [boolean, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "queried", - values: [AddressLike, BytesLike] - ): string; - - decodeFunctionResult(functionFragment: "bridge", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "dispatched", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "exit", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "finish", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "queried", data: BytesLike): Result; -} - -export namespace FailedEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace StartedEvent { - export type InputTuple = [ - arg0: AddressLike, - arg1: AddressLike, - arg2: BigNumberish - ]; - export type OutputTuple = [arg0: string, arg1: string, arg2: bigint]; - export interface OutputObject { - arg0: string; - arg1: string; - arg2: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SucceededEvent { - export type InputTuple = []; - export type OutputTuple = []; - export interface OutputObject {} - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface ERC20Bridge extends BaseContract { - connect(runner?: ContractRunner | null): ERC20Bridge; - waitForDeployment(): Promise; - - interface: ERC20BridgeInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - bridge: TypedContractMethod< - [token: AddressLike, owner: AddressLike, value: BigNumberish], - [bigint], - "nonpayable" - >; - - dispatched: TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "payable" - >; - - exit: TypedContractMethod< - [token: AddressLike, owner: AddressLike, value: BigNumberish], - [bigint], - "nonpayable" - >; - - finish: TypedContractMethod< - [success: boolean, res: BytesLike, nonce: BigNumberish], - [void], - "nonpayable" - >; - - initialize: TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; - - queried: TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "bridge" - ): TypedContractMethod< - [token: AddressLike, owner: AddressLike, value: BigNumberish], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "dispatched" - ): TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "payable" - >; - getFunction( - nameOrSignature: "exit" - ): TypedContractMethod< - [token: AddressLike, owner: AddressLike, value: BigNumberish], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "finish" - ): TypedContractMethod< - [success: boolean, res: BytesLike, nonce: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "queried" - ): TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - - getEvent( - key: "Failed" - ): TypedContractEvent< - FailedEvent.InputTuple, - FailedEvent.OutputTuple, - FailedEvent.OutputObject - >; - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Started" - ): TypedContractEvent< - StartedEvent.InputTuple, - StartedEvent.OutputTuple, - StartedEvent.OutputObject - >; - getEvent( - key: "Succeeded" - ): TypedContractEvent< - SucceededEvent.InputTuple, - SucceededEvent.OutputTuple, - SucceededEvent.OutputObject - >; - - filters: { - "Failed(string)": TypedContractEvent< - FailedEvent.InputTuple, - FailedEvent.OutputTuple, - FailedEvent.OutputObject - >; - Failed: TypedContractEvent< - FailedEvent.InputTuple, - FailedEvent.OutputTuple, - FailedEvent.OutputObject - >; - - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Started(address,address,uint256)": TypedContractEvent< - StartedEvent.InputTuple, - StartedEvent.OutputTuple, - StartedEvent.OutputObject - >; - Started: TypedContractEvent< - StartedEvent.InputTuple, - StartedEvent.OutputTuple, - StartedEvent.OutputObject - >; - - "Succeeded()": TypedContractEvent< - SucceededEvent.InputTuple, - SucceededEvent.OutputTuple, - SucceededEvent.OutputObject - >; - Succeeded: TypedContractEvent< - SucceededEvent.InputTuple, - SucceededEvent.OutputTuple, - SucceededEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts deleted file mode 100644 index de930c124..000000000 --- a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/MyToken.ts +++ /dev/null @@ -1,364 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface MyTokenInterface extends Interface { - getFunction( - nameOrSignature: - | "allowance" - | "approve" - | "balanceOf" - | "burn(uint256)" - | "burn(address,uint256)" - | "burnFrom" - | "decimals" - | "mint" - | "name" - | "symbol" - | "totalSupply" - | "transfer" - | "transferFrom" - ): FunctionFragment; - - getEvent(nameOrSignatureOrTopic: "Approval" | "Transfer"): EventFragment; - - encodeFunctionData( - functionFragment: "allowance", - values: [AddressLike, AddressLike] - ): string; - encodeFunctionData( - functionFragment: "approve", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "balanceOf", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "burn(uint256)", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "burn(address,uint256)", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "burnFrom", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "decimals", values?: undefined): string; - encodeFunctionData( - functionFragment: "mint", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData(functionFragment: "name", values?: undefined): string; - encodeFunctionData(functionFragment: "symbol", values?: undefined): string; - encodeFunctionData( - functionFragment: "totalSupply", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "transfer", - values: [AddressLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "transferFrom", - values: [AddressLike, AddressLike, BigNumberish] - ): string; - - decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "burn(uint256)", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "burn(address,uint256)", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "burnFrom", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "name", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "totalSupply", - data: BytesLike - ): Result; - decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result; - decodeFunctionResult( - functionFragment: "transferFrom", - data: BytesLike - ): Result; -} - -export namespace ApprovalEvent { - export type InputTuple = [ - owner: AddressLike, - spender: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [owner: string, spender: string, value: bigint]; - export interface OutputObject { - owner: string; - spender: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TransferEvent { - export type InputTuple = [ - from: AddressLike, - to: AddressLike, - value: BigNumberish - ]; - export type OutputTuple = [from: string, to: string, value: bigint]; - export interface OutputObject { - from: string; - to: string; - value: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface MyToken extends BaseContract { - connect(runner?: ContractRunner | null): MyToken; - waitForDeployment(): Promise; - - interface: MyTokenInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - allowance: TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - - approve: TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - balanceOf: TypedContractMethod<[account: AddressLike], [bigint], "view">; - - "burn(uint256)": TypedContractMethod< - [value: BigNumberish], - [void], - "nonpayable" - >; - - "burn(address,uint256)": TypedContractMethod< - [from: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - burnFrom: TypedContractMethod< - [account: AddressLike, value: BigNumberish], - [void], - "nonpayable" - >; - - decimals: TypedContractMethod<[], [bigint], "view">; - - mint: TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - - name: TypedContractMethod<[], [string], "view">; - - symbol: TypedContractMethod<[], [string], "view">; - - totalSupply: TypedContractMethod<[], [bigint], "view">; - - transfer: TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - transferFrom: TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "allowance" - ): TypedContractMethod< - [owner: AddressLike, spender: AddressLike], - [bigint], - "view" - >; - getFunction( - nameOrSignature: "approve" - ): TypedContractMethod< - [spender: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "balanceOf" - ): TypedContractMethod<[account: AddressLike], [bigint], "view">; - getFunction( - nameOrSignature: "burn(uint256)" - ): TypedContractMethod<[value: BigNumberish], [void], "nonpayable">; - getFunction( - nameOrSignature: "burn(address,uint256)" - ): TypedContractMethod< - [from: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "burnFrom" - ): TypedContractMethod< - [account: AddressLike, value: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "decimals" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "mint" - ): TypedContractMethod< - [to: AddressLike, amount: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "name" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "symbol" - ): TypedContractMethod<[], [string], "view">; - getFunction( - nameOrSignature: "totalSupply" - ): TypedContractMethod<[], [bigint], "view">; - getFunction( - nameOrSignature: "transfer" - ): TypedContractMethod< - [to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - getFunction( - nameOrSignature: "transferFrom" - ): TypedContractMethod< - [from: AddressLike, to: AddressLike, value: BigNumberish], - [boolean], - "nonpayable" - >; - - getEvent( - key: "Approval" - ): TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - getEvent( - key: "Transfer" - ): TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - - filters: { - "Approval(address,address,uint256)": TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - Approval: TypedContractEvent< - ApprovalEvent.InputTuple, - ApprovalEvent.OutputTuple, - ApprovalEvent.OutputObject - >; - - "Transfer(address,address,uint256)": TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - Transfer: TypedContractEvent< - TransferEvent.InputTuple, - TransferEvent.OutputTuple, - TransferEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts b/products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts deleted file mode 100644 index 16fc06889..000000000 --- a/products/bridge/typechain-types/contracts/ERC20Bridge.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { BridgedERC20 } from "./BridgedERC20"; -export type { ERC20Bridge } from "./ERC20Bridge"; -export type { MyToken } from "./MyToken"; diff --git a/products/bridge/typechain-types/contracts/Relayer.ts b/products/bridge/typechain-types/contracts/Relayer.ts deleted file mode 100644 index cb12b05b7..000000000 --- a/products/bridge/typechain-types/contracts/Relayer.ts +++ /dev/null @@ -1,405 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface RelayerInterface extends Interface { - getFunction( - nameOrSignature: "deployTwin" | "dispatch" | "query" | "relay" | "resume" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: - | "Dispatched" - | "Relayed" - | "Resumed" - | "TwinDeployment" - ): EventFragment; - - encodeFunctionData( - functionFragment: "deployTwin", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "dispatch", - values: [ - AddressLike, - AddressLike, - BytesLike, - BytesLike, - BigNumberish, - BytesLike[] - ] - ): string; - encodeFunctionData( - functionFragment: "query", - values: [AddressLike, AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "relay", - values: [AddressLike, BytesLike, boolean, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "resume", - values: [ - AddressLike, - BytesLike, - boolean, - BytesLike, - BigNumberish, - BytesLike[] - ] - ): string; - - decodeFunctionResult(functionFragment: "deployTwin", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "dispatch", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "query", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "relay", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "resume", data: BytesLike): Result; -} - -export namespace DispatchedEvent { - export type InputTuple = [ - caller: AddressLike, - callback: BytesLike, - success: boolean, - response: BytesLike, - nonce: BigNumberish - ]; - export type OutputTuple = [ - caller: string, - callback: string, - success: boolean, - response: string, - nonce: bigint - ]; - export interface OutputObject { - caller: string; - callback: string; - success: boolean; - response: string; - nonce: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace RelayedEvent { - export type InputTuple = [ - caller: AddressLike, - target: AddressLike, - call: BytesLike, - readonly: boolean, - callback: BytesLike, - nonce: BigNumberish - ]; - export type OutputTuple = [ - caller: string, - target: string, - call: string, - readonly: boolean, - callback: string, - nonce: bigint - ]; - export interface OutputObject { - caller: string; - target: string; - call: string; - readonly: boolean; - callback: string; - nonce: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace ResumedEvent { - export type InputTuple = [ - caller: AddressLike, - call: BytesLike, - success: boolean, - response: BytesLike, - nonce: BigNumberish - ]; - export type OutputTuple = [ - caller: string, - call: string, - success: boolean, - response: string, - nonce: bigint - ]; - export interface OutputObject { - caller: string; - call: string; - success: boolean; - response: string; - nonce: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace TwinDeploymentEvent { - export type InputTuple = [twin: AddressLike]; - export type OutputTuple = [twin: string]; - export interface OutputObject { - twin: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Relayer extends BaseContract { - connect(runner?: ContractRunner | null): Relayer; - waitForDeployment(): Promise; - - interface: RelayerInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - deployTwin: TypedContractMethod< - [salt: BytesLike, bytecode: BytesLike], - [string], - "nonpayable" - >; - - dispatch: TypedContractMethod< - [ - caller: AddressLike, - target: AddressLike, - call: BytesLike, - callback: BytesLike, - nonce: BigNumberish, - signatures: BytesLike[] - ], - [void], - "nonpayable" - >; - - query: TypedContractMethod< - [caller: AddressLike, target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - - relay: TypedContractMethod< - [ - target: AddressLike, - call: BytesLike, - readonly: boolean, - callback: BytesLike - ], - [bigint], - "nonpayable" - >; - - resume: TypedContractMethod< - [ - caller: AddressLike, - callback: BytesLike, - success: boolean, - response: BytesLike, - nonce: BigNumberish, - signatures: BytesLike[] - ], - [void], - "payable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "deployTwin" - ): TypedContractMethod< - [salt: BytesLike, bytecode: BytesLike], - [string], - "nonpayable" - >; - getFunction( - nameOrSignature: "dispatch" - ): TypedContractMethod< - [ - caller: AddressLike, - target: AddressLike, - call: BytesLike, - callback: BytesLike, - nonce: BigNumberish, - signatures: BytesLike[] - ], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "query" - ): TypedContractMethod< - [caller: AddressLike, target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - getFunction( - nameOrSignature: "relay" - ): TypedContractMethod< - [ - target: AddressLike, - call: BytesLike, - readonly: boolean, - callback: BytesLike - ], - [bigint], - "nonpayable" - >; - getFunction( - nameOrSignature: "resume" - ): TypedContractMethod< - [ - caller: AddressLike, - callback: BytesLike, - success: boolean, - response: BytesLike, - nonce: BigNumberish, - signatures: BytesLike[] - ], - [void], - "payable" - >; - - getEvent( - key: "Dispatched" - ): TypedContractEvent< - DispatchedEvent.InputTuple, - DispatchedEvent.OutputTuple, - DispatchedEvent.OutputObject - >; - getEvent( - key: "Relayed" - ): TypedContractEvent< - RelayedEvent.InputTuple, - RelayedEvent.OutputTuple, - RelayedEvent.OutputObject - >; - getEvent( - key: "Resumed" - ): TypedContractEvent< - ResumedEvent.InputTuple, - ResumedEvent.OutputTuple, - ResumedEvent.OutputObject - >; - getEvent( - key: "TwinDeployment" - ): TypedContractEvent< - TwinDeploymentEvent.InputTuple, - TwinDeploymentEvent.OutputTuple, - TwinDeploymentEvent.OutputObject - >; - - filters: { - "Dispatched(address,bytes4,bool,bytes,uint256)": TypedContractEvent< - DispatchedEvent.InputTuple, - DispatchedEvent.OutputTuple, - DispatchedEvent.OutputObject - >; - Dispatched: TypedContractEvent< - DispatchedEvent.InputTuple, - DispatchedEvent.OutputTuple, - DispatchedEvent.OutputObject - >; - - "Relayed(address,address,bytes,bool,bytes4,uint256)": TypedContractEvent< - RelayedEvent.InputTuple, - RelayedEvent.OutputTuple, - RelayedEvent.OutputObject - >; - Relayed: TypedContractEvent< - RelayedEvent.InputTuple, - RelayedEvent.OutputTuple, - RelayedEvent.OutputObject - >; - - "Resumed(address,bytes,bool,bytes,uint256)": TypedContractEvent< - ResumedEvent.InputTuple, - ResumedEvent.OutputTuple, - ResumedEvent.OutputObject - >; - Resumed: TypedContractEvent< - ResumedEvent.InputTuple, - ResumedEvent.OutputTuple, - ResumedEvent.OutputObject - >; - - "TwinDeployment(address)": TypedContractEvent< - TwinDeploymentEvent.InputTuple, - TwinDeploymentEvent.OutputTuple, - TwinDeploymentEvent.OutputObject - >; - TwinDeployment: TypedContractEvent< - TwinDeploymentEvent.InputTuple, - TwinDeploymentEvent.OutputTuple, - TwinDeploymentEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/Test.sol/Target.ts b/products/bridge/typechain-types/contracts/Test.sol/Target.ts deleted file mode 100644 index 0487edb07..000000000 --- a/products/bridge/typechain-types/contracts/Test.sol/Target.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface TargetInterface extends Interface { - getFunction(nameOrSignature: "test"): FunctionFragment; - - encodeFunctionData(functionFragment: "test", values: [BigNumberish]): string; - - decodeFunctionResult(functionFragment: "test", data: BytesLike): Result; -} - -export interface Target extends BaseContract { - connect(runner?: ContractRunner | null): Target; - waitForDeployment(): Promise; - - interface: TargetInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - test: TypedContractMethod<[num: BigNumberish], [bigint], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "test" - ): TypedContractMethod<[num: BigNumberish], [bigint], "view">; - - filters: {}; -} diff --git a/products/bridge/typechain-types/contracts/Test.sol/Twin.ts b/products/bridge/typechain-types/contracts/Test.sol/Twin.ts deleted file mode 100644 index 3e08aa0a4..000000000 --- a/products/bridge/typechain-types/contracts/Test.sol/Twin.ts +++ /dev/null @@ -1,265 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - EventFragment, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedLogDescription, - TypedListener, - TypedContractMethod, -} from "../../common"; - -export interface TwinInterface extends Interface { - getFunction( - nameOrSignature: - | "dispatched" - | "finish" - | "initialize" - | "queried" - | "start" - ): FunctionFragment; - - getEvent( - nameOrSignatureOrTopic: "Failed" | "Initialized" | "Succeeded" - ): EventFragment; - - encodeFunctionData( - functionFragment: "dispatched", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "finish", - values: [boolean, BytesLike, BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "initialize", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "queried", - values: [AddressLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "start", - values: [AddressLike, BigNumberish, boolean] - ): string; - - decodeFunctionResult(functionFragment: "dispatched", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "finish", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "initialize", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "queried", data: BytesLike): Result; - decodeFunctionResult(functionFragment: "start", data: BytesLike): Result; -} - -export namespace FailedEvent { - export type InputTuple = [arg0: string]; - export type OutputTuple = [arg0: string]; - export interface OutputObject { - arg0: string; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace InitializedEvent { - export type InputTuple = [version: BigNumberish]; - export type OutputTuple = [version: bigint]; - export interface OutputObject { - version: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export namespace SucceededEvent { - export type InputTuple = [arg0: BigNumberish]; - export type OutputTuple = [arg0: bigint]; - export interface OutputObject { - arg0: bigint; - } - export type Event = TypedContractEvent; - export type Filter = TypedDeferredTopicFilter; - export type Log = TypedEventLog; - export type LogDescription = TypedLogDescription; -} - -export interface Twin extends BaseContract { - connect(runner?: ContractRunner | null): Twin; - waitForDeployment(): Promise; - - interface: TwinInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - dispatched: TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "payable" - >; - - finish: TypedContractMethod< - [success: boolean, res: BytesLike, nonce: BigNumberish], - [void], - "nonpayable" - >; - - initialize: TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; - - queried: TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - - start: TypedContractMethod< - [target: AddressLike, num: BigNumberish, readonly: boolean], - [void], - "nonpayable" - >; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "dispatched" - ): TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "payable" - >; - getFunction( - nameOrSignature: "finish" - ): TypedContractMethod< - [success: boolean, res: BytesLike, nonce: BigNumberish], - [void], - "nonpayable" - >; - getFunction( - nameOrSignature: "initialize" - ): TypedContractMethod<[relayer: AddressLike], [void], "nonpayable">; - getFunction( - nameOrSignature: "queried" - ): TypedContractMethod< - [target: AddressLike, call: BytesLike], - [[boolean, string] & { success: boolean; response: string }], - "view" - >; - getFunction( - nameOrSignature: "start" - ): TypedContractMethod< - [target: AddressLike, num: BigNumberish, readonly: boolean], - [void], - "nonpayable" - >; - - getEvent( - key: "Failed" - ): TypedContractEvent< - FailedEvent.InputTuple, - FailedEvent.OutputTuple, - FailedEvent.OutputObject - >; - getEvent( - key: "Initialized" - ): TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - getEvent( - key: "Succeeded" - ): TypedContractEvent< - SucceededEvent.InputTuple, - SucceededEvent.OutputTuple, - SucceededEvent.OutputObject - >; - - filters: { - "Failed(string)": TypedContractEvent< - FailedEvent.InputTuple, - FailedEvent.OutputTuple, - FailedEvent.OutputObject - >; - Failed: TypedContractEvent< - FailedEvent.InputTuple, - FailedEvent.OutputTuple, - FailedEvent.OutputObject - >; - - "Initialized(uint64)": TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - Initialized: TypedContractEvent< - InitializedEvent.InputTuple, - InitializedEvent.OutputTuple, - InitializedEvent.OutputObject - >; - - "Succeeded(uint256)": TypedContractEvent< - SucceededEvent.InputTuple, - SucceededEvent.OutputTuple, - SucceededEvent.OutputObject - >; - Succeeded: TypedContractEvent< - SucceededEvent.InputTuple, - SucceededEvent.OutputTuple, - SucceededEvent.OutputObject - >; - }; -} diff --git a/products/bridge/typechain-types/contracts/Test.sol/index.ts b/products/bridge/typechain-types/contracts/Test.sol/index.ts deleted file mode 100644 index 1dd312b0b..000000000 --- a/products/bridge/typechain-types/contracts/Test.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export type { Target } from "./Target"; -export type { Twin } from "./Twin"; diff --git a/products/bridge/typechain-types/contracts/ValidatorManager.ts b/products/bridge/typechain-types/contracts/ValidatorManager.ts deleted file mode 100644 index 22224ec8a..000000000 --- a/products/bridge/typechain-types/contracts/ValidatorManager.ts +++ /dev/null @@ -1,221 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type { - BaseContract, - BigNumberish, - BytesLike, - FunctionFragment, - Result, - Interface, - AddressLike, - ContractRunner, - ContractMethod, - Listener, -} from "ethers"; -import type { - TypedContractEvent, - TypedDeferredTopicFilter, - TypedEventLog, - TypedListener, - TypedContractMethod, -} from "../common"; - -export interface ValidatorManagerInterface extends Interface { - getFunction( - nameOrSignature: - | "addValidator" - | "getValidators" - | "hasSupermajority" - | "isValidator" - | "removeValidator" - | "validateSignature" - | "validateUniqueSignatures" - | "validatorsCount" - ): FunctionFragment; - - encodeFunctionData( - functionFragment: "addValidator", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "getValidators", - values?: undefined - ): string; - encodeFunctionData( - functionFragment: "hasSupermajority", - values: [BigNumberish] - ): string; - encodeFunctionData( - functionFragment: "isValidator", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "removeValidator", - values: [AddressLike] - ): string; - encodeFunctionData( - functionFragment: "validateSignature", - values: [BytesLike, BytesLike] - ): string; - encodeFunctionData( - functionFragment: "validateUniqueSignatures", - values: [BytesLike, BytesLike[]] - ): string; - encodeFunctionData( - functionFragment: "validatorsCount", - values?: undefined - ): string; - - decodeFunctionResult( - functionFragment: "addValidator", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "getValidators", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "hasSupermajority", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "isValidator", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "removeValidator", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateSignature", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validateUniqueSignatures", - data: BytesLike - ): Result; - decodeFunctionResult( - functionFragment: "validatorsCount", - data: BytesLike - ): Result; -} - -export interface ValidatorManager extends BaseContract { - connect(runner?: ContractRunner | null): ValidatorManager; - waitForDeployment(): Promise; - - interface: ValidatorManagerInterface; - - queryFilter( - event: TCEvent, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - queryFilter( - filter: TypedDeferredTopicFilter, - fromBlockOrBlockhash?: string | number | undefined, - toBlock?: string | number | undefined - ): Promise>>; - - on( - event: TCEvent, - listener: TypedListener - ): Promise; - on( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - once( - event: TCEvent, - listener: TypedListener - ): Promise; - once( - filter: TypedDeferredTopicFilter, - listener: TypedListener - ): Promise; - - listeners( - event: TCEvent - ): Promise>>; - listeners(eventName?: string): Promise>; - removeAllListeners( - event?: TCEvent - ): Promise; - - addValidator: TypedContractMethod< - [user: AddressLike], - [boolean], - "nonpayable" - >; - - getValidators: TypedContractMethod<[], [string[]], "view">; - - hasSupermajority: TypedContractMethod< - [count: BigNumberish], - [boolean], - "view" - >; - - isValidator: TypedContractMethod<[user: AddressLike], [boolean], "view">; - - removeValidator: TypedContractMethod< - [user: AddressLike], - [boolean], - "nonpayable" - >; - - validateSignature: TypedContractMethod< - [ethSignedMessageHash: BytesLike, signature: BytesLike], - [boolean], - "view" - >; - - validateUniqueSignatures: TypedContractMethod< - [ethSignedMessageHash: BytesLike, signatures: BytesLike[]], - [boolean], - "view" - >; - - validatorsCount: TypedContractMethod<[], [bigint], "view">; - - getFunction( - key: string | FunctionFragment - ): T; - - getFunction( - nameOrSignature: "addValidator" - ): TypedContractMethod<[user: AddressLike], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "getValidators" - ): TypedContractMethod<[], [string[]], "view">; - getFunction( - nameOrSignature: "hasSupermajority" - ): TypedContractMethod<[count: BigNumberish], [boolean], "view">; - getFunction( - nameOrSignature: "isValidator" - ): TypedContractMethod<[user: AddressLike], [boolean], "view">; - getFunction( - nameOrSignature: "removeValidator" - ): TypedContractMethod<[user: AddressLike], [boolean], "nonpayable">; - getFunction( - nameOrSignature: "validateSignature" - ): TypedContractMethod< - [ethSignedMessageHash: BytesLike, signature: BytesLike], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "validateUniqueSignatures" - ): TypedContractMethod< - [ethSignedMessageHash: BytesLike, signatures: BytesLike[]], - [boolean], - "view" - >; - getFunction( - nameOrSignature: "validatorsCount" - ): TypedContractMethod<[], [bigint], "view">; - - filters: {}; -} diff --git a/products/bridge/typechain-types/contracts/index.ts b/products/bridge/typechain-types/contracts/index.ts deleted file mode 100644 index 1d57870e8..000000000 --- a/products/bridge/typechain-types/contracts/index.ts +++ /dev/null @@ -1,11 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as erc20BridgeSol from "./ERC20Bridge.sol"; -export type { erc20BridgeSol }; -import type * as testSol from "./Test.sol"; -export type { testSol }; -export type { Bridged } from "./Bridged"; -export type { Collector } from "./Collector"; -export type { Relayer } from "./Relayer"; -export type { ValidatorManager } from "./ValidatorManager"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts deleted file mode 100644 index b276b28ff..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as interfaces from "./interfaces"; -export * as proxy from "./proxy"; -export * as token from "./token"; -export * as utils from "./utils"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts deleted file mode 100644 index 0413f8c17..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory.ts +++ /dev/null @@ -1,127 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC1155Errors, - IERC1155ErrorsInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ERC1155InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC1155InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "idsLength", - type: "uint256", - }, - { - internalType: "uint256", - name: "valuesLength", - type: "uint256", - }, - ], - name: "ERC1155InvalidArrayLength", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "ERC1155InvalidOperator", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC1155InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC1155InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "ERC1155MissingApprovalForAll", - type: "error", - }, -] as const; - -export class IERC1155Errors__factory { - static readonly abi = _abi; - static createInterface(): IERC1155ErrorsInterface { - return new Interface(_abi) as IERC1155ErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC1155Errors { - return new Contract(address, _abi, runner) as unknown as IERC1155Errors; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts deleted file mode 100644 index 695f3f0f4..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20Errors, - IERC20ErrorsInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, -] as const; - -export class IERC20Errors__factory { - static readonly abi = _abi; - static createInterface(): IERC20ErrorsInterface { - return new Interface(_abi) as IERC20ErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20Errors { - return new Contract(address, _abi, runner) as unknown as IERC20Errors; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts deleted file mode 100644 index 8615d4ddd..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory.ts +++ /dev/null @@ -1,128 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC721Errors, - IERC721ErrorsInterface, -} from "../../../../../@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "ERC721IncorrectOwner", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ERC721InsufficientApproval", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC721InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "operator", - type: "address", - }, - ], - name: "ERC721InvalidOperator", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - ], - name: "ERC721InvalidOwner", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC721InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC721InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "tokenId", - type: "uint256", - }, - ], - name: "ERC721NonexistentToken", - type: "error", - }, -] as const; - -export class IERC721Errors__factory { - static readonly abi = _abi; - static createInterface(): IERC721ErrorsInterface { - return new Interface(_abi) as IERC721ErrorsInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC721Errors { - return new Contract(address, _abi, runner) as unknown as IERC721Errors; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts deleted file mode 100644 index 571330ea3..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { IERC1155Errors__factory } from "./IERC1155Errors__factory"; -export { IERC20Errors__factory } from "./IERC20Errors__factory"; -export { IERC721Errors__factory } from "./IERC721Errors__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts deleted file mode 100644 index 82d047e87..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/interfaces/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as draftIerc6093Sol from "./draft-IERC6093.sol"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts deleted file mode 100644 index 56778f881..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as utils from "./utils"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts deleted file mode 100644 index eb7a31b9e..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/Initializable__factory.ts +++ /dev/null @@ -1,48 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - Initializable, - InitializableInterface, -} from "../../../../../@openzeppelin/contracts/proxy/utils/Initializable"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, -] as const; - -export class Initializable__factory { - static readonly abi = _abi; - static createInterface(): InitializableInterface { - return new Interface(_abi) as InitializableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): Initializable { - return new Contract(address, _abi, runner) as unknown as Initializable; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts deleted file mode 100644 index 4baae4a20..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/proxy/utils/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Initializable__factory } from "./Initializable__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts deleted file mode 100644 index 5d8981a68..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/ERC20__factory.ts +++ /dev/null @@ -1,330 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ERC20, - ERC20Interface, -} from "../../../../../@openzeppelin/contracts/token/ERC20/ERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ERC20__factory { - static readonly abi = _abi; - static createInterface(): ERC20Interface { - return new Interface(_abi) as ERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): ERC20 { - return new Contract(address, _abi, runner) as unknown as ERC20; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts deleted file mode 100644 index 6768448dc..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/IERC20__factory.ts +++ /dev/null @@ -1,205 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20, - IERC20Interface, -} from "../../../../../@openzeppelin/contracts/token/ERC20/IERC20"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20__factory { - static readonly abi = _abi; - static createInterface(): IERC20Interface { - return new Interface(_abi) as IERC20Interface; - } - static connect(address: string, runner?: ContractRunner | null): IERC20 { - return new Contract(address, _abi, runner) as unknown as IERC20; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts deleted file mode 100644 index e36dbedee..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory.ts +++ /dev/null @@ -1,364 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - ERC20Burnable, - ERC20BurnableInterface, -} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "burnFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class ERC20Burnable__factory { - static readonly abi = _abi; - static createInterface(): ERC20BurnableInterface { - return new Interface(_abi) as ERC20BurnableInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ERC20Burnable { - return new Contract(address, _abi, runner) as unknown as ERC20Burnable; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts deleted file mode 100644 index 80abf9696..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory.ts +++ /dev/null @@ -1,247 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { - IERC20Metadata, - IERC20MetadataInterface, -} from "../../../../../../@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; - -const _abi = [ - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -export class IERC20Metadata__factory { - static readonly abi = _abi; - static createInterface(): IERC20MetadataInterface { - return new Interface(_abi) as IERC20MetadataInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): IERC20Metadata { - return new Contract(address, _abi, runner) as unknown as IERC20Metadata; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts deleted file mode 100644 index 3ddce5325..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/extensions/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ERC20Burnable__factory } from "./ERC20Burnable__factory"; -export { IERC20Metadata__factory } from "./IERC20Metadata__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts deleted file mode 100644 index 3523dc7a6..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/ERC20/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as extensions from "./extensions"; -export { ERC20__factory } from "./ERC20__factory"; -export { IERC20__factory } from "./IERC20__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts deleted file mode 100644 index da1e061eb..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/token/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as erc20 from "./ERC20"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts deleted file mode 100644 index 791413453..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Create2__factory.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - Create2, - Create2Interface, -} from "../../../../@openzeppelin/contracts/utils/Create2"; - -const _abi = [ - { - inputs: [], - name: "Create2EmptyBytecode", - type: "error", - }, - { - inputs: [], - name: "Create2FailedDeployment", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "Create2InsufficientBalance", - type: "error", - }, -] as const; - -const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122068e7e9279ff64b09f60154842e716f7a61cc445f390ec702821d0b55366e14dc64736f6c63430008140033"; - -type Create2ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: Create2ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Create2__factory extends ContractFactory { - constructor(...args: Create2ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Create2 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Create2__factory { - return super.connect(runner) as Create2__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): Create2Interface { - return new Interface(_abi) as Create2Interface; - } - static connect(address: string, runner?: ContractRunner | null): Create2 { - return new Contract(address, _abi, runner) as unknown as Create2; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts deleted file mode 100644 index 61eed9444..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../common"; -import type { - Strings, - StringsInterface, -} from "../../../../@openzeppelin/contracts/utils/Strings"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - ], - name: "StringsInsufficientHexLength", - type: "error", - }, -] as const; - -const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122039ee855a7d6a3f72d6da11b4a850b082834946baf95bab3e71bbdb0073baa95f64736f6c63430008140033"; - -type StringsConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: StringsConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Strings__factory extends ContractFactory { - constructor(...args: StringsConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Strings & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Strings__factory { - return super.connect(runner) as Strings__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): StringsInterface { - return new Interface(_abi) as StringsInterface; - } - static connect(address: string, runner?: ContractRunner | null): Strings { - return new Contract(address, _abi, runner) as unknown as Strings; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts deleted file mode 100644 index 2d73c6dad..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.ts +++ /dev/null @@ -1,91 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - ECDSA, - ECDSAInterface, -} from "../../../../../@openzeppelin/contracts/utils/cryptography/ECDSA"; - -const _abi = [ - { - inputs: [], - name: "ECDSAInvalidSignature", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - ], - name: "ECDSAInvalidSignatureLength", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "ECDSAInvalidSignatureS", - type: "error", - }, -] as const; - -const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209a2bdf6ba2b7ca0f16a717df47c789bf9a44d99125ce5c12ff4e30106a45985464736f6c63430008140033"; - -type ECDSAConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ECDSAConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ECDSA__factory extends ContractFactory { - constructor(...args: ECDSAConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - ECDSA & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ECDSA__factory { - return super.connect(runner) as ECDSA__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ECDSAInterface { - return new Interface(_abi) as ECDSAInterface; - } - static connect(address: string, runner?: ContractRunner | null): ECDSA { - return new Contract(address, _abi, runner) as unknown as ECDSA; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts deleted file mode 100644 index cac1a8376..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { ECDSA__factory } from "./ECDSA__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts deleted file mode 100644 index 8beaf752c..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as cryptography from "./cryptography"; -export * as math from "./math"; -export { Create2__factory } from "./Create2__factory"; -export { Strings__factory } from "./Strings__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts deleted file mode 100644 index 1cdc9563d..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.ts +++ /dev/null @@ -1,69 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../../../common"; -import type { - Math, - MathInterface, -} from "../../../../../@openzeppelin/contracts/utils/math/Math"; - -const _abi = [ - { - inputs: [], - name: "MathOverflowedMulDiv", - type: "error", - }, -] as const; - -const _bytecode = - "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f13fdb1781f3305fc299657a0d60bca3167ebf43f36d9c04464d877f134e96264736f6c63430008140033"; - -type MathConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: MathConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Math__factory extends ContractFactory { - constructor(...args: MathConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Math & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Math__factory { - return super.connect(runner) as Math__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): MathInterface { - return new Interface(_abi) as MathInterface; - } - static connect(address: string, runner?: ContractRunner | null): Math { - return new Contract(address, _abi, runner) as unknown as Math; - } -} diff --git a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts deleted file mode 100644 index a249c7486..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/contracts/utils/math/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Math__factory } from "./Math__factory"; diff --git a/products/bridge/typechain-types/factories/@openzeppelin/index.ts b/products/bridge/typechain-types/factories/@openzeppelin/index.ts deleted file mode 100644 index 6397da096..000000000 --- a/products/bridge/typechain-types/factories/@openzeppelin/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as contracts from "./contracts"; diff --git a/products/bridge/typechain-types/factories/contracts/Bridged__factory.ts b/products/bridge/typechain-types/factories/contracts/Bridged__factory.ts deleted file mode 100644 index f592ee43a..000000000 --- a/products/bridge/typechain-types/factories/contracts/Bridged__factory.ts +++ /dev/null @@ -1,113 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { Contract, Interface, type ContractRunner } from "ethers"; -import type { Bridged, BridgedInterface } from "../../contracts/Bridged"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "dispatched", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "contract Relayer", - name: "relayer", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "queried", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -export class Bridged__factory { - static readonly abi = _abi; - static createInterface(): BridgedInterface { - return new Interface(_abi) as BridgedInterface; - } - static connect(address: string, runner?: ContractRunner | null): Bridged { - return new Contract(address, _abi, runner) as unknown as Bridged; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/Collector__factory.ts b/products/bridge/typechain-types/factories/contracts/Collector__factory.ts deleted file mode 100644 index 9d836568c..000000000 --- a/products/bridge/typechain-types/factories/contracts/Collector__factory.ts +++ /dev/null @@ -1,118 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { Collector, CollectorInterface } from "../../contracts/Collector"; - -const _abi = [ - { - inputs: [ - { - internalType: "contract ValidatorManager", - name: "_validatorManager", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "bytes32", - name: "hash", - type: "bytes32", - }, - { - indexed: false, - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - name: "Echoed", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "hash", - type: "bytes32", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - name: "echo", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b5060405161037338038061037383398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b6102e0806100936000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063274b9f1014610030575b600080fd5b61004361003e36600461014c565b610045565b005b60005460405163199ed7c960e11b81526001600160a01b039091169063333daf9290610077908590859060040161024d565b602060405180830381865afa158015610094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b8919061026e565b6100fa5760405162461bcd60e51b815260206004820152600f60248201526e2bb937b733903b30b634b230ba37b960891b604482015260640160405180910390fd5b817f84259fbf8a54adfe7ce845eee74785aacedcf222bdeb9f31672eb2a429d453e08260405161012a9190610297565b60405180910390a25050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561015f57600080fd5b82359150602083013567ffffffffffffffff8082111561017e57600080fd5b818501915085601f83011261019257600080fd5b8135818111156101a4576101a4610136565b604051601f8201601f19908116603f011681019083821181831017156101cc576101cc610136565b816040528281528860208487010111156101e557600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000815180845260005b8181101561022d57602081850181015186830182015201610211565b506000602082860101526020601f19601f83011685010191505092915050565b8281526040602082015260006102666040830184610207565b949350505050565b60006020828403121561028057600080fd5b8151801515811461029057600080fd5b9392505050565b602081526000610290602083018461020756fea2646970667358221220590ed76b9b397a7dddfb203452fb71d90f8b6fcad5e57c5d3589686e12fd75e164736f6c63430008140033"; - -type CollectorConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: CollectorConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Collector__factory extends ContractFactory { - constructor(...args: CollectorConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _validatorManager: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_validatorManager, overrides || {}); - } - override deploy( - _validatorManager: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(_validatorManager, overrides || {}) as Promise< - Collector & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Collector__factory { - return super.connect(runner) as Collector__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): CollectorInterface { - return new Interface(_abi) as CollectorInterface; - } - static connect(address: string, runner?: ContractRunner | null): Collector { - return new Contract(address, _abi, runner) as unknown as Collector; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts deleted file mode 100644 index e10098e07..000000000 --- a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/BridgedERC20__factory.ts +++ /dev/null @@ -1,476 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - BridgedERC20, - BridgedERC20Interface, -} from "../../../contracts/ERC20Bridge.sol/BridgedERC20"; - -const _abi = [ - { - inputs: [ - { - internalType: "string", - name: "name_", - type: "string", - }, - { - internalType: "string", - name: "symbol_", - type: "string", - }, - { - internalType: "address", - name: "bridge_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "burnFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162000de138038062000de18339810160408190526200003491620002c2565b82826003620000448382620003de565b506004620000538282620003de565b5050600580546001600160a01b0319166001600160a01b038416179055506200007f336103e862000088565b505050620004d2565b6001600160a01b038216620000b85760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620000c660008383620000ca565b5050565b6001600160a01b038316620000f9578060026000828254620000ed9190620004aa565b909155506200016d9050565b6001600160a01b038316600090815260208190526040902054818110156200014e5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000af565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166200018b57600280548290039055620001aa565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001f091815260200190565b60405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200022557600080fd5b81516001600160401b0380821115620002425762000242620001fd565b604051601f8301601f19908116603f011681019082821181831017156200026d576200026d620001fd565b816040528381526020925086838588010111156200028a57600080fd5b600091505b83821015620002ae57858201830151818301840152908201906200028f565b600093810190920192909252949350505050565b600080600060608486031215620002d857600080fd5b83516001600160401b0380821115620002f057600080fd5b620002fe8783880162000213565b945060208601519150808211156200031557600080fd5b50620003248682870162000213565b604086015190935090506001600160a01b03811681146200034457600080fd5b809150509250925092565b600181811c908216806200036457607f821691505b6020821081036200038557634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003d957600081815260208120601f850160051c81016020861015620003b45750805b601f850160051c820191505b81811015620003d557828155600101620003c0565b5050505b505050565b81516001600160401b03811115620003fa57620003fa620001fd565b62000412816200040b84546200034f565b846200038b565b602080601f8311600181146200044a5760008415620004315750858301515b600019600386901b1c1916600185901b178555620003d5565b600085815260208120601f198616915b828110156200047b578886015182559484019460019091019084016200045a565b50858210156200049a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820180821115620004cc57634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004e26000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea26469706673582212200307b5a397ba870a7fb9851b8b1563c851af8457c239e4aa8b7011b5cf1f376264736f6c63430008140033"; - -type BridgedERC20ConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: BridgedERC20ConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class BridgedERC20__factory extends ContractFactory { - constructor(...args: BridgedERC20ConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - name_: string, - symbol_: string, - bridge_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(name_, symbol_, bridge_, overrides || {}); - } - override deploy( - name_: string, - symbol_: string, - bridge_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(name_, symbol_, bridge_, overrides || {}) as Promise< - BridgedERC20 & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): BridgedERC20__factory { - return super.connect(runner) as BridgedERC20__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): BridgedERC20Interface { - return new Interface(_abi) as BridgedERC20Interface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): BridgedERC20 { - return new Contract(address, _abi, runner) as unknown as BridgedERC20; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts deleted file mode 100644 index f96efe2dd..000000000 --- a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory.ts +++ /dev/null @@ -1,283 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - ERC20Bridge, - ERC20BridgeInterface, -} from "../../../contracts/ERC20Bridge.sol/ERC20Bridge"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "Failed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "Started", - type: "event", - }, - { - anonymous: false, - inputs: [], - name: "Succeeded", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "bridge", - outputs: [ - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "dispatched", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "token", - type: "address", - }, - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "exit", - outputs: [ - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "res", - type: "bytes", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "finish", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "contract Relayer", - name: "relayer", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "queried", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50610c2b806100206000396000f3fe6080604052600436106100555760003560e01c80635d903f031461005a57806371006c091461008457806382dcc731146100b257806387121759146100d2578063b2c642d1146100f2578063c4d66de814610114575b600080fd5b61006d610068366004610847565b610134565b60405161007b92919061092a565b60405180910390f35b34801561009057600080fd5b506100a461009f36600461094d565b610205565b60405190815260200161007b565b3480156100be57600080fd5b5061006d6100cd366004610847565b61031b565b3480156100de57600080fd5b506100a46100ed36600461094d565b6103cb565b3480156100fe57600080fd5b5061011261010d36600461099c565b6104a4565b005b34801561012057600080fd5b5061011261012f366004610a27565b6105b7565b600080546060906001600160a01b0316331461016b5760405162461bcd60e51b815260040161016290610a4b565b60405180910390fd5b6101986040518060400160405280600c81526020016b64697370617463686564282960a01b8152506106d5565b836001600160a01b031634620186a090856040516101b69190610a82565b600060405180830381858888f193505050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b606091505b50909590945092505050565b604051632770a7eb60e21b81526001600160a01b0383811660048301526024820183905260009190851690639dc29fac90604401600060405180830381600087803b15801561025357600080fd5b505af1158015610267573d6000803e3d6000fd5b50506040516001600160a01b0386166024820152604481018590526102c6925086915060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b179052600063b2c642d160e01b61071b565b604080516001600160a01b038088168252861660208201529081018490529091507ff9fc8619f47185576c57bcb55a726e87aedd0c97599424af8325993da54083209060600160405180910390a19392505050565b600080546060906001600160a01b031633146103495760405162461bcd60e51b815260040161016290610a4b565b6103736040518060400160405280600981526020016871756572696564282960b81b8152506106d5565b836001600160a01b0316620186a08460405161038f9190610a82565b6000604051808303818686fa925050503d80600081146101f4576040519150601f19603f3d011682016040523d82523d6000602084013e6101f9565b6040516323b872dd60e01b81526001600160a01b03838116600483015230602483015260448201839052600091908516906323b872dd906064016020604051808303816000875af1158015610424573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104489190610a9e565b506040516001600160a01b0384166024820152604481018390526102c690859060640160408051601f198184030181529190526020810180516001600160e01b03166340c10f1960e01b179052600063b2c642d160e01b61071b565b6000546001600160a01b031633146104ce5760405162461bcd60e51b815260040161016290610a4b565b8315610502576040517f318ba0c588a4bde325b55ebf926bfa606b77d9971ac5fc7250a615885daf9d5c90600090a16105b1565b60006105116004828587610abb565b61051a91610ae5565b9050600061052b8460048188610abb565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df519261059992508401602090810191508401610b15565b6040516105a69190610b83565b60405180910390a150505b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156105fd5750825b905060008267ffffffffffffffff16600114801561061a5750303b155b905081158015610628575080155b156106465760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561067057845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b03881617905583156106cd57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016105a6565b505050505050565b610718816040516024016106e99190610b83565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b17905261079e565b50565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a8790610752908890889088908890600401610b96565b6020604051808303816000875af1158015610771573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107959190610bdc565b95945050505050565b6107188160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b038116811461071857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610817576108176107d8565b604052919050565b600067ffffffffffffffff821115610839576108396107d8565b50601f01601f191660200190565b6000806040838503121561085a57600080fd5b8235610865816107c3565b9150602083013567ffffffffffffffff81111561088157600080fd5b8301601f8101851361089257600080fd5b80356108a56108a08261081f565b6107ee565b8181528660208385010111156108ba57600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156108f55781810151838201526020016108dd565b50506000910152565b600081518084526109168160208601602086016108da565b601f01601f19169290920160200192915050565b821515815260406020820152600061094560408301846108fe565b949350505050565b60008060006060848603121561096257600080fd5b833561096d816107c3565b9250602084013561097d816107c3565b929592945050506040919091013590565b801515811461071857600080fd5b600080600080606085870312156109b257600080fd5b84356109bd8161098e565b9350602085013567ffffffffffffffff808211156109da57600080fd5b818701915087601f8301126109ee57600080fd5b8135818111156109fd57600080fd5b886020828501011115610a0f57600080fd5b95986020929092019750949560400135945092505050565b600060208284031215610a3957600080fd5b8135610a44816107c3565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b60008251610a948184602087016108da565b9190910192915050565b600060208284031215610ab057600080fd5b8151610a448161098e565b60008085851115610acb57600080fd5b83861115610ad857600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610b0d5780818660040360031b1b83161692505b505092915050565b600060208284031215610b2757600080fd5b815167ffffffffffffffff811115610b3e57600080fd5b8201601f81018413610b4f57600080fd5b8051610b5d6108a08261081f565b818152856020838501011115610b7257600080fd5b6107958260208301602086016108da565b602081526000610a4460208301846108fe565b6001600160a01b0385168152608060208201819052600090610bba908301866108fe565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610bee57600080fd5b505191905056fea2646970667358221220f7d98b7bb6dc5c7058d0fcefe332656b18c25f186a937b55e96204abf67fc85d64736f6c63430008140033"; - -type ERC20BridgeConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ERC20BridgeConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ERC20Bridge__factory extends ContractFactory { - constructor(...args: ERC20BridgeConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - ERC20Bridge & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ERC20Bridge__factory { - return super.connect(runner) as ERC20Bridge__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ERC20BridgeInterface { - return new Interface(_abi) as ERC20BridgeInterface; - } - static connect(address: string, runner?: ContractRunner | null): ERC20Bridge { - return new Contract(address, _abi, runner) as unknown as ERC20Bridge; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts deleted file mode 100644 index 17b49adaf..000000000 --- a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/MyToken__factory.ts +++ /dev/null @@ -1,459 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - MyToken, - MyTokenInterface, -} from "../../../contracts/ERC20Bridge.sol/MyToken"; - -const _abi = [ - { - inputs: [ - { - internalType: "address", - name: "bridge_", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "allowance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientAllowance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "ERC20InsufficientBalance", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "approver", - type: "address", - }, - ], - name: "ERC20InvalidApprover", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "receiver", - type: "address", - }, - ], - name: "ERC20InvalidReceiver", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "sender", - type: "address", - }, - ], - name: "ERC20InvalidSender", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "ERC20InvalidSpender", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "owner", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "spender", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Approval", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "from", - type: "address", - }, - { - indexed: true, - internalType: "address", - name: "to", - type: "address", - }, - { - indexed: false, - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "Transfer", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "owner", - type: "address", - }, - { - internalType: "address", - name: "spender", - type: "address", - }, - ], - name: "allowance", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "spender", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "approve", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - ], - name: "balanceOf", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "burn", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "account", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "burnFrom", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "decimals", - outputs: [ - { - internalType: "uint8", - name: "", - type: "uint8", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "amount", - type: "uint256", - }, - ], - name: "mint", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "name", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "symbol", - outputs: [ - { - internalType: "string", - name: "", - type: "string", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "totalSupply", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transfer", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "from", - type: "address", - }, - { - internalType: "address", - name: "to", - type: "address", - }, - { - internalType: "uint256", - name: "value", - type: "uint256", - }, - ], - name: "transferFrom", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162000d1838038062000d1883398101604081905262000034916200023e565b6040518060400160405280600781526020016626bcaa37b5b2b760c91b815250604051806040016040528060038152602001624d544b60e81b815250828282816003908162000084919062000315565b50600462000093828262000315565b5050600580546001600160a01b0319166001600160a01b03841617905550620000bf336103e8620000c9565b5050505062000409565b6001600160a01b038216620000f95760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b62000107600083836200010b565b5050565b6001600160a01b0383166200013a5780600260008282546200012e9190620003e1565b90915550620001ae9050565b6001600160a01b038316600090815260208190526040902054818110156200018f5760405163391434e360e21b81526001600160a01b03851660048201526024810182905260448101839052606401620000f0565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620001cc57600280548290039055620001eb565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200023191815260200190565b60405180910390a3505050565b6000602082840312156200025157600080fd5b81516001600160a01b03811681146200026957600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029b57607f821691505b602082108103620002bc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200031057600081815260208120601f850160051c81016020861015620002eb5750805b601f850160051c820191505b818110156200030c57828155600101620002f7565b5050505b505050565b81516001600160401b0381111562000331576200033162000270565b620003498162000342845462000286565b84620002c2565b602080601f831160018114620003815760008415620003685750858301515b600019600386901b1c1916600185901b1785556200030c565b600085815260208120601f198616915b82811015620003b25788860151825594840194600190910190840162000391565b5085821015620003d15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200040357634e487b7160e01b600052601160045260246000fd5b92915050565b6108ff80620004196000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806342966c681161008c57806395d89b411161006657806395d89b41146101ad5780639dc29fac146101b5578063a9059cbb146101c8578063dd62ed3e146101db57600080fd5b806342966c681461015e57806370a082311461017157806379cc67901461019a57600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806340c10f1914610149575b600080fd5b6100dc610214565b6040516100e99190610730565b60405180910390f35b61010561010036600461079a565b6102a6565b60405190151581526020016100e9565b6002545b6040519081526020016100e9565b6101056101353660046107c4565b6102c0565b604051601281526020016100e9565b61015c61015736600461079a565b6102e4565b005b61015c61016c366004610800565b610342565b61011961017f366004610819565b6001600160a01b031660009081526020819052604090205490565b61015c6101a836600461079a565b61034f565b6100dc610364565b61015c6101c336600461079a565b610373565b6101056101d636600461079a565b6103c8565b6101196101e936600461083b565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546102239061086e565b80601f016020809104026020016040519081016040528092919081815260200182805461024f9061086e565b801561029c5780601f106102715761010080835404028352916020019161029c565b820191906000526020600020905b81548152906001019060200180831161027f57829003601f168201915b5050505050905090565b6000336102b48185856103d6565b60019150505b92915050565b6000336102ce8582856103e8565b6102d9858585610466565b506001949350505050565b6005546001600160a01b031633146103345760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b60448201526064015b60405180910390fd5b61033e82826104c5565b5050565b61034c33826104fb565b50565b61035a8233836103e8565b61033e82826104fb565b6060600480546102239061086e565b6005546001600160a01b031633146103be5760405162461bcd60e51b815260206004820152600e60248201526d4e6f74207468652062726964676560901b604482015260640161032b565b61033e828261034f565b6000336102b4818585610466565b6103e38383836001610531565b505050565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610460578181101561045157604051637dc7a0d960e11b81526001600160a01b0384166004820152602481018290526044810183905260640161032b565b61046084848484036000610531565b50505050565b6001600160a01b03831661049057604051634b637e8f60e11b81526000600482015260240161032b565b6001600160a01b0382166104ba5760405163ec442f0560e01b81526000600482015260240161032b565b6103e3838383610606565b6001600160a01b0382166104ef5760405163ec442f0560e01b81526000600482015260240161032b565b61033e60008383610606565b6001600160a01b03821661052557604051634b637e8f60e11b81526000600482015260240161032b565b61033e82600083610606565b6001600160a01b03841661055b5760405163e602df0560e01b81526000600482015260240161032b565b6001600160a01b03831661058557604051634a1406b160e11b81526000600482015260240161032b565b6001600160a01b038085166000908152600160209081526040808320938716835292905220829055801561046057826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105f891815260200190565b60405180910390a350505050565b6001600160a01b03831661063157806002600082825461062691906108a8565b909155506106a39050565b6001600160a01b038316600090815260208190526040902054818110156106845760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640161032b565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b0382166106bf576002805482900390556106de565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161072391815260200190565b60405180910390a3505050565b600060208083528351808285015260005b8181101561075d57858101830151858201604001528201610741565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b038116811461079557600080fd5b919050565b600080604083850312156107ad57600080fd5b6107b68361077e565b946020939093013593505050565b6000806000606084860312156107d957600080fd5b6107e28461077e565b92506107f06020850161077e565b9150604084013590509250925092565b60006020828403121561081257600080fd5b5035919050565b60006020828403121561082b57600080fd5b6108348261077e565b9392505050565b6000806040838503121561084e57600080fd5b6108578361077e565b91506108656020840161077e565b90509250929050565b600181811c9082168061088257607f821691505b6020821081036108a257634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ba57634e487b7160e01b600052601160045260246000fdfea264697066735822122033b701aeb385eea7ebf3fa4181cf573db59a3f9a277e037aeb67c2fcb148545b64736f6c63430008140033"; - -type MyTokenConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: MyTokenConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class MyToken__factory extends ContractFactory { - constructor(...args: MyTokenConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - bridge_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(bridge_, overrides || {}); - } - override deploy( - bridge_: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(bridge_, overrides || {}) as Promise< - MyToken & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): MyToken__factory { - return super.connect(runner) as MyToken__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): MyTokenInterface { - return new Interface(_abi) as MyTokenInterface; - } - static connect(address: string, runner?: ContractRunner | null): MyToken { - return new Contract(address, _abi, runner) as unknown as MyToken; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts b/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts deleted file mode 100644 index fb6aff47b..000000000 --- a/products/bridge/typechain-types/factories/contracts/ERC20Bridge.sol/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { BridgedERC20__factory } from "./BridgedERC20__factory"; -export { ERC20Bridge__factory } from "./ERC20Bridge__factory"; -export { MyToken__factory } from "./MyToken__factory"; diff --git a/products/bridge/typechain-types/factories/contracts/Relayer__factory.ts b/products/bridge/typechain-types/factories/contracts/Relayer__factory.ts deleted file mode 100644 index 80232dc89..000000000 --- a/products/bridge/typechain-types/factories/contracts/Relayer__factory.ts +++ /dev/null @@ -1,405 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { Relayer, RelayerInterface } from "../../contracts/Relayer"; - -const _abi = [ - { - inputs: [ - { - internalType: "contract ValidatorManager", - name: "_validatorManager", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "Create2EmptyBytecode", - type: "error", - }, - { - inputs: [], - name: "Create2FailedDeployment", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "balance", - type: "uint256", - }, - { - internalType: "uint256", - name: "needed", - type: "uint256", - }, - ], - name: "Create2InsufficientBalance", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "caller", - type: "address", - }, - { - indexed: false, - internalType: "bytes4", - name: "callback", - type: "bytes4", - }, - { - indexed: false, - internalType: "bool", - name: "success", - type: "bool", - }, - { - indexed: false, - internalType: "bytes", - name: "response", - type: "bytes", - }, - { - indexed: true, - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "Dispatched", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "address", - name: "caller", - type: "address", - }, - { - indexed: false, - internalType: "address", - name: "target", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "call", - type: "bytes", - }, - { - indexed: false, - internalType: "bool", - name: "readonly", - type: "bool", - }, - { - indexed: false, - internalType: "bytes4", - name: "callback", - type: "bytes4", - }, - { - indexed: false, - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "Relayed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "caller", - type: "address", - }, - { - indexed: false, - internalType: "bytes", - name: "call", - type: "bytes", - }, - { - indexed: false, - internalType: "bool", - name: "success", - type: "bool", - }, - { - indexed: false, - internalType: "bytes", - name: "response", - type: "bytes", - }, - { - indexed: true, - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "Resumed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: true, - internalType: "address", - name: "twin", - type: "address", - }, - ], - name: "TwinDeployment", - type: "event", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "salt", - type: "bytes32", - }, - { - internalType: "bytes", - name: "bytecode", - type: "bytes", - }, - ], - name: "deployTwin", - outputs: [ - { - internalType: "address", - name: "", - type: "address", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "caller", - type: "address", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - { - internalType: "bytes4", - name: "callback", - type: "bytes4", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes[]", - name: "signatures", - type: "bytes[]", - }, - ], - name: "dispatch", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "caller", - type: "address", - }, - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "query", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - { - internalType: "bool", - name: "readonly", - type: "bool", - }, - { - internalType: "bytes4", - name: "callback", - type: "bytes4", - }, - ], - name: "relay", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "caller", - type: "address", - }, - { - internalType: "bytes4", - name: "callback", - type: "bytes4", - }, - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - { - internalType: "bytes[]", - name: "signatures", - type: "bytes[]", - }, - ], - name: "resume", - outputs: [], - stateMutability: "payable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b506040516112f03803806112f083398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610084565b60006020828403121561006657600080fd5b81516001600160a01b038116811461007d57600080fd5b9392505050565b61125d806100936000396000f3fe60806040526004361061004a5760003560e01c80630b0a6bd11461004f578063139b4a87146100645780635390e47414610097578063adde344c146100cf578063c1b2f734146100fd575b600080fd5b61006261005d366004610c55565b61011d565b005b34801561007057600080fd5b5061008461007f366004610cf5565b6102f5565b6040519081526020015b60405180910390f35b3480156100a357600080fd5b506100b76100b2366004610d66565b61037f565b6040516001600160a01b03909116815260200161008e565b3480156100db57600080fd5b506100ef6100ea366004610de2565b61045e565b60405161008e929190610e90565b34801561010957600080fd5b50610062610118366004610eb3565b610529565b6001600160a01b038616600090815260036020908152604080832085845290915290205460ff16156101885760405162461bcd60e51b815260206004820152600f60248201526e105b1c9958591e481c995cdd5b5959608a1b60448201526064015b60405180910390fd5b600086868686866040516020016101a3959493929190610f1a565b60405160208183030381529060405290506101be818361070c565b6000868686866040516024016101d693929190610f68565b604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050509050600080896001600160a01b031634620186a0908560405161022c9190610f93565b600060405180830381858888f193505050503d806000811461026a576040519150601f19603f3d011682016040523d82523d6000602084013e61026f565b606091505b5091509150858a6001600160a01b03167f63b4581c24aa1258b32a3ed8aa708a03dda9f962411c5c23b78087b68cf138568585856040516102b293929190610faf565b60405180910390a35050506001600160a01b03909616600090815260036020908152604080832094835293905291909120805460ff191660011790555050505050565b3360008181526001602052604080822054905191927f7ab318da6c14cbf3d1875045814b566fdf036863bcc775bb3a6959ead4ca8e159261033e92899189918991899190610fe6565b60405180910390a13360009081526001602052604081208054916103618361103a565b90915550503360009081526001602052604090205495945050505050565b6000806103c460008686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061088592505050565b60405163189acdbd60e31b81523060048201529091506001600160a01b0382169063c4d66de890602401600060405180830381600087803b15801561040857600080fd5b505af115801561041c573d6000803e3d6000fd5b50506040516001600160a01b03841692507f0a5a933c2d9902e11b856eb9ad37ffc16a70221d90f75f5d5219d9dd600f9fc99150600090a290505b9392505050565b600060606000856001600160a01b03163b116104aa5760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b6040516382dcc73160e01b81526001600160a01b038616906382dcc731906104d89087908790600401611061565b600060405180830381865afa1580156104f5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051d9190810190611085565b90969095509350505050565b6001600160a01b038616600090815260026020908152604080832085845290915290205460ff16156105925760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e48191a5cdc185d18da195960721b604482015260640161017f565b6000868686600087876040516020016105b096959493929190610fe6565b60405160208183030381529060405290506105cb818361070c565b6000876001600160a01b03163b116106135760405162461bcd60e51b815260206004820152600b60248201526a0c6dec8ca40d8cadccee8d60ab1b604482015260640161017f565b600080886001600160a01b0316635d903f0389896040518363ffffffff1660e01b8152600401610644929190611061565b6000604051808303816000875af1158015610663573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261068b9190810190611085565b9150915084896001600160a01b03167ff3dff5c6a7d612c95de0aef2822489aeb43d5da7c5140de276f31417f9475d728885856040516106cd93929190611112565b60405180910390a35050506001600160a01b03909516600090815260026020908152604080832093835292905220805460ff1916600117905550505050565b600061071783610905565b600054604051633ca3e1fd60e11b81529192506001600160a01b031690637947c3fa9061074a9084908690600401611145565b602060405180830381865afa158015610767573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061078b91906111af565b6107cc5760405162461bcd60e51b8152602060048201526012602482015271496e76616c6964207369676e61747572657360701b604482015260640161017f565b6000548251604051633e99d94160e01b81526001600160a01b0390921691633e99d941916108009160040190815260200190565b602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084191906111af565b6108805760405162461bcd60e51b815260206004820152601060248201526f4e6f2073757065726d616a6f7269747960801b604482015260640161017f565b505050565b6000834710156108b15760405163392efb2b60e21b81524760048201526024810185905260440161017f565b81516000036108d357604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661045757604051633a0ba96160e11b815260040160405180910390fd5b60006109118251610940565b826040516020016109239291906111cc565b604051602081830303815290604052805190602001209050919050565b6060600061094d836109d3565b600101905060008167ffffffffffffffff81111561096d5761096d610af1565b6040519080825280601f01601f191660200182016040528015610997576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846109a157509392505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310610a125772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310610a3e576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310610a5c57662386f26fc10000830492506010015b6305f5e1008310610a74576305f5e100830492506008015b6127108310610a8857612710830492506004015b60648310610a9a576064830492506002015b600a8310610aa6576001015b92915050565b80356001600160a01b0381168114610ac357600080fd5b919050565b80356001600160e01b031981168114610ac357600080fd5b8015158114610aee57600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610b3057610b30610af1565b604052919050565b600067ffffffffffffffff821115610b5257610b52610af1565b50601f01601f191660200190565b600082601f830112610b7157600080fd5b8135610b84610b7f82610b38565b610b07565b818152846020838601011115610b9957600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610bc757600080fd5b8135602067ffffffffffffffff80831115610be457610be4610af1565b8260051b610bf3838201610b07565b9384528581018301938381019088861115610c0d57600080fd5b84880192505b85831015610c4957823584811115610c2b5760008081fd5b610c398a87838c0101610b60565b8352509184019190840190610c13565b98975050505050505050565b60008060008060008060c08789031215610c6e57600080fd5b610c7787610aac565b9550610c8560208801610ac8565b94506040870135610c9581610ae0565b9350606087013567ffffffffffffffff80821115610cb257600080fd5b610cbe8a838b01610b60565b94506080890135935060a0890135915080821115610cdb57600080fd5b50610ce889828a01610bb6565b9150509295509295509295565b60008060008060808587031215610d0b57600080fd5b610d1485610aac565b9350602085013567ffffffffffffffff811115610d3057600080fd5b610d3c87828801610b60565b9350506040850135610d4d81610ae0565b9150610d5b60608601610ac8565b905092959194509250565b600080600060408486031215610d7b57600080fd5b83359250602084013567ffffffffffffffff80821115610d9a57600080fd5b818601915086601f830112610dae57600080fd5b813581811115610dbd57600080fd5b876020828501011115610dcf57600080fd5b6020830194508093505050509250925092565b600080600060608486031215610df757600080fd5b610e0084610aac565b9250610e0e60208501610aac565b9150604084013567ffffffffffffffff811115610e2a57600080fd5b610e3686828701610b60565b9150509250925092565b60005b83811015610e5b578181015183820152602001610e43565b50506000910152565b60008151808452610e7c816020860160208601610e40565b601f01601f19169290920160200192915050565b8215158152604060208201526000610eab6040830184610e64565b949350505050565b60008060008060008060c08789031215610ecc57600080fd5b610ed587610aac565b9550610ee360208801610aac565b9450604087013567ffffffffffffffff80821115610f0057600080fd5b610f0c8a838b01610b60565b9550610cbe60608a01610ac8565b6001600160a01b03861681526001600160e01b031985166020820152831515604082015260a060608201819052600090610f5690830185610e64565b90508260808301529695505050505050565b8315158152606060208201526000610f836060830185610e64565b9050826040830152949350505050565b60008251610fa5818460208701610e40565b9190910192915050565b606081526000610fc26060830186610e64565b84151560208401528281036040840152610fdc8185610e64565b9695505050505050565b6001600160a01b0387811682528616602082015260c06040820181905260009061101290830187610e64565b9415156060830152506001600160e01b031992909216608083015260a0909101529392505050565b60006001820161105a57634e487b7160e01b600052601160045260246000fd5b5060010190565b6001600160a01b0383168152604060208201819052600090610eab90830184610e64565b6000806040838503121561109857600080fd5b82516110a381610ae0565b602084015190925067ffffffffffffffff8111156110c057600080fd5b8301601f810185136110d157600080fd5b80516110df610b7f82610b38565b8181528660208385010111156110f457600080fd5b611105826020830160208601610e40565b8093505050509250929050565b63ffffffff60e01b84168152821515602082015260606040820152600061113c6060830184610e64565b95945050505050565b600060408201848352602060408185015281855180845260608601915060608160051b870101935082870160005b828110156111a157605f1988870301845261118f868351610e64565b95509284019290840190600101611173565b509398975050505050505050565b6000602082840312156111c157600080fd5b815161045781610ae0565b7f19457468657265756d205369676e6564204d6573736167653a0a00000000000081526000835161120481601a850160208801610e40565b83519083019061121b81601a840160208801610e40565b01601a0194935050505056fea264697066735822122025cc3a720a930c389a44e03e7195db7e4b2a21f2ec377bafef55ee27a0b306a664736f6c63430008140033"; - -type RelayerConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: RelayerConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Relayer__factory extends ContractFactory { - constructor(...args: RelayerConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - _validatorManager: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(_validatorManager, overrides || {}); - } - override deploy( - _validatorManager: AddressLike, - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(_validatorManager, overrides || {}) as Promise< - Relayer & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Relayer__factory { - return super.connect(runner) as Relayer__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): RelayerInterface { - return new Interface(_abi) as RelayerInterface; - } - static connect(address: string, runner?: ContractRunner | null): Relayer { - return new Contract(address, _abi, runner) as unknown as Relayer; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts b/products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts deleted file mode 100644 index c312e4aab..000000000 --- a/products/bridge/typechain-types/factories/contracts/Test.sol/Target__factory.ts +++ /dev/null @@ -1,83 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { - Target, - TargetInterface, -} from "../../../contracts/Test.sol/Target"; - -const _abi = [ - { - inputs: [ - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - ], - name: "test", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "pure", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b506101f9806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806329e99f0714610030575b600080fd5b61004361003e36600461013b565b610055565b60405190815260200160405180910390f35b600061007e6040518060400160405280600681526020016574657374282960d01b8152506100d0565b6103e882106100bf5760405162461bcd60e51b8152602060048201526009602482015268546f6f206c6172676560b81b604482015260640160405180910390fd5b6100ca826001610154565b92915050565b610113816040516024016100e49190610175565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610116565b50565b6101138160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b60006020828403121561014d57600080fd5b5035919050565b808201808211156100ca57634e487b7160e01b600052601160045260246000fd5b600060208083528351808285015260005b818110156101a257858101830151858201604001528201610186565b506000604082860101526040601f19601f830116850101925050509291505056fea26469706673582212203779ddfc0af1c517538b0f0ab55ff6c84c25f3912af64534d4944852dce89ed464736f6c63430008140033"; - -type TargetConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: TargetConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Target__factory extends ContractFactory { - constructor(...args: TargetConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Target & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Target__factory { - return super.connect(runner) as Target__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TargetInterface { - return new Interface(_abi) as TargetInterface; - } - static connect(address: string, runner?: ContractRunner | null): Target { - return new Contract(address, _abi, runner) as unknown as Target; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts b/products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts deleted file mode 100644 index b781c806b..000000000 --- a/products/bridge/typechain-types/factories/contracts/Test.sol/Twin__factory.ts +++ /dev/null @@ -1,227 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { Signer, ContractDeployTransaction, ContractRunner } from "ethers"; -import type { NonPayableOverrides } from "../../../common"; -import type { Twin, TwinInterface } from "../../../contracts/Test.sol/Twin"; - -const _abi = [ - { - inputs: [], - name: "InvalidInitialization", - type: "error", - }, - { - inputs: [], - name: "NotInitializing", - type: "error", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "string", - name: "", - type: "string", - }, - ], - name: "Failed", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint64", - name: "version", - type: "uint64", - }, - ], - name: "Initialized", - type: "event", - }, - { - anonymous: false, - inputs: [ - { - indexed: false, - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - name: "Succeeded", - type: "event", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "dispatched", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "payable", - type: "function", - }, - { - inputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "res", - type: "bytes", - }, - { - internalType: "uint256", - name: "nonce", - type: "uint256", - }, - ], - name: "finish", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "contract Relayer", - name: "relayer", - type: "address", - }, - ], - name: "initialize", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "bytes", - name: "call", - type: "bytes", - }, - ], - name: "queried", - outputs: [ - { - internalType: "bool", - name: "success", - type: "bool", - }, - { - internalType: "bytes", - name: "response", - type: "bytes", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "target", - type: "address", - }, - { - internalType: "uint256", - name: "num", - type: "uint256", - }, - { - internalType: "bool", - name: "readonly", - type: "bool", - }, - ], - name: "start", - outputs: [], - stateMutability: "nonpayable", - type: "function", - }, -] as const; - -const _bytecode = - "0x608060405234801561001057600080fd5b50610b33806100206000396000f3fe60806040526004361061004a5760003560e01c80635d903f031461004f57806382dcc73114610079578063b2c642d114610099578063c2ab4e3e146100bb578063c4d66de8146100db575b600080fd5b61006261005d36600461072f565b6100fb565b604051610070929190610812565b60405180910390f35b34801561008557600080fd5b5061006261009436600461072f565b6101cc565b3480156100a557600080fd5b506100b96100b436600461084a565b61027c565b005b3480156100c757600080fd5b506100b96100d63660046108d3565b6103da565b3480156100e757600080fd5b506100b96100f6366004610911565b610456565b600080546060906001600160a01b031633146101325760405162461bcd60e51b815260040161012990610935565b60405180910390fd5b61015f6040518060400160405280600c81526020016b64697370617463686564282960a01b815250610574565b836001600160a01b031634620186a0908560405161017d919061096c565b600060405180830381858888f193505050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b606091505b50909590945092505050565b600080546060906001600160a01b031633146101fa5760405162461bcd60e51b815260040161012990610935565b6102246040518060400160405280600981526020016871756572696564282960b81b815250610574565b836001600160a01b0316620186a084604051610240919061096c565b6000604051808303818686fa925050503d80600081146101bb576040519150601f19603f3d011682016040523d82523d6000602084013e6101c0565b6000546001600160a01b031633146102a65760405162461bcd60e51b815260040161012990610935565b6102d06040518060400160405280600881526020016766696e697368282960c01b815250826105ba565b83156103255760006102e483850185610988565b90507f7165f2912dc85f932b95e64dc5404ea80083d36994c2b797ea2763ba0b71586b8160405161031791815260200190565b60405180910390a1506103d4565b600061033460048285876109a1565b61033d916109cb565b9050600061034e84600481886109a1565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293507fc65844e8ee2558ed559edaad0fdb8d4149b19d5bb4d863bc498bed24f6b2df51926103bc925084016020908101915084016109fb565b6040516103c99190610a69565b60405180910390a150505b50505050565b600061042b84846040516024016103f391815260200190565b60408051601f198184030181529190526020810180516001600160e01b03166329e99f0760e01b1790528463b2c642d160e01b610603565b90506103d4604051806040016040528060078152602001667374617274282960c81b815250826105ba565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff1660008115801561049c5750825b905060008267ffffffffffffffff1660011480156104b95750303b155b9050811580156104c7575080155b156104e55760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561050f57845460ff60401b1916600160401b1785555b600080546001600160a01b0319166001600160a01b038816179055831561056c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020016103c9565b505050505050565b6105b7816040516024016105889190610a69565b60408051601f198184030181529190526020810180516001600160e01b031663104c13eb60e21b179052610686565b50565b6105ff82826040516024016105d0929190610a7c565b60408051601f198184030181529190526020810180516001600160e01b0316632d839cb360e21b179052610686565b5050565b6000805460405163139b4a8760e01b81526001600160a01b039091169063139b4a879061063a908890889088908890600401610a9e565b6020604051808303816000875af1158015610659573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067d9190610ae4565b95945050505050565b6105b78160006a636f6e736f6c652e6c6f679050600080835160208501845afa505050565b6001600160a01b03811681146105b757600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff811182821017156106ff576106ff6106c0565b604052919050565b600067ffffffffffffffff821115610721576107216106c0565b50601f01601f191660200190565b6000806040838503121561074257600080fd5b823561074d816106ab565b9150602083013567ffffffffffffffff81111561076957600080fd5b8301601f8101851361077a57600080fd5b803561078d61078882610707565b6106d6565b8181528660208385010111156107a257600080fd5b816020840160208301376000602083830101528093505050509250929050565b60005b838110156107dd5781810151838201526020016107c5565b50506000910152565b600081518084526107fe8160208601602086016107c2565b601f01601f19169290920160200192915050565b821515815260406020820152600061082d60408301846107e6565b949350505050565b8035801515811461084557600080fd5b919050565b6000806000806060858703121561086057600080fd5b61086985610835565b9350602085013567ffffffffffffffff8082111561088657600080fd5b818701915087601f83011261089a57600080fd5b8135818111156108a957600080fd5b8860208285010111156108bb57600080fd5b95986020929092019750949560400135945092505050565b6000806000606084860312156108e857600080fd5b83356108f3816106ab565b92506020840135915061090860408501610835565b90509250925092565b60006020828403121561092357600080fd5b813561092e816106ab565b9392505050565b60208082526019908201527f4d7573742062652063616c6c65642062792072656c6179657200000000000000604082015260600190565b6000825161097e8184602087016107c2565b9190910192915050565b60006020828403121561099a57600080fd5b5035919050565b600080858511156109b157600080fd5b838611156109be57600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156109f35780818660040360031b1b83161692505b505092915050565b600060208284031215610a0d57600080fd5b815167ffffffffffffffff811115610a2457600080fd5b8201601f81018413610a3557600080fd5b8051610a4361078882610707565b818152856020838501011115610a5857600080fd5b61067d8260208301602086016107c2565b60208152600061092e60208301846107e6565b604081526000610a8f60408301856107e6565b90508260208301529392505050565b6001600160a01b0385168152608060208201819052600090610ac2908301866107e6565b9315156040830152506001600160e01b03199190911660609091015292915050565b600060208284031215610af657600080fd5b505191905056fea26469706673582212200d3a5dbb1017d29a95750446823cad302cdf8d61c42ce90152978b934f77874a64736f6c63430008140033"; - -type TwinConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: TwinConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class Twin__factory extends ContractFactory { - constructor(...args: TwinConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(overrides || {}); - } - override deploy(overrides?: NonPayableOverrides & { from?: string }) { - return super.deploy(overrides || {}) as Promise< - Twin & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): Twin__factory { - return super.connect(runner) as Twin__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): TwinInterface { - return new Interface(_abi) as TwinInterface; - } - static connect(address: string, runner?: ContractRunner | null): Twin { - return new Contract(address, _abi, runner) as unknown as Twin; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/Test.sol/index.ts b/products/bridge/typechain-types/factories/contracts/Test.sol/index.ts deleted file mode 100644 index ec47bcb1d..000000000 --- a/products/bridge/typechain-types/factories/contracts/Test.sol/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export { Target__factory } from "./Target__factory"; -export { Twin__factory } from "./Twin__factory"; diff --git a/products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts b/products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts deleted file mode 100644 index b738f5d2d..000000000 --- a/products/bridge/typechain-types/factories/contracts/ValidatorManager__factory.ts +++ /dev/null @@ -1,264 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import { - Contract, - ContractFactory, - ContractTransactionResponse, - Interface, -} from "ethers"; -import type { - Signer, - AddressLike, - ContractDeployTransaction, - ContractRunner, -} from "ethers"; -import type { NonPayableOverrides } from "../../common"; -import type { - ValidatorManager, - ValidatorManagerInterface, -} from "../../contracts/ValidatorManager"; - -const _abi = [ - { - inputs: [ - { - internalType: "address[]", - name: "validators", - type: "address[]", - }, - ], - stateMutability: "nonpayable", - type: "constructor", - }, - { - inputs: [], - name: "ECDSAInvalidSignature", - type: "error", - }, - { - inputs: [ - { - internalType: "uint256", - name: "length", - type: "uint256", - }, - ], - name: "ECDSAInvalidSignatureLength", - type: "error", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "s", - type: "bytes32", - }, - ], - name: "ECDSAInvalidSignatureS", - type: "error", - }, - { - inputs: [ - { - internalType: "address", - name: "user", - type: "address", - }, - ], - name: "addValidator", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [], - name: "getValidators", - outputs: [ - { - internalType: "address[]", - name: "", - type: "address[]", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "uint256", - name: "count", - type: "uint256", - }, - ], - name: "hasSupermajority", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "user", - type: "address", - }, - ], - name: "isValidator", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "address", - name: "user", - type: "address", - }, - ], - name: "removeValidator", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "nonpayable", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "ethSignedMessageHash", - type: "bytes32", - }, - { - internalType: "bytes", - name: "signature", - type: "bytes", - }, - ], - name: "validateSignature", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [ - { - internalType: "bytes32", - name: "ethSignedMessageHash", - type: "bytes32", - }, - { - internalType: "bytes[]", - name: "signatures", - type: "bytes[]", - }, - ], - name: "validateUniqueSignatures", - outputs: [ - { - internalType: "bool", - name: "", - type: "bool", - }, - ], - stateMutability: "view", - type: "function", - }, - { - inputs: [], - name: "validatorsCount", - outputs: [ - { - internalType: "uint256", - name: "", - type: "uint256", - }, - ], - stateMutability: "view", - type: "function", - }, -] as const; - -const _bytecode = - "0x60806040523480156200001157600080fd5b5060405162000c5a38038062000c5a833981016040819052620000349162000143565b60005b815181101562000084576200006e8282815181106200005a576200005a62000215565b60200260200101516200008c60201b60201c565b50806200007b816200022b565b91505062000037565b505062000253565b60006200009a8183620000a0565b92915050565b6000620000b7836001600160a01b038416620000be565b9392505050565b600081815260018301602052604081205462000107575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556200009a565b5060006200009a565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200013e57600080fd5b919050565b600060208083850312156200015757600080fd5b82516001600160401b03808211156200016f57600080fd5b818501915085601f8301126200018457600080fd5b81518181111562000199576200019962000110565b8060051b604051601f19603f83011681018181108582111715620001c157620001c162000110565b604052918252848201925083810185019188831115620001e057600080fd5b938501935b828510156200020957620001f98562000126565b84529385019392850192620001e5565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6000600182016200024c57634e487b7160e01b600052601160045260246000fd5b5060010190565b6109f780620002636000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c80637947c3fa1161005b5780637947c3fa146100ee578063b7ab4db514610101578063ed612f8c14610116578063facd743b1461012c57600080fd5b8063333daf921461008d5780633e99d941146100b557806340a141ff146100c85780634d238c8e146100db575b600080fd5b6100a061009b366004610781565b61013f565b60405190151581526020015b60405180910390f35b6100a06100c33660046107c8565b610161565b6100a06100d63660046107e1565b610188565b6100a06100e93660046107e1565b610194565b6100a06100fc36600461080a565b6101a0565b610109610296565b6040516100ac91906108d9565b61011e6102a7565b6040519081526020016100ac565b6100a061013a3660046107e1565b6102b3565b60008061014c84846102bf565b9050610157816102b3565b9150505b92915050565b600061016b6102a7565b61017690600261093c565b61018183600361093c565b1192915050565b600061015b81836102e9565b600061015b8183610305565b600080805b835181101561028b5760006101dc8583815181106101c5576101c5610953565b6020026020010151876102bf90919063ffffffff16565b9050826001600160a01b0316816001600160a01b03161161025e5760405162461bcd60e51b815260206004820152603160248201527f5369676e617475726573206d75737420626520756e6971756520616e6420696e6044820152701034b731b932b0b9b4b7339037b93232b960791b60648201526084015b60405180910390fd5b610267816102b3565b610277576000935050505061015b565b91508061028381610969565b9150506101a5565b506001949350505050565b60606102a2600061031a565b905090565b60006102a26000610327565b600061015b8183610331565b6000806000806102cf8686610353565b9250925092506102df82826103a0565b5090949350505050565b60006102fe836001600160a01b03841661045d565b9392505050565b60006102fe836001600160a01b038416610550565b606060006102fe8361059f565b600061015b825490565b6001600160a01b038116600090815260018301602052604081205415156102fe565b6000806000835160410361038d5760208401516040850151606086015160001a61037f888285856105fb565b955095509550505050610399565b50508151600091506002905b9250925092565b60008260038111156103b4576103b4610982565b036103bd575050565b60018260038111156103d1576103d1610982565b036103ef5760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561040357610403610982565b036104245760405163fce698f760e01b815260048101829052602401610255565b600382600381111561043857610438610982565b03610459576040516335e2f38360e21b815260048101829052602401610255565b5050565b60008181526001830160205260408120548015610546576000610481600183610998565b855490915060009061049590600190610998565b90508082146104fa5760008660000182815481106104b5576104b5610953565b90600052602060002001549050808760000184815481106104d8576104d8610953565b6000918252602080832090910192909255918252600188019052604090208390555b855486908061050b5761050b6109ab565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061015b565b600091505061015b565b60008181526001830160205260408120546105975750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561015b565b50600061015b565b6060816000018054806020026020016040519081016040528092919081815260200182805480156105ef57602002820191906000526020600020905b8154815260200190600101908083116105db575b50505050509050919050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561063657506000915060039050826106c0565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561068a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166106b6575060009250600191508290506106c0565b9250600091508190505b9450945094915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610709576107096106ca565b604052919050565b600082601f83011261072257600080fd5b813567ffffffffffffffff81111561073c5761073c6106ca565b61074f601f8201601f19166020016106e0565b81815284602083860101111561076457600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561079457600080fd5b82359150602083013567ffffffffffffffff8111156107b257600080fd5b6107be85828601610711565b9150509250929050565b6000602082840312156107da57600080fd5b5035919050565b6000602082840312156107f357600080fd5b81356001600160a01b03811681146102fe57600080fd5b6000806040838503121561081d57600080fd5b8235915060208084013567ffffffffffffffff8082111561083d57600080fd5b818601915086601f83011261085157600080fd5b813581811115610863576108636106ca565b8060051b6108728582016106e0565b918252838101850191858101908a84111561088c57600080fd5b86860192505b838310156108c8578235858111156108aa5760008081fd5b6108b88c89838a0101610711565b8352509186019190860190610892565b809750505050505050509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561091a5783516001600160a01b0316835292840192918401916001016108f5565b50909695505050505050565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761015b5761015b610926565b634e487b7160e01b600052603260045260246000fd5b60006001820161097b5761097b610926565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561015b5761015b610926565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220e258f1ef118c8e883494fc8412fb43429f8b684fcb90d8f0f31a281d9ac0cd3364736f6c63430008140033"; - -type ValidatorManagerConstructorParams = - | [signer?: Signer] - | ConstructorParameters; - -const isSuperArgs = ( - xs: ValidatorManagerConstructorParams -): xs is ConstructorParameters => xs.length > 1; - -export class ValidatorManager__factory extends ContractFactory { - constructor(...args: ValidatorManagerConstructorParams) { - if (isSuperArgs(args)) { - super(...args); - } else { - super(_abi, _bytecode, args[0]); - } - } - - override getDeployTransaction( - validators: AddressLike[], - overrides?: NonPayableOverrides & { from?: string } - ): Promise { - return super.getDeployTransaction(validators, overrides || {}); - } - override deploy( - validators: AddressLike[], - overrides?: NonPayableOverrides & { from?: string } - ) { - return super.deploy(validators, overrides || {}) as Promise< - ValidatorManager & { - deploymentTransaction(): ContractTransactionResponse; - } - >; - } - override connect(runner: ContractRunner | null): ValidatorManager__factory { - return super.connect(runner) as ValidatorManager__factory; - } - - static readonly bytecode = _bytecode; - static readonly abi = _abi; - static createInterface(): ValidatorManagerInterface { - return new Interface(_abi) as ValidatorManagerInterface; - } - static connect( - address: string, - runner?: ContractRunner | null - ): ValidatorManager { - return new Contract(address, _abi, runner) as unknown as ValidatorManager; - } -} diff --git a/products/bridge/typechain-types/factories/contracts/index.ts b/products/bridge/typechain-types/factories/contracts/index.ts deleted file mode 100644 index cac52183d..000000000 --- a/products/bridge/typechain-types/factories/contracts/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as erc20BridgeSol from "./ERC20Bridge.sol"; -export * as testSol from "./Test.sol"; -export { Bridged__factory } from "./Bridged__factory"; -export { Collector__factory } from "./Collector__factory"; -export { Relayer__factory } from "./Relayer__factory"; -export { ValidatorManager__factory } from "./ValidatorManager__factory"; diff --git a/products/bridge/typechain-types/factories/index.ts b/products/bridge/typechain-types/factories/index.ts deleted file mode 100644 index 6ff9ace7a..000000000 --- a/products/bridge/typechain-types/factories/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -export * as openzeppelin from "./@openzeppelin"; -export * as contracts from "./contracts"; diff --git a/products/bridge/typechain-types/hardhat.d.ts b/products/bridge/typechain-types/hardhat.d.ts deleted file mode 100644 index 52f3c771f..000000000 --- a/products/bridge/typechain-types/hardhat.d.ts +++ /dev/null @@ -1,423 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ - -import { ethers } from "ethers"; -import { - DeployContractOptions, - FactoryOptions, - HardhatEthersHelpers as HardhatEthersHelpersBase, -} from "@nomicfoundation/hardhat-ethers/types"; - -import * as Contracts from "."; - -declare module "hardhat/types/runtime" { - interface HardhatEthersHelpers extends HardhatEthersHelpersBase { - getContractFactory( - name: "IERC1155Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC721Errors", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Initializable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC20Burnable", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20Metadata", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "IERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Create2", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ECDSA", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Math", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Strings", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Bridged", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Collector", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "BridgedERC20", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ERC20Bridge", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "MyToken", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Relayer", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Target", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "Twin", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - name: "ValidatorManager", - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - - getContractAt( - name: "IERC1155Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC721Errors", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Initializable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC20Burnable", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20Metadata", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "IERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Create2", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ECDSA", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Math", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Strings", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Bridged", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Collector", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "BridgedERC20", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ERC20Bridge", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "MyToken", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Relayer", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Target", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "Twin", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - getContractAt( - name: "ValidatorManager", - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - - deployContract( - name: "IERC1155Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC721Errors", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Initializable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Burnable", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Metadata", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Create2", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ECDSA", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Math", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Strings", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Bridged", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Collector", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "BridgedERC20", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Bridge", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "MyToken", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Relayer", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Target", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Twin", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ValidatorManager", - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - - deployContract( - name: "IERC1155Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC721Errors", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Initializable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Burnable", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20Metadata", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "IERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Create2", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ECDSA", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Math", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Strings", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Bridged", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Collector", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "BridgedERC20", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ERC20Bridge", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "MyToken", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Relayer", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Target", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "Twin", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: "ValidatorManager", - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - - // default types - getContractFactory( - name: string, - signerOrOptions?: ethers.Signer | FactoryOptions - ): Promise; - getContractFactory( - abi: any[], - bytecode: ethers.BytesLike, - signer?: ethers.Signer - ): Promise; - getContractAt( - nameOrAbi: string | any[], - address: string | ethers.Addressable, - signer?: ethers.Signer - ): Promise; - deployContract( - name: string, - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - deployContract( - name: string, - args: any[], - signerOrOptions?: ethers.Signer | DeployContractOptions - ): Promise; - } -} diff --git a/products/bridge/typechain-types/index.ts b/products/bridge/typechain-types/index.ts deleted file mode 100644 index 0248168f7..000000000 --- a/products/bridge/typechain-types/index.ts +++ /dev/null @@ -1,50 +0,0 @@ -/* Autogenerated file. Do not edit manually. */ -/* tslint:disable */ -/* eslint-disable */ -import type * as openzeppelin from "./@openzeppelin"; -export type { openzeppelin }; -import type * as contracts from "./contracts"; -export type { contracts }; -export * as factories from "./factories"; -export type { IERC1155Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors"; -export { IERC1155Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC1155Errors__factory"; -export type { IERC20Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors"; -export { IERC20Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC20Errors__factory"; -export type { IERC721Errors } from "./@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors"; -export { IERC721Errors__factory } from "./factories/@openzeppelin/contracts/interfaces/draft-IERC6093.sol/IERC721Errors__factory"; -export type { Initializable } from "./@openzeppelin/contracts/proxy/utils/Initializable"; -export { Initializable__factory } from "./factories/@openzeppelin/contracts/proxy/utils/Initializable__factory"; -export type { ERC20 } from "./@openzeppelin/contracts/token/ERC20/ERC20"; -export { ERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/ERC20__factory"; -export type { ERC20Burnable } from "./@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable"; -export { ERC20Burnable__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable__factory"; -export type { IERC20Metadata } from "./@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata"; -export { IERC20Metadata__factory } from "./factories/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata__factory"; -export type { IERC20 } from "./@openzeppelin/contracts/token/ERC20/IERC20"; -export { IERC20__factory } from "./factories/@openzeppelin/contracts/token/ERC20/IERC20__factory"; -export type { Create2 } from "./@openzeppelin/contracts/utils/Create2"; -export { Create2__factory } from "./factories/@openzeppelin/contracts/utils/Create2__factory"; -export type { ECDSA } from "./@openzeppelin/contracts/utils/cryptography/ECDSA"; -export { ECDSA__factory } from "./factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory"; -export type { Math } from "./@openzeppelin/contracts/utils/math/Math"; -export { Math__factory } from "./factories/@openzeppelin/contracts/utils/math/Math__factory"; -export type { Strings } from "./@openzeppelin/contracts/utils/Strings"; -export { Strings__factory } from "./factories/@openzeppelin/contracts/utils/Strings__factory"; -export type { Bridged } from "./contracts/Bridged"; -export { Bridged__factory } from "./factories/contracts/Bridged__factory"; -export type { Collector } from "./contracts/Collector"; -export { Collector__factory } from "./factories/contracts/Collector__factory"; -export type { BridgedERC20 } from "./contracts/ERC20Bridge.sol/BridgedERC20"; -export { BridgedERC20__factory } from "./factories/contracts/ERC20Bridge.sol/BridgedERC20__factory"; -export type { ERC20Bridge } from "./contracts/ERC20Bridge.sol/ERC20Bridge"; -export { ERC20Bridge__factory } from "./factories/contracts/ERC20Bridge.sol/ERC20Bridge__factory"; -export type { MyToken } from "./contracts/ERC20Bridge.sol/MyToken"; -export { MyToken__factory } from "./factories/contracts/ERC20Bridge.sol/MyToken__factory"; -export type { Relayer } from "./contracts/Relayer"; -export { Relayer__factory } from "./factories/contracts/Relayer__factory"; -export type { Target } from "./contracts/Test.sol/Target"; -export { Target__factory } from "./factories/contracts/Test.sol/Target__factory"; -export type { Twin } from "./contracts/Test.sol/Twin"; -export { Twin__factory } from "./factories/contracts/Test.sol/Twin__factory"; -export type { ValidatorManager } from "./contracts/ValidatorManager"; -export { ValidatorManager__factory } from "./factories/contracts/ValidatorManager__factory"; From 18f122503abd9af2ff4b783a5804351bd83cdd67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Wed, 27 Mar 2024 14:49:07 +0100 Subject: [PATCH 15/16] Making the playground build again --- products/bluebell/Cargo.lock | 20 +++++++++---------- .../intermediate_representation/ast_queue.rs | 2 +- .../intermediate_representation/emitter.rs | 1 + 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/products/bluebell/Cargo.lock b/products/bluebell/Cargo.lock index b5cfdb17a..0a62dcf6d 100644 --- a/products/bluebell/Cargo.lock +++ b/products/bluebell/Cargo.lock @@ -2243,9 +2243,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -2253,9 +2253,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" dependencies = [ "bumpalo", "log", @@ -2280,9 +2280,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2290,9 +2290,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", @@ -2303,9 +2303,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" [[package]] name = "wasm-logger" diff --git a/products/bluebell/core/src/intermediate_representation/ast_queue.rs b/products/bluebell/core/src/intermediate_representation/ast_queue.rs index d71f7a558..35e851aef 100644 --- a/products/bluebell/core/src/intermediate_representation/ast_queue.rs +++ b/products/bluebell/core/src/intermediate_representation/ast_queue.rs @@ -1,4 +1,4 @@ -use crate::ast::nodes::NodeProgram; +use scilla_parser::ast::nodes::NodeProgram; /// Trait for a queue that lists the next Ast to be compiled. pub trait AstQueue { diff --git a/products/bluebell/core/src/intermediate_representation/emitter.rs b/products/bluebell/core/src/intermediate_representation/emitter.rs index eb274bd22..390d93ac1 100644 --- a/products/bluebell/core/src/intermediate_representation/emitter.rs +++ b/products/bluebell/core/src/intermediate_representation/emitter.rs @@ -9,6 +9,7 @@ use scilla_parser::{ parser::lexer::SourcePosition, }; +use crate::intermediate_representation::ast_queue::AstQueue; use crate::intermediate_representation::{primitives::*, symbol_table::SymbolTable}; /// Byte Code Generation Process From 6efd20ad4673838f60e615a77ec14ba29124720e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Troels=20F=2E=20R=C3=B8nnow?= Date: Wed, 27 Mar 2024 15:07:07 +0100 Subject: [PATCH 16/16] Disabling test that are WiP --- .../bluebell/core/tests/code_gen_for_various_asts.rs | 4 ++-- ...test.rs => formatter_preformatted_test.not_working} | 10 +++++----- products/bluebell/evm_assembly/tests/evm_basic_run.rs | 6 +++--- products/bluebell/evm_assembly/tests/evm_decompile.rs | 4 +--- 4 files changed, 11 insertions(+), 13 deletions(-) rename products/bluebell/core/tests/{formatter_preformatted_test.rs => formatter_preformatted_test.not_working} (97%) diff --git a/products/bluebell/core/tests/code_gen_for_various_asts.rs b/products/bluebell/core/tests/code_gen_for_various_asts.rs index 8fed78adc..1b2920ba9 100644 --- a/products/bluebell/core/tests/code_gen_for_various_asts.rs +++ b/products/bluebell/core/tests/code_gen_for_various_asts.rs @@ -84,7 +84,7 @@ mod tests { ); } - #[test] + // TODO: Fix ByteStr #[test] // Testing the failure when handling NodeTypeNameIdentifier::EventType in the emit_type_name_identifier() function. fn test_byte_str_not_implemented() { test_compilation_and_evm_code_generation!( @@ -149,7 +149,7 @@ mod tests { ); } - #[test] + // TODO: Fix #[test] // This test case is designed to reproduce a "not implemented" error about 'EnclosedTypeArguments' in Emitter. fn test_enclosed_type_argument_error() { test_compilation_and_evm_code_generation!( diff --git a/products/bluebell/core/tests/formatter_preformatted_test.rs b/products/bluebell/core/tests/formatter_preformatted_test.not_working similarity index 97% rename from products/bluebell/core/tests/formatter_preformatted_test.rs rename to products/bluebell/core/tests/formatter_preformatted_test.not_working index 11e6bb99a..aa072a3f4 100644 --- a/products/bluebell/core/tests/formatter_preformatted_test.rs +++ b/products/bluebell/core/tests/formatter_preformatted_test.not_working @@ -5,11 +5,11 @@ mod tests { use bluebell::{ formatter::BluebellFormatter, - parser::{ - lexer, - lexer::{Lexer, SourcePosition}, - parser, ParserError, - }, + }; + use scilla_parser::{ + lexer, + lexer::{Lexer, SourcePosition}, + parser, ParserError, }; use diffy::{create_patch, PatchFormatter}; diff --git a/products/bluebell/evm_assembly/tests/evm_basic_run.rs b/products/bluebell/evm_assembly/tests/evm_basic_run.rs index 742a504f5..b20f1a83c 100644 --- a/products/bluebell/evm_assembly/tests/evm_basic_run.rs +++ b/products/bluebell/evm_assembly/tests/evm_basic_run.rs @@ -63,8 +63,8 @@ mod tests { use crate::{test_precompile, EvmCompilerContext, EvmTypeValue}; - #[test] - fn blah() { + // TODO: Example broken #[test] + fn testing_evm_basic_run() { let mut specification = EvmCompilerContext::new(); specification.declare_integer("Int8", 8); specification.declare_integer("Int16", 16); @@ -118,6 +118,6 @@ mod tests { let executor = EvmExecutor::new(&specification, executable); executor.execute("hello", [EvmTypeValue::Uint32(10)].to_vec()); - assert!(false); + // assert!(false); } } diff --git a/products/bluebell/evm_assembly/tests/evm_decompile.rs b/products/bluebell/evm_assembly/tests/evm_decompile.rs index 0f4d83b12..22b7b5383 100644 --- a/products/bluebell/evm_assembly/tests/evm_decompile.rs +++ b/products/bluebell/evm_assembly/tests/evm_decompile.rs @@ -3,7 +3,7 @@ mod tests { use evm_assembly::{compiler_context::EvmCompilerContext, EvmByteCodeBuilder}; #[test] - fn blah() { + fn basic_decompile_test() { let mut specification = EvmCompilerContext::new(); specification.declare_integer("Int8", 8); specification.declare_integer("Int16", 16); @@ -17,7 +17,5 @@ mod tests { let bytes = hex::decode("608060405234801561001057600080fd5b506004361061002b5760003560e01c80633a19a7c614610030575b600080fd5b61003861004e565b6040516100459190610107565b60405180910390f35b60606000604051806101400160405280610114815260200161012a610114913990508091505090565b600081519050919050565b600082825260208201905092915050565b60005b838110156100b1578082015181840152602081019050610096565b60008484015250505050565b6000601f19601f8301169050919050565b60006100d982610077565b6100e38185610082565b93506100f3818560208601610093565b6100fc816100bd565b840191505092915050565b6000602082019050818103600083015261012181846100ce565b90509291505056fe48656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c642048656c6c6f20576f726c6420a26469706673582212209e44d7f3c5ad5ed44f2d09f524e9aea6f2a72997367b5def3f0952f557cf658864736f6c63430008140033").unwrap(); let _builder = EvmByteCodeBuilder::from_bytes(&mut specification, bytes); - - assert!(false); } }